/* ===== Lakshadweep Escapes — Shared Stylesheet ===== */

:root {
  --page-bg:
    radial-gradient(circle at 12% 8%, rgba(180,235,220,0.72) 0%, rgba(180,235,220,0) 28%),
    radial-gradient(circle at 52% 54%, rgba(200,245,235,0.68) 0%, rgba(200,245,235,0) 24%),
    radial-gradient(circle at 88% 92%, rgba(255,220,180,0.54) 0%, rgba(255,220,180,0) 18%),
    linear-gradient(180deg, #fdfaf5 0%, #f0f9f4 46%, #dff4eb 100%);
  --color-dark:   #00251F;
  --color-teal:   #0D6B5E;
  --color-coral:  #E05C3A;
  --color-cream:  #FFD4A8;
  --color-sand:   #C4A882;
  --color-text:   #102020;
  --color-navy:   #0a2f73;
}

body {
  background: var(--page-bg);
  background-attachment: fixed;
}

/* ── Header: iOS safe-area + admin-bar offset ── */
#site-header {
  padding-top: constant(safe-area-inset-top);
  padding-top: env(safe-area-inset-top, 0px);
}

/* Mobile menu dropdown (details/summary) */
#mobile-menu summary::-webkit-details-marker { display: none; }
#mobile-menu summary::marker { content: ""; }
#mobile-menu details[open] summary svg { transform: rotate(180deg); }

/* Guarantee hamburger visibility on mobile widths (in case other CSS overrides). */
@media (max-width: 1023.98px) {
  #menu-toggle {
    display: inline-flex !important;
  }
}
@media (min-width: 1024px) {
  #menu-toggle {
    display: none !important;
  }
}

/* When logged in, the WP admin bar overlays fixed headers unless offset. */
body.admin-bar #site-header {
  top: 46px !important;
}
@media screen and (min-width: 783px) {
  body.admin-bar #site-header {
    top: 32px !important;
  }
}

/* ── Dot grid overlay ── */
.dot-grid {
  background-image:
    radial-gradient(rgba(255,255,255,0.12) 1px, transparent 1px),
    radial-gradient(rgba(75,191,186,0.12)  1px, transparent 1px);
  background-size:     24px 24px, 24px 24px;
  background-position: 0 0, 12px 12px;
}

/* ── Section heading ── */
.section-heading { max-width:980px; margin-inline:auto; text-align:center; }

.section-heading__eyebrow {
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:999px; border:1px solid rgba(232,112,90,0.14);
  background:rgba(255,255,255,0.42); padding:0.7rem 1.15rem;
  font-size:0.72rem; font-weight:700; letter-spacing:0.24em;
  text-transform:uppercase; color:#e05c3a;
  box-shadow:0 10px 24px rgba(16,32,32,0.05); backdrop-filter:blur(8px);
}

.section-heading__title  { margin-top:1.1rem; }
.section-heading__copy   { margin-top:1rem; margin-inline:auto; max-width:760px; }

/* ── Inner-page hero (no video, dark bg) ── */
.page-hero {
  position:relative;
  min-height:52vh;
  display:flex;
  align-items:center;
  background-color: var(--color-dark);
  padding-top:7rem;
  overflow:hidden;
  color:#fff;
}

.page-hero__bg {
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  opacity:0.32;
}

.page-hero__overlay {
  position:absolute; inset:0;
  background:linear-gradient(90deg,rgba(0,37,31,0.82) 0%,rgba(0,37,31,0.42) 60%,rgba(0,37,31,0.18) 100%);
}

.page-hero__content { position:relative; }

/* ── Pill tag / eyebrow ── */
.tag-pill {
  display:inline-flex; align-items:center; gap:0.45rem;
  border-radius:999px; border:1px solid rgba(232,112,90,0.22);
  background:rgba(255,255,255,0.08); backdrop-filter:blur(10px);
  padding:0.55rem 1rem; font-size:0.72rem; font-weight:700;
  letter-spacing:0.22em; text-transform:uppercase; color:#FFD4A8;
}

/* ── Card base ── */
.card {
  border-radius:28px;
  background:rgba(255,255,255,0.82);
  border:1px solid rgba(16,32,32,0.06);
  box-shadow:0 12px 36px rgba(16,32,32,0.09);
  backdrop-filter:blur(8px);
  overflow:hidden;
  transition:transform 0.35s ease, box-shadow 0.35s ease;
}

.card:hover { transform:translateY(-6px); box-shadow:0 24px 52px rgba(16,32,32,0.14); }

/* ── Filter tabs ── */
.filter-tabs { display:flex; flex-wrap:wrap; gap:0.6rem; }

.filter-tab {
  display:inline-flex; align-items:center; gap:0.45rem;
  border-radius:999px; border:1px solid rgba(16,32,32,0.1);
  padding:0.55rem 1.1rem; font-size:0.8rem; font-weight:600;
  color:#102020; background:rgba(255,255,255,0.68); backdrop-filter:blur(6px);
  cursor:pointer; transition:all 0.25s ease;
}

.filter-tab:hover, .filter-tab.active {
  background:#0D6B5E; color:#fff; border-color:#0D6B5E;
}

/* ── Testimonial swiper ── */
.testimonial-swiper { --testimonial-columns:1; position:relative; }
.testimonial-swiper__viewport { overflow:hidden; }
.testimonial-swiper__track {
  display:flex; gap:1.5rem;
  transition:transform 0.45s ease; will-change:transform;
}
.testimonial-swiper__slide {
  min-width:calc((100% - (var(--testimonial-columns) - 1) * 1.5rem) / var(--testimonial-columns));
  flex:0 0 calc((100% - (var(--testimonial-columns) - 1) * 1.5rem) / var(--testimonial-columns));
}

/* ── Package card badge ── */
.badge-pill {
  display:inline-flex; align-items:center;
  border-radius:999px; padding:0.3rem 0.8rem;
  font-size:0.7rem; font-weight:700; letter-spacing:0.14em; text-transform:uppercase;
}

.badge-pill--coral  { background:rgba(224,92,58,0.12); color:#e05c3a; }
.badge-pill--teal   { background:rgba(13,107,94,0.12); color:#0D6B5E; }
.badge-pill--sand   { background:rgba(196,168,130,0.18); color:#8b6a3a; }
.badge-pill--navy   { background:rgba(10,47,115,0.10); color:#0a2f73; }

/* ── Blog card image hover zoom ── */
.blog-card-img { transition:transform 0.45s ease; }
.blog-card:hover .blog-card-img { transform:scale(1.05); }

/* ── Divider line with icon ── */
.divider-line {
  display:flex; align-items:center; gap:1rem;
  color:rgba(16,32,32,0.18); font-size:1.1rem;
}
.divider-line::before, .divider-line::after {
  content:""; flex:1; height:1px;
  background:rgba(16,32,32,0.1);
}

/* ── Responsive testimonial columns ── */
@media (min-width:768px)  { .testimonial-swiper { --testimonial-columns:2; } }
@media (min-width:1280px) { .testimonial-swiper { --testimonial-columns:3; } }

/* ═══════════════════════════════════════════════════════════
   Contact Form 7 — Theme Styling
   ═══════════════════════════════════════════════════════════ */

/* Grid layout wrapper */
.cf7-grid { display:flex; flex-direction:column; gap:1.25rem; }

.cf7-row { display:flex; flex-direction:column; gap:1.25rem; }

@media (min-width:640px) {
  .cf7-row.cf7-two-col { flex-direction:row; }
  .cf7-row.cf7-two-col .cf7-field { flex:1; }
}

/* Labels */
.cf7-field label,
.wpcf7 label {
  display:block;
  margin-bottom:0.45rem;
  font-size:0.82rem;
  font-weight:600;
  letter-spacing:0.04em;
  text-transform:uppercase;
  color:rgba(16,32,32,0.55);
}
.cf7-field label abbr { text-decoration:none; color:#E05C3A; }

/* Inputs, selects, textareas */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 input[type="date"],
.wpcf7 input[type="number"],
.wpcf7 select,
.wpcf7 textarea {
  width:100%;
  padding:0.8rem 1.1rem;
  border:1.5px solid rgba(16,32,32,0.12);
  border-radius:0.85rem;
  background:#fff;
  font-family:inherit;
  font-size:0.95rem;
  color:#102020;
  outline:none;
  transition:border-color 0.2s ease, box-shadow 0.2s ease;
  -webkit-appearance:none;
  appearance:none;
}
.wpcf7 select {
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23476E67' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 0.9rem center;
  padding-right:2.5rem;
  cursor:pointer;
}
.wpcf7 textarea { resize:vertical; min-height:110px; line-height:1.6; }

.wpcf7 input:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus {
  border-color:#0D6B5E;
  box-shadow:0 0 0 3px rgba(13,107,94,0.1);
}

.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder { color:rgba(16,32,32,0.32); }

/* Acceptance / checkbox row */
.wpcf7 .wpcf7-acceptance {
  display:flex;
  align-items:flex-start;
  gap:0.6rem;
  font-size:0.85rem;
  color:rgba(16,32,32,0.6);
  line-height:1.5;
}
.wpcf7 .wpcf7-acceptance input[type="checkbox"] {
  width:1.1rem;
  height:1.1rem;
  margin-top:0.15rem;
  flex-shrink:0;
  border-radius:0.3rem;
  accent-color:#0D6B5E;
}
.wpcf7 .wpcf7-list-item { margin:0; }
.wpcf7 .wpcf7-list-item-label { font-size:0.85rem; color:rgba(16,32,32,0.6); }

/* Submit button */
.wpcf7 input[type="submit"],
.wpcf7 .lke-btn-submit {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  padding:1rem 2rem;
  border:none;
  border-radius:999px;
  background:#E05C3A;
  color:#fff;
  font-family:inherit;
  font-size:0.95rem;
  font-weight:700;
  letter-spacing:0.02em;
  cursor:pointer;
  box-shadow:0 12px 32px rgba(224,92,58,0.28);
  transition:background 0.25s ease, box-shadow 0.25s ease, transform 0.15s ease;
}
.wpcf7 input[type="submit"]:hover,
.wpcf7 .lke-btn-submit:hover {
  background:#B8431F;
  box-shadow:0 16px 40px rgba(224,92,58,0.36);
  transform:translateY(-1px);
}
.wpcf7 input[type="submit"]:active { transform:translateY(0); }

/* Spinner */
.wpcf7 .wpcf7-spinner {
  display:inline-block;
  width:1.2rem;
  height:1.2rem;
  margin-left:0.6rem;
  border:2px solid rgba(255,255,255,0.4);
  border-top-color:#fff;
  border-radius:50%;
  animation:lke-spin 0.7s linear infinite;
  vertical-align:middle;
}
@keyframes lke-spin { to { transform:rotate(360deg); } }

/* Response messages */
.wpcf7 .wpcf7-response-output {
  margin:1rem 0 0;
  padding:0.85rem 1.1rem;
  border-radius:0.75rem;
  font-size:0.9rem;
  font-weight:500;
  border:1.5px solid transparent;
}
.wpcf7 .wpcf7-mail-sent-ok {
  background:#edfaf5;
  border-color:#22C5A8;
  color:#0D6B5E;
}
.wpcf7 .wpcf7-mail-sent-ng,
.wpcf7 .wpcf7-aborted {
  background:#fef2ef;
  border-color:#E05C3A;
  color:#B8431F;
}
.wpcf7 .wpcf7-spam-blocked,
.wpcf7 .wpcf7-validation-errors {
  background:#fef7ee;
  border-color:#C4A882;
  color:#7a5a30;
}

/* Field validation highlights */
.wpcf7 .wpcf7-not-valid {
  border-color:#E05C3A !important;
  box-shadow:0 0 0 3px rgba(224,92,58,0.1) !important;
}
.wpcf7 .wpcf7-not-valid-tip {
  display:block;
  margin-top:0.35rem;
  font-size:0.78rem;
  color:#E05C3A;
  font-weight:500;
}

/* Hide CF7 default paragraph wrapping */
.wpcf7 p { margin:0; }

/* ═══════════════════════════════════════════════════════════
   Lightbox
   ═══════════════════════════════════════════════════════════ */

#lke-lightbox {
  position:fixed;
  inset:0;
  z-index:99999;
  background:rgba(2,14,10,0.94);
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  pointer-events:none;
  transition:opacity 0.24s ease;
  backdrop-filter:blur(6px);
}
#lke-lightbox.is-open {
  opacity:1;
  pointer-events:all;
}
#lke-lightbox .lke-lb-stage {
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  max-width:92vw;
  max-height:90vh;
}
#lke-lb-img {
  max-width:88vw;
  max-height:86vh;
  width:auto;
  height:auto;
  object-fit:contain;
  border-radius:10px;
  box-shadow:0 32px 80px rgba(0,0,0,0.55);
  display:block;
  transition:opacity 0.18s ease;
}
#lke-lb-img.is-loading { opacity:0; }

.lke-lb-btn {
  position:fixed;
  background:rgba(255,255,255,0.10);
  border:1px solid rgba(255,255,255,0.14);
  color:#fff;
  cursor:pointer;
  border-radius:50%;
  width:48px;
  height:48px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.25rem;
  line-height:1;
  transition:background 0.2s ease, transform 0.15s ease;
  backdrop-filter:blur(8px);
  z-index:2;
}
.lke-lb-btn:hover { background:rgba(255,255,255,0.22); transform:scale(1.08); }
#lke-lb-close { top:1.25rem; right:1.25rem; font-size:1.1rem; }
#lke-lb-prev  { left:1.25rem;  top:50%; transform:translateY(-50%); font-size:1.6rem; }
#lke-lb-next  { right:1.25rem; top:50%; transform:translateY(-50%); font-size:1.6rem; }
#lke-lb-prev:hover { transform:translateY(-50%) scale(1.08); }
#lke-lb-next:hover { transform:translateY(-50%) scale(1.08); }

#lke-lb-counter {
  position:fixed;
  bottom:1.4rem;
  left:50%;
  transform:translateX(-50%);
  color:rgba(255,255,255,0.45);
  font-size:0.78rem;
  letter-spacing:0.12em;
  font-family:inherit;
}
