/* 
   IPR Holidays landing-page kit for Bootstrap 5.3
   Load AFTER bootstrap.min.css. Font: Sora 400/600/700 (Google Fonts).
   Prefix "ipr-" avoids Bootstrap clashes.
   Sections: 1 Tokens  2 Base  3 Layout  4 Buttons  5 Badges  6 Cards
             7 Hero  8 Forms  9 Accordion  10 Nav/Footer/Floating  11 Icons
*/

/* 1. TOKENS */
:root {
  --ipr-primary: #1563a1;        /* footer/headings blue */
  --ipr-primary-light: #3f8cca;  /* outline buttons, links */
  --ipr-accent: #00a1ff;
  --ipr-cyan: #00e3ff;           /* footer headings */
  --ipr-hover: #0070f3;          /* link hover */
  --ipr-navy: #003259;           /* card titles */
  --ipr-tint: #e3f2ff;           /* light blue section bg */
  --ipr-tint-2: #caE7ff;         /* selected bg */
  --ipr-text: #222;
  --ipr-muted: #7a7a7a;
  --ipr-yellow: #ffbd00;         /* labels */
  --ipr-red: #d80000;            /* sale price */
  --ipr-required: #ff6161;
  --ipr-star: #ffc107;
  --ipr-border: #edeef1;
  --ipr-card-border: rgba(21, 99, 161, .2);
  --ipr-shadow: 0 0 20px 0 rgba(34, 34, 34, .15);
  --ipr-shadow-sm: 0 0 10px 0 rgba(0, 0, 0, .15);
  --ipr-gradient: linear-gradient(93deg, #3f8cca -5.08%, #1563a1 106.36%);
  --ipr-gradient-tint: linear-gradient(106deg, #e3f2ff -6.26%, #fff 109.38%);
  --ipr-radius-section: 2rem;
  --ipr-radius-card: 1.5rem;
  --ipr-radius-img: .75rem;
  --ipr-radius-pill: 1.875rem;
  --ipr-max: 90rem;
  --ipr-gap: 3.75rem;            /* space between page sections */

  /* Bootstrap variable overrides */
  --bs-primary: #1563a1;
  --bs-primary-rgb: 21, 99, 161;
  --bs-link-color: #1563a1;
  --bs-link-color-rgb: 21, 99, 161;
  --bs-link-hover-color: #0070f3;
  --bs-body-font-family: "Sora", "Sora Fallback", Arial, sans-serif;
  --bs-body-color: #222;
  --bs-body-color-rgb: 34, 34, 34;
  --bs-heading-color: #222;
  --bs-border-radius: .75rem;
  --bs-border-radius-lg: 1.5rem;
  --bs-border-radius-pill: 1.875rem;
}

/* 2. BASE */
body { font-family: var(--bs-body-font-family); -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, h5, h6 { line-height: normal; }
a { text-decoration: none; }
.ipr-muted { color: var(--ipr-muted); }
.ipr-blue  { color: var(--ipr-primary); }
.ipr-bg-gradient { background: var(--ipr-gradient); color: #fff; }

/* 3. LAYOUT */
.ipr-page { padding: 0 1.5rem 1.5rem; display: flex; flex-direction: column; gap: var(--ipr-gap); }
.ipr-container { max-width: var(--ipr-max); margin: 0 auto; width: 100%; padding: 0 8rem; }
@media (max-width: 1024px) { .ipr-container { padding: 0 4rem; } }
@media (max-width: 768px)  { .ipr-container { padding: 0 1.25rem; } .ipr-page { padding: 0 1rem 1rem; } }

.ipr-section-blue { background: var(--ipr-tint); border-radius: 1rem; padding: 2rem 0; }

.ipr-heading { max-width: 51rem; margin: 0 auto 2rem; text-align: center; }
.ipr-heading h1, .ipr-heading h2 {
  background: var(--ipr-gradient); -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; font-size: 2rem; font-weight: 600;
}
.ipr-heading p { margin: .5rem 0 0; }
@media (max-width: 768px) { .ipr-heading h1, .ipr-heading h2 { font-size: 1.5rem; } }

/* 4. BUTTONS */
.ipr-btn, .ipr-btn-outline {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  border-radius: var(--ipr-radius-pill); font-size: .875rem; cursor: pointer; transition: all .2s ease;
}
.ipr-btn { padding: .75rem 1.5rem; border: 0; background: var(--ipr-gradient); color: #fff; font-weight: 600; }
.ipr-btn:hover { opacity: .9; transform: translateY(-1px); color: #fff; }
.ipr-btn:disabled { opacity: .5; cursor: not-allowed; transform: none; }
.ipr-btn-outline { padding: .5rem 1rem; border: 1px solid var(--ipr-primary-light); background: transparent; color: var(--ipr-primary-light); }
.ipr-btn-outline:hover { background: var(--ipr-gradient); border-color: transparent; color: #fff; }
.ipr-btn-lg { padding: 1.125rem 1.5rem; }              /* hero / CTA size */
.ipr-btn-yellow { background: var(--ipr-yellow); color: #000; border: 1px solid var(--ipr-yellow); padding: .75rem 1.25rem; border-radius: .75rem; font-weight: 600; }

/* 5. BADGES */
.ipr-label {   /* "Save upto INR ..." / "Best Price Guaranteed" */
  display: inline-block; padding: .75rem 1rem; font-size: .75rem; color: var(--ipr-navy);
  background: var(--ipr-yellow); border-radius: 0 var(--ipr-radius-pill) var(--ipr-radius-pill) 0;
}
.ipr-rating {
  display: inline-flex; align-items: center; gap: .35rem; padding: .5rem .75rem; color: #fff; font-size: 1rem;
  border-radius: 1.25rem; border: 1px solid rgba(255,255,255,.5); background: rgba(0,0,0,.2); backdrop-filter: blur(1px);
}
.ipr-rating [data-lucide], .ipr-rating svg { color: var(--ipr-star); fill: var(--ipr-star); }
.ipr-chip {    /* pill tag for themes / filters */
  display: inline-flex; align-items: center; gap: .625rem; padding: .625rem 1rem; border-radius: 1.25rem;
  color: var(--ipr-primary); font-weight: 600; cursor: pointer;
}
.ipr-chip:hover, .ipr-chip.active { background: var(--ipr-gradient); color: #fff; }

/* 6. CARDS */
/* 6a. Package card */
.ipr-card { display: flex; flex-direction: column; justify-content: space-between; gap: 1rem; padding-bottom: 1rem; height: 100%; }
.ipr-card .slider { position: relative; border-radius: var(--ipr-radius-img); overflow: hidden; }
.ipr-card .slider::after { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(rgba(0,0,0,0) 75%, rgba(13,15,17,.61) 85%); }
.ipr-card .card-img { display: block; width: 100%; aspect-ratio: 1.29 / 1; object-fit: cover; }
.ipr-card .label-wrapper { position: absolute; z-index: 1; top: 2rem; left: 0; right: 1rem;
  display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
@media (max-width: 550px) { .ipr-card .label-wrapper { top: .5rem; } }
.ipr-card h3 { margin: 0; color: var(--ipr-navy); font-size: 1.5rem; font-weight: 600; text-transform: capitalize; }
@media (max-width: 768px) { .ipr-card h3 { font-size: 1.25rem; } }
.ipr-card .short-info-wrapper { display: flex; gap: .5rem; line-height: normal; }
.ipr-card .short-info { display: flex; gap: .25rem; padding-right: .5rem; color: var(--ipr-muted); border-right: 1px solid var(--ipr-muted); }
.ipr-card .short-info span { color: var(--ipr-primary); }
.ipr-card .short-info:last-child { border-right: 0; padding-right: 0; }
.ipr-card .daily-route { max-width: 300px; font-size: .875rem; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ipr-old-price { color: #2a2a2a; font-size: .75rem; text-decoration: line-through; }
.ipr-new-price { color: var(--ipr-red); font-size: 1.25rem; font-weight: 600; }
.ipr-per-person { margin-left: .25rem; font-size: .85rem; font-weight: 600; color: var(--ipr-muted); }
.ipr-card .btn-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.ipr-card .btn-wrapper > * { width: 100%; min-width: 0; padding: .6rem 1rem; }

/* 6b. Content card (testimonial / person / news / feature) */
.ipr-card-shadow { padding: 2rem; border-radius: var(--ipr-radius-card); background: #fff; box-shadow: var(--ipr-shadow-sm); }
.ipr-card-tint { padding: 1rem; border-radius: 1rem; border: 1px solid var(--ipr-card-border); background: var(--ipr-gradient-tint); }
.ipr-testimonial { display: flex; flex-direction: column; overflow: hidden; background: #fff; border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,.05); }
.ipr-testimonial .body { padding: 15px 20px 20px; display: flex; flex-direction: column; gap: 8px; }
.ipr-testimonial h3 { margin: 0; font-size: 1.1em; font-weight: 600; }
.ipr-testimonial .place { font-size: .9em; color: gray; }

/* 6c. Circle icon feature (icon in tinted circle + title) */
.ipr-feature { display: flex; flex-direction: column; align-items: center; gap: .75rem; text-align: center; }
.ipr-feature .icon { display: flex; align-items: center; justify-content: center; width: 5rem; aspect-ratio: 1;
  padding: 1.2rem; border-radius: 50%; background: var(--ipr-tint); color: var(--ipr-primary); }
.ipr-feature h5 { margin: 0; font-size: 1.1rem; color: var(--ipr-primary); }
.ipr-feature .icon [data-lucide], .ipr-feature .icon svg { width: 2rem; height: 2rem; }

/* 6d. Destination tile (image with dark gradient + centered title) */
.ipr-tile { position: relative; display: flex; align-items: center; justify-content: center; overflow: hidden; min-height: 200px; border-radius: 1rem; }
.ipr-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ipr-tile .overlay { position: absolute; inset: 0; z-index: 1; display: flex; align-items: center; justify-content: center;
  background: linear-gradient(0deg, rgba(0,0,0,.7), rgba(0,0,0,0)); }
.ipr-tile h5 { margin: 0; max-width: 10.5rem; text-align: center; text-transform: capitalize; color: #fff;
  font-size: 1.5rem; font-weight: 700; text-shadow: 0 4px 9.4px rgba(0,0,0,.25); }

/* 6e. Round country icon link */
.ipr-country { display: flex; flex-direction: column; align-items: center; gap: 1.5rem; color: var(--ipr-text); transition: transform .25s ease; }
.ipr-country:hover { transform: translateY(-6px); color: var(--ipr-hover); }
.ipr-country img { width: 6rem; height: 6rem; object-fit: contain; }

/* 7. HERO */
.ipr-hero { position: relative; display: flex; align-items: center; justify-content: center; flex-direction: column;
  min-height: 28rem; padding: 2.5rem; border-radius: 1rem; background-size: cover; background-position: center; }
.ipr-hero::before { content: ""; position: absolute; inset: 0; border-radius: inherit; background: rgba(0,0,0,.28); }
.ipr-hero > * { position: relative; }
.ipr-hero h1 { max-width: 75rem; margin: 0; text-align: center; text-transform: uppercase; color: #fff;
  font-size: 4rem; font-weight: 800; line-height: 1.01; text-shadow: 0 4px 12px rgba(0,0,0,.45); }
.ipr-hero p { color: #fff; text-align: center; text-shadow: 0 3px 10px rgba(0,0,0,.4); }
@media (max-width: 768px) { .ipr-hero { padding: 1.25rem; } .ipr-hero h1 { font-size: 2.25rem; } }
@media (max-width: 480px) { .ipr-hero h1 { font-size: 1.75rem; } }
.ipr-hero .price-pill { padding: 1rem 2rem; border-radius: 2rem; background: #fff; color: var(--ipr-primary); font-size: 1.5rem; font-weight: 600; }

/* 8. FORMS */
.ipr-form-card { max-width: 45rem; margin: 0 auto; padding: 4rem; background: #fff; border-radius: var(--ipr-radius-section); box-shadow: var(--ipr-shadow); }
@media (max-width: 550px) { .ipr-form-card { padding: 2rem; } }
.ipr-field { display: flex; flex-direction: column; gap: .75rem; }
.ipr-field label { font-size: 1.125rem; color: var(--ipr-text); }
.ipr-field .required { color: var(--ipr-required); }
.ipr-field .form-control, .ipr-field .form-select {
  padding: 1.25rem 1rem; font-size: 1.125rem; color: var(--ipr-text);
  border: 1px solid var(--ipr-border); border-radius: var(--ipr-radius-card); box-shadow: none;
}
.ipr-field textarea.form-control { height: 11rem; resize: none; }
.ipr-field .form-control::placeholder { color: rgba(34,34,34,.5); }
.ipr-field .form-control:focus, .ipr-field .form-select:focus { border-color: var(--ipr-primary); background: #fff; }
.ipr-error { color: var(--ipr-red); font-size: .875rem; }
.ipr-search { display: flex; align-items: center; gap: .5rem; padding: .5rem; background: #fff; border-radius: 3rem; box-shadow: 0 0 25px rgba(0,0,0,.15); }
.ipr-search input { flex: 1; padding: 1rem 1.5rem; border: 0; outline: 0; background: transparent; }

/* 9. ACCORDION (Bootstrap accordion restyled) */
.ipr-accordion .accordion-item { margin-bottom: 1rem; border: 0; border-radius: var(--ipr-radius-card) !important; box-shadow: 0 0 20px rgba(8,15,52,.15); overflow: hidden; }
.ipr-accordion .accordion-button { padding: 1.5rem 2rem; font-size: 1.25rem; font-weight: 600; background: #fff; box-shadow: none; }
.ipr-accordion .accordion-button:not(.collapsed) { color: var(--ipr-primary); }
.ipr-accordion .accordion-body { padding: 1.5rem 2rem 2rem; color: var(--ipr-muted); font-size: .875rem; border-top: 1px solid rgba(136,136,136,.5); }

/* 10. NAV / FOOTER / FLOATING */
.ipr-topbar { border-bottom: 1px solid rgba(0,0,0,.06); font-size: .78rem; }
.ipr-topbar a { color: #000; }
.ipr-topbar a:hover { color: var(--ipr-hover); }
.ipr-nav { background: #fff; }
.ipr-nav .nav-link { color: var(--ipr-text); padding: 12px 16px; }
.ipr-nav .nav-link:hover, .ipr-nav .nav-link.active { color: var(--ipr-hover); }

.ipr-cta-banner { background: var(--ipr-tint); border-radius: var(--ipr-radius-section) var(--ipr-radius-section) 0 0; padding: 2rem 0; }
.ipr-cta-banner h2 { font-size: 2rem; font-weight: 700; color: #000; }

.ipr-footer { background: var(--ipr-primary); color: #fff; border-radius: 0 0 var(--ipr-radius-section) var(--ipr-radius-section); padding: 3rem 0 2rem; }
.ipr-footer h6 { color: var(--ipr-cyan); font-size: 16px; font-weight: 600; margin-bottom: 1rem; }
.ipr-footer a { color: #fff; font-size: 14px; font-weight: 300; }
.ipr-footer a:hover { opacity: .8; color: #fff; }
.ipr-footer .desc { font-size: 11px; color: rgba(255,255,255,.7); text-align: center; }
.ipr-footer hr { border-color: var(--ipr-accent); opacity: 1; }
.ipr-social { display: inline-flex; align-items: center; justify-content: center; padding: 10px; border-radius: 50%; background: #fff; color: var(--ipr-primary); }

.ipr-floating { position: fixed; right: 0; top: 50dvh; z-index: 100; display: flex; flex-direction: column; gap: .5rem; }
.ipr-floating a { display: flex; align-items: center; justify-content: center; padding: 1rem; border-radius: 2rem; background: var(--ipr-tint); }
.ipr-floating a:hover { background: var(--ipr-primary-light); }

/* 11. ICONS (Lucide) */
[data-lucide], .lucide { width: 1.25rem; height: 1.25rem; stroke-width: 1.8; }
