/* ==========================================================
   AYUSH HOLIDAYS — Single Product Page CSS
   Optimized, no Tailwind, pure vanilla CSS
   ========================================================== */

/* ---------- Design Tokens ---------- */
:root {
  --ps-primary:       #9e4200;
  --ps-primary-dk:    #7a3200;
  --ps-primary-lt:    #ffdbcb;
  --ps-secondary:     #1860a4;
  --ps-tertiary:      #006972;
  --ps-tertiary-c:    #43a8b5;
  --ps-surface:       #f8f9fa;
  --ps-surface-low:   #f3f4f5;
  --ps-surface-high:  #e7e8e9;
  --ps-surface-card:  #ffffff;
  --ps-on-surface:    #191c1d;
  --ps-on-surface-v:  #594136;
  --ps-outline:       #8d7164;
  --ps-outline-v:     #e1bfb0;
  --ps-error:         #ba1a1a;
  --ps-font-display:  'Plus Jakarta Sans', 'Inter', sans-serif;
  --ps-font-body:     'Manrope', 'Inter', sans-serif;
  --ps-radius-card:   1.5rem;
  --ps-radius-pill:   999px;
  --ps-shadow-sm:     0 2px 12px rgba(0,0,0,.06);
  --ps-shadow-md:     0 8px 32px rgba(0,0,0,.10);
  --ps-shadow-xl:     0 24px 72px rgba(0,0,0,.16);
  --ps-transition:    cubic-bezier(.4,0,.2,1);
}

/* ---------- Reset / Base ---------- */
.ps-wrap *,
.ps-wrap *::before,
.ps-wrap *::after { box-sizing: border-box; margin: 0; padding: 0; }

.ps-wrap {
  font-family: var(--ps-font-body);
  color: var(--ps-on-surface);
  background: var(--ps-surface);
  line-height: 1.6;
}

.ps-wrap img { display: block; max-width: 100%; }
.ps-wrap a   { color: inherit; text-decoration: none; }
.ps-wrap ul  { list-style: none; }

.ps-container {
  width: min(100%, 1280px);
  margin-inline: auto;
  padding-inline: clamp(1rem, 5vw, 4rem);
}

/* ---------- 1. HERO ---------- */
.ps-hero {
  position: relative;
  min-height: 85vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  margin-top: 90px;
}

.ps-hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.ps-hero__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.04);
  transition: transform 8s var(--ps-transition);
}

.ps-hero:hover .ps-hero__bg img { transform: scale(1); }

.ps-hero__scrim {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(0,0,0,.80) 0%,
    rgba(0,0,0,.38) 45%,
    rgba(0,0,0,.10) 100%
  );
}

.ps-hero__content {
  position: relative;
  z-index: 2;
  color: #fff;
  padding-block: 4rem 3rem;
  width: 100%;
}

.ps-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(255,255,255,.75);
  margin-bottom: 1rem;
}

.ps-hero__title {
  font-family: var(--ps-font-display);
  font-size: clamp(2.25rem, 5vw, 4.5rem);
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: -.02em;
  margin-bottom: 1.25rem;
  max-width: 14ch;
}

.ps-hero__subtitle {
  font-size: clamp(1rem, 2vw, 1.2rem);
  opacity: .88;
  max-width: 52ch;
  margin-bottom: 2.25rem;
}

.ps-hero__actions { display: flex; gap: 1rem; flex-wrap: wrap; }

.ps-btn {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .875rem 2rem;
  border-radius: var(--ps-radius-pill);
  font-weight: 700;
  font-size: .95rem;
  cursor: pointer;
  border: 2px solid transparent;
  transition: transform .2s var(--ps-transition),
              background .2s var(--ps-transition),
              box-shadow .2s var(--ps-transition);
}
.ps-btn:hover { transform: translateY(-2px); box-shadow: var(--ps-shadow-md); }

.ps-btn--primary {
  background: var(--ps-primary);
  color: #fff;
}
.ps-btn--primary:hover { background: var(--ps-primary-dk); }

.ps-btn--outline {
  background: rgba(255,255,255,.12);
  border-color: rgba(255,255,255,.5);
  color: #fff;
  backdrop-filter: blur(8px);
}
.ps-btn--outline:hover { background: rgba(255,255,255,.22); }

/* Info chips bar */
.ps-hero__bar {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 3rem;
}

.ps-hero__chip {
  display: flex;
  align-items: center;
  gap: .75rem;
  background: rgba(255,255,255,.14);
  backdrop-filter: blur(18px);
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 1rem;
  padding: .875rem 1.25rem;
  color: #fff;
}

.ps-hero__chip-icon {
  font-size: 1.5rem;
  color: var(--ps-primary-lt);
}

.ps-hero__chip-label {
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  opacity: .7;
}

.ps-hero__chip-val {
  font-weight: 700;
  font-size: .9rem;
}

/* ---------- 2. QUICK STATS ---------- */
.ps-stats {
  padding-block: 4rem;
  background: var(--ps-surface);
}

.ps-stats__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}

@media (max-width: 900px) { .ps-stats__inner { grid-template-columns: 1fr; } }

.ps-stats__img-wrap {
  border-radius: var(--ps-radius-card);
  overflow: hidden;
  aspect-ratio: 4/3;
  box-shadow: var(--ps-shadow-xl);
  position: relative;
  background: var(--ps-surface-high);
}
#ps-map {
  width: 100%;
  height: 100%;
  z-index: 1; /* Below headers if any */
}

/* Custom Marker Styling */
.ps-map-pin {
  background: none !important;
  border: none !important;
}

.ps-stats__img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ps-stats__heading {
  font-family: var(--ps-font-display);
  font-size: clamp(1.6rem, 2.8vw, 2.2rem);
  font-weight: 800;
  margin-bottom: 1rem;
}

.ps-stats__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
  margin-top: 1.5rem;
}

.ps-stats__card {
  background: var(--ps-surface-low);
  border-radius: 1.25rem;
  padding: 1.5rem;
}

.ps-stats__card-icon {
  font-size: 2rem;
  color: var(--ps-tertiary);
  margin-bottom: .75rem;
}

.ps-stats__card-num {
  font-family: var(--ps-font-display);
  font-size: 2.25rem;
  font-weight: 800;
  color: var(--ps-on-surface);
}

.ps-stats__card-label {
  font-size: .85rem;
  color: var(--ps-outline);
  font-weight: 500;
  margin-top: .25rem;
}

/* ---------- 3. OVERVIEW / ABOUT ---------- */
.ps-overview {
  padding-block: 4rem;
  background: var(--ps-surface-low);
}

.ps-overview__inner {
  max-width: 860px;
  margin-inline: auto;
  text-align: center;
}

.ps-section-eyebrow {
  display: inline-block;
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--ps-primary);
  background: var(--ps-primary-lt);
  border-radius: var(--ps-radius-pill);
  padding: .35rem 1rem;
  margin-bottom: 1.25rem;
}

.ps-section-title {
  font-family: var(--ps-font-display);
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  font-weight: 800;
  margin-bottom: 1.5rem;
  color: var(--ps-on-surface);
}

.ps-section-title span {
  color: var(--ps-primary);
}

.ps-section-title-bar {
  width: 5rem;
  height: 4px;
  background: linear-gradient(90deg, var(--ps-primary), var(--ps-tertiary-c));
  border-radius: var(--ps-radius-pill);
  margin: 0 auto 2rem;
}

.ps-overview__body {
  font-size: 1rem;
  line-height: 1.8;
  color: var(--ps-on-surface-v);
  text-align: justify;
}

.ps-overview__body p + p { margin-top: 1.25rem; }

/* ---------- 5. PACKAGE CARDS (Gallery Variants) ---------- */
.ps-packages {
  padding-block: 4rem;
  background: var(--ps-surface);
}

.ps-packages__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 3rem;
}

.ps-packages__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 1.75rem;
}

.ps-pkg-card {
  background: var(--ps-surface-card);
  border-radius: var(--ps-radius-card);
  overflow: hidden;
  box-shadow: var(--ps-shadow-sm);
  border: 1px solid var(--ps-outline-v);
  display: flex;
  flex-direction: column;
  transition: transform .35s var(--ps-transition),
              box-shadow .35s var(--ps-transition),
              border-color .35s var(--ps-transition);
}
.ps-pkg-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--ps-shadow-xl);
  border-color: var(--ps-outline);
}

.ps-pkg-card__img {
  position: relative;
  height: 17rem;
  overflow: hidden;
}

.ps-pkg-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s var(--ps-transition);
}
.ps-pkg-card:hover .ps-pkg-card__img img { transform: scale(1.08); }

.ps-pkg-card__badge {
  position: absolute;
  top: 1rem;
  right: 1rem;
  background: var(--ps-tertiary-c);
  color: #fff;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  border-radius: var(--ps-radius-pill);
  padding: .35rem .85rem;
}

.ps-pkg-card__body { padding: 1.75rem; flex: 1; display: flex; flex-direction: column; }

.ps-pkg-card__title {
  font-family: var(--ps-font-display);
  font-size: 1.1rem;
  font-weight: 700;
  margin-bottom: .5rem;
}

.ps-pkg-card__meta {
  display: flex;
  align-items: center;
  gap: .4rem;
  font-size: .85rem;
  color: var(--ps-outline);
  font-weight: 500;
  margin-bottom: 1.25rem;
}

.ps-pkg-card__meta .material-symbols-outlined { font-size: 1rem; }

.ps-pkg-card__price-label {
  font-size: .7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--ps-outline-v);
}

.ps-pkg-card__price {
  font-family: var(--ps-font-display);
  font-size: 1.4rem;
  font-weight: 800;
  color: var(--ps-primary);
}

.ps-pkg-card__foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: auto;
  padding-top: 1.25rem;
}

.ps-pkg-card__cta {
  width: 2.75rem;
  height: 2.75rem;
  background: var(--ps-secondary);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 1.1rem;
  transition: background .2s, transform .2s;
}
.ps-pkg-card:hover .ps-pkg-card__cta {
  background: var(--ps-primary);
  transform: rotate(45deg);
}

/* ---------- 6. TOP ATTRACTIONS ---------- */
.ps-attractions {
  padding-top: 6rem;
  padding-bottom: 4rem;
  background: var(--ps-surface-high);
}

.ps-attractions__slider-wrap {
  position: relative;
  display: flex;
  align-items: center;
  gap: 1.5rem;
}

.ps-attractions__slider {
  display: flex;
  gap: 1.5rem;
  overflow-x: auto;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  padding-block: 1rem;
  scrollbar-width: none;
  -ms-overflow-style: none;
  flex: 1;
}

.ps-attractions__slider::-webkit-scrollbar {
  display: none;
}

.ps-attractions__card {
  flex: 0 0 calc((100% - 4.5rem) / 4);
   aspect-ratio: 1 / 1;
  border-radius: var(--ps-radius-card);
  overflow: hidden;
  position: relative;
  scroll-snap-align: start;
  box-shadow: var(--ps-shadow-md);
  transition: transform .4s var(--ps-transition);
}

.ps-attractions__card:hover { transform: translateY(-8px); }

.ps-attractions__card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s var(--ps-transition);
}

.ps-attractions__card:hover img { transform: scale(1.08); }

.ps-attractions__card-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 2.5rem 1.25rem;
  background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.2) 50%, transparent 80%);
  color: #fff;
  text-align: center;
}

.ps-attractions__card-overlay h4 {
  font-family: var(--ps-font-display);
  font-size: 1.25rem;
  font-weight: 700;
  text-shadow: 0 2px 4px rgba(0,0,0,0.5);
}

.ps-slider-arrow {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 50%;
  border: none;
  background: #fff;
  color: var(--ps-on-surface);
  box-shadow: var(--ps-shadow-md);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
  transition: all .2s var(--ps-transition);
  flex-shrink: 0;
}

.ps-slider-arrow:hover {
  background: var(--ps-primary);
  color: #fff;
  transform: scale(1.1);
  box-shadow: var(--ps-shadow-xl);
}

@media (max-width: 1000px) {
  .ps-attractions__card { flex: 0 0 calc((100% - 1.5rem) / 2); }
  .ps-slider-arrow { display: none; }
  .ps-attractions__slider { padding-inline: 1.5rem; margin-inline: -1.5rem; }
}
@media (max-width: 600px) {
  .ps-attractions__card { flex: 0 0 85%; }
}

/* ---------- 7. THINGS TO DO ---------- */
.ps-things {
  padding-block: 4rem;
  background: var(--ps-surface-low);
}

.ps-things__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1.5rem;
  margin-top: 3rem;
}

.ps-thing-card {
  background: var(--ps-surface-card);
  border-radius: var(--ps-radius-card);
  padding: 2rem;
  box-shadow: var(--ps-shadow-sm);
  border: 1px solid var(--ps-outline-v);
  transition: transform .3s var(--ps-transition), box-shadow .3s var(--ps-transition);
}
.ps-thing-card:hover { transform: translateY(-4px); box-shadow: var(--ps-shadow-md); }

.ps-thing-card__icon-wrap {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 1rem;
  background: var(--ps-surface-low);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.25rem;
  color: var(--ps-secondary);
  font-size: 1.6rem;
  transition: background .3s, color .3s;
}
.ps-thing-card:hover .ps-thing-card__icon-wrap {
  background: var(--ps-primary);
  color: #fff;
}

.ps-thing-card h4 {
  font-family: var(--ps-font-display);
  font-size: 1.1rem;
  font-weight: 700;
  margin-bottom: .5rem;
}

.ps-thing-card p {
  font-size: .9rem;
  color: var(--ps-outline);
  line-height: 1.7;
}

/* ---------- 8. CULTURAL / EXPERIENCES ---------- */
.ps-culture {
  padding-block: 4rem;
  background: var(--ps-tertiary);
  color: #fff;
}

.ps-culture__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5rem;
  align-items: center;
}
@media (max-width: 900px) { .ps-culture__inner { grid-template-columns: 1fr; } }

.ps-culture__heading {
  font-family: var(--ps-font-display);
  font-size: clamp(1.75rem, 3.5vw, 2.75rem);
  font-weight: 800;
  margin-bottom: 1rem;
}

.ps-culture__subtext { opacity: .88; font-size: 1.05rem; margin-bottom: 2.5rem; }

.ps-culture__list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
}

.ps-culture__item {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
}

.ps-culture__item-icon {
  width: 2.75rem;
  height: 2.75rem;
  background: rgba(255,255,255,.15);
  border-radius: .875rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 1.2rem;
}

.ps-culture__item h6 { font-weight: 700; margin-bottom: .3rem; }
.ps-culture__item p  { font-size: .85rem; opacity: .78; }

.ps-culture__img-frame {
  border-radius: 2.5rem;
  overflow: hidden;
  transform: rotate(3deg);
  box-shadow: var(--ps-shadow-xl);
  transition: transform .6s var(--ps-transition);
}
.ps-culture__img-frame:hover { transform: rotate(0); }
.ps-culture__img-frame img { width: 100%; aspect-ratio: 3/4; object-fit: cover; }

/* ---------- 9. ITINERARY ---------- */
.ps-itinerary {
  padding-block: 4rem;
  background: var(--ps-surface);
}

.ps-itinerary__timeline {
  margin-top: 3rem;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.ps-itin-item {
  display: grid;
  grid-template-columns: 5rem 1fr;
  gap: 0 2rem;
  position: relative;
}

.ps-itin-item + .ps-itin-item { margin-top: 0; }

.ps-itin-item__marker {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.ps-itin-item__circle {
  width: 3rem;
  height: 3rem;
  background: var(--ps-primary);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-weight: 800;
  font-size: .85rem;
  flex-shrink: 0;
  z-index: 1;
}

.ps-itin-item__line {
  width: 2px;
  flex: 1;
  background: linear-gradient(to bottom, var(--ps-outline-v), transparent);
  margin-top: .5rem;
  min-height: 3rem;
}

.ps-itin-item:last-child .ps-itin-item__line { display: none; }

.ps-itin-item__body {
  padding-bottom: 2.5rem;
}

.ps-itin-item__day {
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ps-primary);
  margin-bottom: .35rem;
}

.ps-itin-item__title {
  font-family: var(--ps-font-display);
  font-size: 1.15rem;
  font-weight: 700;
  margin-bottom: .5rem;
}

.ps-itin-item__desc {
  font-size: .92rem;
  color: var(--ps-on-surface-v);
  line-height: 1.75;
}

/* ---------- 10. INCLUSIONS / EXCLUSIONS ---------- */
.ps-incl-excl {
  padding-block: 4rem;
  background: var(--ps-surface-low);
}

.ps-incl-excl__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  margin-top: 3rem;
}
@media (max-width: 700px) { .ps-incl-excl__grid { grid-template-columns: 1fr; } }

.ps-incl-excl__col {
  background: var(--ps-surface-card);
  border-radius: var(--ps-radius-card);
  padding: 2rem;
  box-shadow: var(--ps-shadow-sm);
}

.ps-incl-excl__col--incl { border-top: 4px solid #2a9d2a; }
.ps-incl-excl__col--excl { border-top: 4px solid var(--ps-error); }

.ps-incl-excl__col-title {
  font-family: var(--ps-font-display);
  font-size: 1.15rem;
  font-weight: 700;
  margin-bottom: 1.25rem;
  display: flex;
  align-items: center;
  gap: .5rem;
}

.ps-incl-excl__col-title .material-symbols-outlined { font-size: 1.3rem; }
.ps-incl-excl__col--incl .material-symbols-outlined { color: #2a9d2a; }
.ps-incl-excl__col--excl .material-symbols-outlined { color: var(--ps-error); }

.ps-incl-excl__list li {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  padding: .6rem 0;
  border-bottom: 1px solid var(--ps-surface-low);
  font-size: .9rem;
  color: var(--ps-on-surface-v);
}
.ps-incl-excl__list li:last-child { border-bottom: none; }

.ps-incl-excl__list .material-symbols-outlined { font-size: 1rem; flex-shrink: 0; margin-top: .1rem; }
.ps-incl-excl__col--incl .ps-incl-excl__list .material-symbols-outlined { color: #2a9d2a; }
.ps-incl-excl__col--excl .ps-incl-excl__list .material-symbols-outlined { color: var(--ps-error); }

/* ---------- 11. BOOKING FORM ---------- */
.ps-booking {
  padding-block: 4rem;
  background: var(--ps-surface);
}

.ps-booking__card {
  background: var(--ps-primary);
  border-radius: 2.5rem;
  overflow: hidden;
  display: grid;
  grid-template-columns: 2fr 3fr;
  box-shadow: var(--ps-shadow-xl);
}
@media (max-width: 900px) { .ps-booking__card { grid-template-columns: 1fr; } }

.ps-booking__img {
  position: relative;
  min-height: 360px;
}
.ps-booking__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ps-booking__img-scrim {
  position: absolute;
  inset: 0;
  background: rgba(158,66,0,.25);
  mix-blend-mode: multiply;
}

.ps-booking__form-wrap {
  padding: clamp(2rem, 5vw, 4rem);
  color: #fff;
}

.ps-booking__form-title {
  font-family: var(--ps-font-display);
  font-size: clamp(1.6rem, 3vw, 2.5rem);
  font-weight: 800;
  margin-bottom: .75rem;
}

.ps-booking__form-sub {
  opacity: .82;
  margin-bottom: 2.25rem;
  font-size: .95rem;
}

.ps-booking__form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
}
@media (max-width: 600px) { .ps-booking__form { grid-template-columns: 1fr; } }

.ps-booking__form--full { grid-column: 1 / -1; }

.ps-booking__form label {
  display: block;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  opacity: .8;
  margin-bottom: .5rem;
}

.ps-booking__form input,
.ps-booking__form select,
.ps-booking__form textarea {
  width: 100%;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 1rem;
  padding: .875rem 1.25rem;
  color: #fff;
  font-family: var(--ps-font-body);
  font-size: .95rem;
  outline: none;
  transition: background .2s, border-color .2s, box-shadow .2s;
  appearance: none;
}

.ps-booking__form input::placeholder { color: rgba(255,255,255,.4); }

.ps-booking__form input:focus,
.ps-booking__form select:focus,
.ps-booking__form textarea:focus {
  background: rgba(255,255,255,.2);
  border-color: rgba(255,255,255,.6);
  box-shadow: 0 0 0 3px rgba(255,255,255,.15);
}

.ps-booking__form select option { color: var(--ps-on-surface); }

.ps-booking__form-submit {
  grid-column: 1 / -1;
  margin-top: .5rem;
}

.ps-submit-btn {
  width: 100%;
  padding: 1.125rem 2rem;
  background: #fff;
  color: var(--ps-primary);
  font-family: var(--ps-font-display);
  font-size: 1.05rem;
  font-weight: 800;
  border-radius: var(--ps-radius-pill);
  border: none;
  cursor: pointer;
  transition: background .2s, transform .2s, box-shadow .2s;
}
.ps-submit-btn:hover {
  background: var(--ps-primary-lt);
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(0,0,0,.18);
}

/* ---------- Utility ---------- */
.ps-no-data {
  text-align: center;
  padding: 3rem;
  color: var(--ps-outline);
  font-style: italic;
}

/* ---------- 12. RELATED PACKAGES ---------- */
.ps-related {
  padding-block: 4rem;
  background: var(--ps-surface-high);
  border-top: 1px solid var(--ps-outline-v);
}

.ps-related__grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 1rem;
}

/* Internal adjustments back to high-density 6-col cards */
.ps-related__grid .ps-pkg-card__img {
  height: 10rem;
}
.ps-related__grid .ps-pkg-card__body {
  padding: 1rem;
}
.ps-related__grid .ps-pkg-card__title {
  font-size: 0.95rem;
  line-height: 1.3;
}



@media (max-width: 1100px) {
  .ps-related__grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
  .ps-related__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
  .ps-related__grid { grid-template-columns: 1fr; }
  .ps-related__grid .ps-pkg-card__img { height: 14rem; }
}

/* ---------- 10B & 10C. HOTEL, FLIGHT & IMPORTANT INFO SECTIONS ---------- */
.ps-travel-details {
  padding-block: 4rem;
  background: var(--ps-surface);
}

.ps-travel-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
  gap: 2.5rem;
  margin-top: 3rem;
}

.ps-travel-col {
  background: var(--ps-surface-card);
  border-radius: var(--ps-radius-card);
  padding: 2.5rem;
  box-shadow: var(--ps-shadow-sm);
  border-top: 4px solid var(--ps-primary);
  transition: transform .3s var(--ps-transition), box-shadow .3s var(--ps-transition);
}

.ps-travel-col:hover {
  transform: translateY(-4px);
  box-shadow: var(--ps-shadow-md);
}

.ps-travel-col--hotel {
  border-top-color: var(--ps-secondary);
}

.ps-travel-col--flight {
  border-top-color: var(--ps-tertiary);
}

.ps-travel-col-title {
  font-family: var(--ps-font-display);
  font-size: 1.25rem;
  font-weight: 700;
  margin-bottom: 1.5rem;
  display: flex;
  align-items: center;
  gap: .6rem;
  color: var(--ps-on-surface);
}

.ps-travel-col-title .material-symbols-outlined {
  font-size: 1.5rem;
  color: inherit;
}

/* ---------- 10C. BANK DETAILS ---------- */
.ps-bank-details {
  padding-block: 4rem;
  background: var(--ps-surface-low);
  border-top: 1px solid var(--ps-outline-v);
}

.ps-bank-details__inner,
.ps-please-note__inner,
.ps-conditions__inner {
  max-width: 860px;
  margin-inline: auto;
  text-align: center;
}

.ps-bank-details__card,
.ps-please-note__card,
.ps-conditions__card {
  background: var(--ps-surface-card);
  border-radius: var(--ps-radius-card);
  padding: 2.5rem;
  box-shadow: var(--ps-shadow-sm);
  text-align: left;
  margin-top: 2rem;
  border-left: 4px solid var(--ps-primary);
  transition: transform .3s var(--ps-transition), box-shadow .3s var(--ps-transition), border-color .3s;
}

.ps-bank-details__card:hover,
.ps-please-note__card:hover,
.ps-conditions__card:hover {
  transform: translateY(-4px);
  box-shadow: var(--ps-shadow-md);
}

.ps-bank-details__card {
  border-left-color: #b38f00; /* Gold */
}

.ps-bank-details__title,
.ps-please-note__title,
.ps-conditions__title {
  font-family: var(--ps-font-display);
  font-size: 1.25rem;
  font-weight: 700;
  margin-bottom: 1.5rem;
  display: flex;
  align-items: center;
  gap: .6rem;
  color: var(--ps-on-surface);
}

.ps-bank-details__title .material-symbols-outlined { color: #b38f00; }

/* ---------- 10D. PLEASE NOTE ---------- */
.ps-please-note {
  padding-block: 4rem;
  background: var(--ps-surface);
  border-top: 1px solid var(--ps-outline-v);
}

.ps-please-note__card {
  border-left-color: #0080ff; /* Blue */
}

.ps-please-note__title .material-symbols-outlined { color: #0080ff; }

/* ---------- 10E. CONDITIONS ---------- */
.ps-conditions {
  padding-block: 4rem;
  background: var(--ps-surface-low);
  border-top: 1px solid var(--ps-outline-v);
}

.ps-conditions__card {
  border-left-color: #ff4d4d; /* Soft Coral Red */
}

.ps-conditions__title .material-symbols-outlined { color: #ff4d4d; }

/* Rich WYSIWYG editor content styling inside sections */
.rich-text-content {
  font-size: .92rem;
  line-height: 1.8;
  color: var(--ps-on-surface-v);
}

.rich-text-content p {
  margin-bottom: 1rem;
}

.rich-text-content p:last-child {
  margin-bottom: 0;
}

.rich-text-content ul, .rich-text-content ol {
  margin-bottom: 1rem;
  padding-left: 1.25rem;
}

.rich-text-content ul {
  list-style-type: none;
}

.rich-text-content ul li {
  position: relative;
  padding-left: 1.25rem;
  margin-bottom: .5rem;
}

.rich-text-content ul li::before {
  content: "•";
  position: absolute;
  left: 0;
  color: var(--ps-primary);
  font-weight: bold;
  font-size: 1.2rem;
  line-height: 1;
  top: -0.1rem;
}

.rich-text-content ol {
  list-style-type: decimal;
}

.rich-text-content ol li {
  margin-bottom: .5rem;
  padding-left: .25rem;
}

.rich-text-content strong {
  font-weight: 700;
  color: var(--ps-on-surface);
}

.rich-text-content a {
  color: var(--ps-primary);
  text-decoration: none;
  font-weight: 600;
  transition: opacity .2s;
}

.rich-text-content a:hover {
  opacity: 0.8;
  text-decoration: underline;
}

.rich-text-content table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 1rem;
  font-size: 0.85rem;
}

.rich-text-content table th, .rich-text-content table td {
  border: 1px solid var(--ps-outline-v);
  padding: 0.6rem 0.8rem;
  text-align: left;
}

.rich-text-content table th {
  background: var(--ps-surface-low);
  font-weight: 700;
}

@media (max-width: 900px) {
  .ps-travel-grid, .ps-info-grid {
    grid-template-columns: 1fr;
  }
}

/* Responsive helpers */
@media (max-width: 700px) {
  .ps-culture__list { grid-template-columns: 1fr; }
  .ps-hero__bar { flex-direction: column; }
}

