/* SevenPro Travel Core — Shared Public Styles v1.3.2 */

/* DEPARTURE CARDS */
.sp-departure-list { display: flex; flex-direction: column; gap: .75rem; }
.sp-dep-card { display: grid; grid-template-columns: auto 1fr 1fr auto auto auto; gap: 1rem; align-items: center; padding: 1.25rem; border-radius: 8px; background: #fff; border: 1px solid #e5e7eb; position: relative; }
.sp-dep-route { text-align: center; min-width: 90px; }
.sp-dep-from, .sp-dep-to { font-size: 1.125rem; font-weight: 700; font-family: monospace; display: block; }
.sp-dep-arrow { color: #999; font-size: .875rem; }
.sp-dep-dates { }
.sp-dep-range { font-weight: 600; font-size: .875rem; display: block; }
.sp-dep-nights { font-size: .8125rem; color: #666; display: block; margin-top: .125rem; }
.sp-dep-hotels { font-size: .8125rem; }
.sp-dep-hotel-item { margin-bottom: .375rem; }
.sp-dep-hotel-city { font-weight: 600; font-size: .6875rem; text-transform: uppercase; letter-spacing: .05em; display: block; color: #888; }
.sp-dep-hotel-name { display: block; }
.sp-dep-hotel-dist { font-size: .75rem; color: #999; }
.sp-dep-price { text-align: right; }
.sp-dep-price-label { font-size: .6875rem; text-transform: uppercase; letter-spacing: .05em; color: #888; display: block; }
.sp-dep-price-amount { font-size: 1.25rem; font-weight: 700; display: block; }
.sp-dep-price-per { font-size: .6875rem; color: #888; display: block; }
.sp-dep-avail { text-align: center; min-width: 80px; }
.sp-badge-soldout { background: #fce4ec; color: #c62828; padding: .25rem .625rem; border-radius: 4px; font-size: .75rem; font-weight: 600; }
.sp-badge-low { background: #fff3e0; color: #e65100; padding: .25rem .625rem; border-radius: 4px; font-size: .75rem; font-weight: 600; }
.sp-badge-available { background: #e8f5e9; color: #2e7d32; padding: .25rem .625rem; border-radius: 4px; font-size: .75rem; font-weight: 600; }
.sp-dep-actions { min-width: 90px; text-align: center; }
.sp-dep-btn-primary { display: inline-block; padding: .5rem 1.25rem; border-radius: 6px; text-decoration: none; font-weight: 600; font-size: .875rem; color: #fff; background: #1e3a5f; }
.sp-dep-demo { position: absolute; top: .5rem; right: .5rem; font-size: .625rem; text-transform: uppercase; letter-spacing: .06em; padding: .125rem .375rem; border-radius: 3px; background: rgba(0,0,0,.05); color: #999; }
.sp-dep-card.sp-sold-out { opacity: .6; }

/* PACKAGE CARDS */
.sp-package-grid { display: grid; gap: 1.25rem; }
.sp-cols-2 { grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }
.sp-cols-3 { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.sp-pkg-card { border-radius: 8px; overflow: hidden; background: #fff; border: 1px solid #e5e7eb; position: relative; }
.sp-pkg-visual { height: 140px; position: relative; display: flex; align-items: flex-end; padding: .75rem; }
.sp-pkg-tier-tag { font-size: .6875rem; text-transform: uppercase; letter-spacing: .06em; font-weight: 700; padding: .125rem .5rem; border-radius: 3px; background: rgba(255,255,255,.9); color: #333; }
.sp-pkg-demo-tag { position: absolute; top: .5rem; right: .5rem; font-size: .625rem; text-transform: uppercase; letter-spacing: .06em; padding: .125rem .375rem; border-radius: 3px; background: rgba(0,0,0,.05); color: #999; }
.sp-pkg-info { padding: 1.25rem; }
.sp-pkg-name { font-size: 1.0625rem; font-weight: 600; margin: 0 0 .5rem; }
.sp-pkg-details { font-size: .8125rem; color: #666; margin-bottom: .75rem; }
.sp-pkg-details span + span::before { content: " · "; }
.sp-pkg-pricing { margin-bottom: .5rem; }
.sp-pkg-from { font-size: .6875rem; text-transform: uppercase; letter-spacing: .05em; color: #888; }
.sp-pkg-amount { font-size: 1.25rem; font-weight: 700; margin: 0 .25rem; }
.sp-pkg-per { font-size: .6875rem; color: #888; }
.sp-pkg-avail { font-size: .8125rem; color: #666; margin-bottom: .75rem; }
.sp-pkg-cta { display: inline-block; padding: .5rem 1.25rem; border-radius: 6px; text-decoration: none; font-weight: 600; font-size: .875rem; color: #fff; background: #1e3a5f; }

/* HOTEL CARDS */
.sp-hotel-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1.25rem; }
.sp-hotel-card { border-radius: 8px; overflow: hidden; background: #fff; border: 1px solid #e5e7eb; }
.sp-hotel-visual { height: 80px; position: relative; display: flex; align-items: flex-end; padding: .75rem; }
.sp-hotel-city-tag { font-size: .6875rem; text-transform: uppercase; letter-spacing: .08em; font-weight: 600; padding: .125rem .5rem; border-radius: 3px; background: rgba(255,255,255,.9); color: #333; }
.sp-hotel-info { padding: 1rem; }
.sp-hotel-info h3 { font-size: 1rem; font-weight: 600; margin: 0 0 .375rem; }
.sp-hotel-class { font-size: .8125rem; color: #666; }
.sp-hotel-dist { font-weight: 600; font-size: .875rem; margin-top: .375rem; }
.sp-hotel-walk { font-size: .8125rem; color: #666; }
.sp-hotel-demo { font-size: .625rem; text-transform: uppercase; letter-spacing: .06em; color: #999; display: inline-block; margin-top: .375rem; }

/* DEPARTURE FINDER */
.sp-departure-finder { padding: 1.5rem; border-radius: 8px; }
.sp-finder-filters { display: flex; gap: .75rem; flex-wrap: wrap; align-items: end; }
.sp-filter-group { flex: 1; min-width: 150px; }
.sp-filter-group label { display: block; font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; margin-bottom: .25rem; color: #666; }
.sp-filter-group select { width: 100%; padding: .625rem; border: 1px solid #d0d0d0; border-radius: 6px; font-size: .9375rem; }
.sp-finder-btn { padding: .625rem 1.5rem; font-weight: 600; border: none; border-radius: 6px; cursor: pointer; font-size: .9375rem; }

/* FORMS */
.sp-lead-form-section { max-width: 640px; margin: 0 auto; padding: 2rem; }
.sp-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.sp-field { display: flex; flex-direction: column; }
.sp-field label { font-size: .8125rem; font-weight: 600; margin-bottom: .25rem; }
.sp-field input, .sp-field select, .sp-field textarea { padding: .625rem .875rem; border: 1px solid #d0d0d0; border-radius: 6px; font-size: .9375rem; }
.sp-field-full { grid-column: 1 / -1; }
.sp-submit-btn { margin-top: 1rem; padding: .75rem 2rem; font-size: 1rem; font-weight: 600; border: none; border-radius: 6px; cursor: pointer; }
.sp-success { background: #e8f5e9; color: #2e7d32; padding: 1rem; border-radius: 6px; margin-top: 1rem; }
.sp-error { background: #fce4ec; color: #c62828; padding: 1rem; border-radius: 6px; margin-top: 1rem; }

/* RESERVATION */
.sp-reservation-flow { max-width: 720px; margin: 0 auto; padding: 2rem; }
.sp-demo-banner { background: #fff3cd; color: #856404; padding: .75rem 1rem; border-radius: 6px; font-weight: 600; font-size: .875rem; margin-bottom: 1rem; }

/* BRAND FOOTER */
.sp-brand-footer { padding: 1.5rem; margin-top: 2rem; border-top: 1px solid #eee; }
.sp-footer-inner { max-width: 1200px; margin: 0 auto; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem; }
.sp-footer-legal { font-size: .8125rem; color: #888; }
.sp-footer-address { font-size: .8125rem; color: #999; }

.sp-no-results { text-align: center; color: #888; padding: 2rem; }

/* BRAND-SPECIFIC VISUAL OVERRIDES */
/* UmrahQuest */
.sp-brand-umrahquest .sp-dep-from, .sp-brand-umrahquest .sp-dep-to { color: #1e3a5f; }
.sp-brand-umrahquest .sp-dep-btn-primary, .sp-brand-umrahquest .sp-pkg-cta { background: #1e3a5f; }
.sp-brand-umrahquest .sp-dep-price-amount, .sp-brand-umrahquest .sp-pkg-amount { color: #1e3a5f; }
.sp-brand-umrahquest .sp-pkg-visual { background: linear-gradient(135deg, #1e3a5f, #0f172a); }
.sp-brand-umrahquest .sp-hotel-visual { background: linear-gradient(135deg, #1e3a5f, #0f172a); }
/* Nuraya */
.sp-brand-nuraya .sp-dep-from, .sp-brand-nuraya .sp-dep-to { color: #2d4a3e; }
.sp-brand-nuraya .sp-dep-btn-primary, .sp-brand-nuraya .sp-pkg-cta { background: #2d4a3e; }
.sp-brand-nuraya .sp-dep-price-amount, .sp-brand-nuraya .sp-pkg-amount { color: #2d4a3e; }
.sp-brand-nuraya .sp-pkg-visual { background: linear-gradient(135deg, #d4c5b3, #a08060); }
.sp-brand-nuraya .sp-hotel-visual { background: linear-gradient(135deg, #e8ddd2, #c9a96e); }
.sp-brand-nuraya .sp-pkg-card, .sp-brand-nuraya .sp-dep-card, .sp-brand-nuraya .sp-hotel-card { border-radius: 12px; }
.sp-brand-nuraya .sp-pkg-name { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 1.25rem; font-weight: 500; }
/* Qibla */
.sp-brand-qibla .sp-dep-from, .sp-brand-qibla .sp-dep-to { color: #1a2744; }
.sp-brand-qibla .sp-dep-btn-primary, .sp-brand-qibla .sp-pkg-cta { background: #1a2744; }
.sp-brand-qibla .sp-dep-price-amount, .sp-brand-qibla .sp-pkg-amount { color: #1a2744; }
.sp-brand-qibla .sp-pkg-visual { background: linear-gradient(135deg, #2d6a4f, #1a2744); }
.sp-brand-qibla .sp-hotel-visual { background: linear-gradient(135deg, #2d6a4f, #1a2744); }
.sp-brand-qibla .sp-pkg-name { font-family: 'Playfair Display', Georgia, serif; font-weight: 600; }
.sp-brand-qibla .sp-pkg-cta { border-radius: 4px; }
.sp-brand-qibla .sp-dep-btn-primary { border-radius: 4px; }

/* RESPONSIVE */
@media (max-width: 768px) {
    .sp-dep-card { grid-template-columns: 1fr 1fr; gap: .75rem; padding: 1rem; }
    .sp-dep-route { grid-column: 1 / -1; display: flex; gap: .5rem; align-items: center; }
    .sp-dep-from, .sp-dep-to { display: inline; }
    .sp-dep-actions { grid-column: 1 / -1; }
    .sp-dep-btn-primary { width: 100%; display: block; text-align: center; }
    .sp-form-grid { grid-template-columns: 1fr; }
    .sp-finder-filters { flex-direction: column; }
    .sp-footer-inner { flex-direction: column; }
    .sp-cols-3 { grid-template-columns: 1fr; }
}

/* EMPTY STATE */
.sp-empty-state { text-align: center; padding: 3rem 1.5rem; background: #f9fafb; border-radius: 8px; border: 1px dashed #d1d5db; }
.sp-empty-title { font-size: 1.125rem; font-weight: 600; margin-bottom: .5rem; }
.sp-empty-desc { font-size: .9375rem; color: #666; margin-bottom: 1rem; }

/* PRICE DISCLAIMER */
.sp-price-disclaimer { font-size: .75rem; color: #888; max-width: 600px; margin: 1rem auto; text-align: center; line-height: 1.5; }

/* TRUST SECTION */
.sp-trust-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1.5rem; max-width: 900px; margin: 0 auto; }
.sp-trust-item { text-align: center; padding: 1.5rem 1rem; }
.sp-trust-icon { width: 40px; height: 40px; margin: 0 auto .75rem; opacity: .7; }
.sp-trust-title { font-size: .875rem; font-weight: 600; margin-bottom: .25rem; }
.sp-trust-desc { font-size: .8125rem; color: #666; }
