:root {
  --sps-navy: #06233f;
  --sps-aqua: #48d1cc;
  --sps-sand: #f6b94b;
}

body { background: #f7fafc; }
.home-hero { background: var(--sps-navy); height:100vh; }
.home-swiper { height: 100%; }
.home-swiper .swiper-slide { position: relative; overflow: hidden; }
.home-hero__image { width: 100%; height: 100%; object-fit: cover; object-position: center; transform: scale(1.02); }
.home-hero__overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(3, 20, 37, .82) 0%, rgba(3, 20, 37, .46) 49%, rgba(3, 20, 37, .08) 100%); }
.home-hero__content { position: absolute; z-index: 2; top: 50%; left: max(7vw, 1.5rem); transform: translateY(-50%); max-width: 650px; color: #fff; }
.home-hero__content h1 { color: #fff; text-align: left; font-size: clamp(2.5rem, 5.5vw, 5.25rem); line-height: .98; letter-spacing: -.055em; font-weight: 800; margin: 0 0 1.2rem; text-shadow: 0 3px 20px rgba(0,0,0,.18); }
.home-hero__content p { color: #f2f7fa; font-size: clamp(1rem, 1.6vw, 1.3rem); line-height: 1.6; max-width: 520px; margin-bottom: 2rem; }
.home-hero__cta { display: inline-flex; align-items: center; gap: .5rem; padding: .88rem 1.25rem; color: #06233f !important; background: var(--sps-aqua); border-radius: 999px; font-weight: 800; text-decoration: none !important; box-shadow: 0 10px 30px rgba(0,0,0,.18); transition: transform .2s ease, background .2s ease; }
.home-hero__cta:hover { transform: translateY(-2px); background: #fff; }
.home-swiper .swiper-button-next, .home-swiper .swiper-button-prev { color: #fff; width: 48px; height: 48px; border-radius: 50%; background: rgba(255,255,255,.17); backdrop-filter: blur(5px); }
.home-swiper .swiper-button-next:after, .home-swiper .swiper-button-prev:after { font-size: 18px; font-weight: 900; }
.home-swiper .swiper-pagination-bullet { width: 9px; height: 9px; background: #fff; opacity: .55; }
.home-swiper .swiper-pagination-bullet-active { width: 28px; border-radius: 6px; opacity: 1; background: var(--sps-aqua); }

/* Public-home sections: quieter backgrounds, clearer hierarchy and tactile cards. */
.bg-04, .tour-list-section { padding: clamp(3.5rem, 7vw, 6.5rem) 0; }
.bg-04 { background: linear-gradient(180deg, #f7fafc 0%, #eaf4f5 100%); }
.tour-list-section { background: #fff; }
.bg-04 .heading h2, .tour-list-section h2 { color: var(--sps-navy); font-size: clamp(2rem, 3.2vw, 3.25rem); font-weight: 800; letter-spacing: -.04em; text-transform: none; }
.bg-04 .heading p { max-width: 680px; margin: 0 auto 2.5rem; color: #536575; font-size: 1.05rem; line-height: 1.7; }
.curso article, .tour-list-section .card { height: 100%; border: 0; border-radius: 18px; overflow: hidden; background: #fff; box-shadow: 0 14px 35px rgba(6,35,63,.09); transition: transform .25s ease, box-shadow .25s ease; }
.curso article:hover, .tour-list-section .card:hover { transform: translateY(-6px); box-shadow: 0 22px 46px rgba(6,35,63,.16); }
.curso article img, .tour-list-section .card-img-top { transition: transform .45s ease; }
.curso article:hover img, .tour-list-section .card:hover .card-img-top { transform: scale(1.045); }
.curso article ol { list-style: none; padding: 0; margin: 0; }
.curso article li { text-align: left; }
.curso article h3, .tour-list-section .card-title { color: var(--sps-navy) !important; font-weight: 750; }
.curso article button, .tour-list-section button { border: 0; border-radius: 999px; padding: .7rem 1.15rem !important; background: var(--sps-navy) !important; color: #fff !important; font-weight: 700; }
.curso article button:hover, .tour-list-section button:hover { background: #0d4776 !important; }

.sps-action, .btn-book {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .7rem;
  min-height: 46px;
  padding: .72rem 1.15rem;
  border: 1px solid rgba(72,209,204,.35);
  border-radius: 999px;
  background: var(--sps-navy);
  color: #fff !important;
  font-weight: 800;
  letter-spacing: .01em;
  text-decoration: none !important;
  box-shadow: 0 8px 20px rgba(6,35,63,.18);
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.sps-action:hover, .btn-book:hover { color: var(--sps-navy) !important; background: var(--sps-aqua); box-shadow: 0 12px 26px rgba(6,35,63,.24); transform: translateY(-3px); }
.sps-action__arrow { display: inline-block; font-size: 1.25em; line-height: 1; transition: transform .2s ease; }
.sps-action:hover .sps-action__arrow { transform: translateX(4px); }
.product-card { display: flex; flex-direction: column; gap: .8rem; }
.product-card .sps-action { align-self: center; margin-top: auto; }

/* Partner carousel */
.ourPartners { padding: .5rem 0 3.5rem; }
.partners-swiper { width: 100%; overflow: hidden; padding: .6rem .35rem 3rem; }
.partners-swiper .swiper-wrapper { align-items: stretch; }
.partners-swiper .partner { height: auto; box-sizing: border-box; }
.partners-swiper .se-box { height: 100%; margin: 0; padding: 1.8rem 1.25rem; border-radius: 20px; background: #fff; box-shadow: 0 14px 32px rgba(6,35,63,.1); display: flex; flex-direction: column; align-items: center; transition: transform .25s ease, box-shadow .25s ease; }
.partners-swiper .se-box:hover { transform: translateY(-6px); box-shadow: 0 22px 42px rgba(6,35,63,.17); }
.partners-swiper .icon { width: 132px; height: 92px; display: grid; place-items: center; margin-bottom: 1rem; }
.partners-swiper .icon img { width: 100%; height: 100%; object-fit: contain; }
.partners-swiper h3 { min-height: 2.7em; margin: 0 0 .9rem; color: var(--sps-navy); font-size: 1rem; font-weight: 800; text-align: center; }
.partners-swiper .sps-action { min-height: 40px; padding: .55rem .9rem; font-size: .78rem; }
.partners-pagination { bottom: .3rem !important; }
.partners-swiper .swiper-pagination-bullet { width: 8px; height: 8px; background: var(--sps-navy); opacity: .3; }
.partners-swiper .swiper-pagination-bullet-active { width: 24px; border-radius: 8px; opacity: 1; background: var(--sps-aqua); }
@media (max-width: 767px) { .ourPartners { padding-left: .6rem; padding-right: .6rem; } .partners-swiper .se-box { min-height: 250px; padding: 1.6rem 1.1rem; } .partners-swiper .icon { width: 150px; height: 105px; } }

/* Keep product browsing concise until the detail gallery is opened. */
.product-card > p:first-of-type { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.tour-card__description { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; min-height: 4.5em; line-height: 1.5; }
.tour-card__price { margin: .8rem 0 0; color: #08768c; font-size: .95rem; font-weight: 850; }
.tour-page__title { max-width: 1180px; margin: 2.4rem auto 1rem; padding: 0 1.25rem; color: var(--sps-navy) !important; font-size: clamp(2.2rem, 5vw, 4rem); font-weight: 850; letter-spacing: -.055em; text-align: left; }
.tour-page__hero { max-width: 1180px; margin: 0 auto 3.5rem; padding: .75rem; border-radius: 26px; background: #fff; box-shadow: 0 20px 52px rgba(6,35,63,.12); }
.tour-page__details h3 { margin-top: 1.75rem; color: var(--sps-navy) !important; font-weight: 850; }
.tour-detail-tabs { display: flex; gap: .55rem; overflow-x: auto; padding: .2rem .1rem 1rem; border-bottom: 1px solid #dce7ed; }
.tour-detail-tabs button { flex: 0 0 auto; border: 0; border-radius: 999px; padding: .62rem .9rem; background: #e9f1f4; color: var(--sps-navy); font-size: .82rem; font-weight: 800; cursor: pointer; }
.tour-detail-tabs button.active { background: var(--sps-navy); color: #fff; box-shadow: 0 7px 14px rgba(6,35,63,.2); }
.tour-detail-panel { display: none; animation: tourPanelIn .2s ease; }
.tour-detail-panel.active { display: block; }
@keyframes tourPanelIn { from { opacity: .3; transform: translateY(5px); } to { opacity: 1; transform: none; } }
.tour-page__details li { margin: .55rem 0; color: #405363; }
.tour-page__media > img { width: 100%; min-height: 340px; border-radius: 18px; object-fit: cover; box-shadow: 0 12px 28px rgba(6,35,63,.16); }
.tour-price-panel { margin: 1.6rem 0; padding: 1.35rem; border-radius: 18px; background: linear-gradient(135deg, #06233f, #0a527a); color: #fff; }
.tour-price-panel h3 { margin: 0 0 1rem !important; color: #fff !important; }
.tour-price-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.tour-price-grid p { margin: 0; color: #c9e7eb; font-size: .82rem; font-weight: 700; text-transform: uppercase; }
.tour-price-grid strong { display: block; margin-top: .35rem; color: #fff; font-size: 1.12rem; }
@media (max-width: 700px) { .tour-page__details { padding: .5rem !important; } .tour-price-grid { grid-template-columns: 1fr; } .tour-page__media > img { min-height: 220px; } }
.tour-gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: .85rem; margin-top: 1.2rem; }
.tour-gallery img { width: 100%; height: 150px; border-radius: 14px; object-fit: cover; box-shadow: 0 8px 20px rgba(6,35,63,.14); }
.product-detail { max-width: 980px; margin: 2rem auto 4rem; padding: clamp(1.4rem, 4vw, 2.5rem); border-radius: 22px; background: #fff; box-shadow: 0 16px 38px rgba(6,35,63,.12); }
.product-detail h2 { color: var(--sps-navy); font-weight: 800; }
.product-detail p { white-space: pre-line; color: #405363; line-height: 1.7; }
.cart-float { position: fixed; z-index: 99; right: 1.25rem; bottom: 1.25rem; min-height: 52px; padding: .8rem 1.1rem; border: 2px solid rgba(255,255,255,.55); box-shadow: 0 16px 35px rgba(6,35,63,.35); }
.tour-add-float { position: fixed; z-index: 99; left: 1.25rem; bottom: 1.25rem; min-height: 52px; border: 2px solid rgba(255,255,255,.55); box-shadow: 0 16px 35px rgba(6,35,63,.35); }
.checkout-page { min-height: 100vh; margin: 0; padding: clamp(1.25rem, 5vw, 4.5rem) 1rem; background: radial-gradient(circle at top right, #d9f4f1 0, transparent 35%), #edf4f7; }
.course-detail-page { min-height: 100vh; padding: clamp(1.25rem, 5vw, 4.5rem); background: radial-gradient(circle at top right, #d9f4f1 0, transparent 35%), #edf4f7; }
.course-detail-card { max-width: 1050px; margin: 1.4rem auto; display: grid; grid-template-columns: minmax(300px, .9fr) 1.1fr; overflow: hidden; border-radius: 26px; background: #fff; box-shadow: 0 24px 60px rgba(6,35,63,.15); }
.course-detail-image { width: 100%; height: 100%; min-height: 360px; object-fit: cover; }
.course-detail-content { padding: clamp(1.6rem, 5vw, 3.4rem); }
.course-detail-content h1 { color: var(--sps-navy); font-size: clamp(2rem, 4vw, 3.4rem); font-weight: 850; letter-spacing: -.05em; }
.course-detail-meta { display: grid; gap: .55rem; margin: 1.3rem 0; color: #08768c; font-weight: 750; }
.course-detail-description { white-space: pre-line; color: #405363; line-height: 1.75; }
@media (max-width: 760px) { .course-detail-page { padding: 1rem; } .course-detail-card { grid-template-columns: 1fr; } .course-detail-image { min-height: 240px; } }
.checkout-card { max-width: 820px; margin: 0 auto; padding: clamp(1.5rem, 5vw, 3.5rem); border-radius: 28px; background: rgba(255,255,255,.96); box-shadow: 0 24px 60px rgba(6,35,63,.15); }
.checkout-back { color: var(--sps-navy); font-weight: 800; text-decoration: none; }
.checkout-heading { margin: 2rem 0 1.5rem; }
.checkout-eyebrow { margin: 0 0 .45rem; color: #08768c; font-size: .75rem; font-weight: 900; letter-spacing: .14em; }
.checkout-page h1 { margin: 0 0 .5rem; color: var(--sps-navy); font-size: clamp(2.2rem, 6vw, 3.7rem); font-weight: 850; letter-spacing: -.05em; }
.checkout-heading > p:last-child { color: #5e7180; }
.checkout-item { display: grid; grid-template-columns: 1fr auto auto; gap: 1rem; align-items: center; padding: 1.15rem 0; border-bottom: 1px solid #dce7ed; color: var(--sps-navy); }
.checkout-item button { border: 0; border-radius: 999px; padding: .45rem .8rem; color: #8d2530; background: #fdeced; font-weight: 700; cursor: pointer; }
.checkout-summary { margin-top: 1.5rem; padding: 1.3rem; border-radius: 18px; background: #f2f8f8; }
#checkout-total h3 { margin: 0 0 1rem; color: var(--sps-navy); font-weight: 850; }
#paypal-button-container { max-width: 420px; }
@media (max-width: 520px) { .checkout-item { grid-template-columns: 1fr auto; } .checkout-item button { grid-column: 1 / -1; justify-self: start; } .cart-float { right: .85rem; bottom: .85rem; } .tour-add-float { left: .85rem; bottom: .85rem; font-size: .72rem; } }

.course-swiper, .tour-swiper { padding: .5rem .35rem 3rem; }
.course-swiper .swiper-slide, .tour-swiper .swiper-slide { height: auto; }
.course-swiper .curso, .tour-swiper .tour { display: flex; }
.course-swiper .curso article, .tour-swiper .tour .card { width: 100%; }
.course-pagination, .tour-pagination { bottom: .25rem !important; }
.swiper-slide-filtered { display: none !important; }

@media (max-width: 768px) {
  .home-swiper { height: 540px; }
  .home-hero__overlay { background: linear-gradient(0deg, rgba(3,20,37,.85), rgba(3,20,37,.16)); }
  .home-hero__content { top: auto; bottom: 3.25rem; transform: none; left: 1.5rem; right: 1.5rem; }
  .home-hero__content h1 { font-size: clamp(2.45rem, 12vw, 4rem); }
  .home-swiper .swiper-button-next, .home-swiper .swiper-button-prev { display: none; }
}
