/* Default: Grid View */
.products {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}

.products .product {
    width: calc(31.333% - 20px);
    box-sizing: border-box;
}

/* List view modifier (only applied later via JS if user chooses list view) */
.products.list-view {
    flex-direction: column;
}

.products.list-view .product {
    width: 100%;
}

.woocommerce-LoopProduct-link.woocommerce-loop-product__link{position:relative;}
.woocommerce-LoopProduct-link.woocommerce-loop-product__link h2 {
	width: 100%;
	border-radius: 0 !important;
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: center;
}
.page-id-1722 .woocommerce ul.products li.product .price {
    font-weight: 700;
    font-size: 25px;
    text-align: center;
    color: #007ab2;
	margin-top: 5px;
}
.page-id-1722.woocommerce ul.products li.product .woocommerce-loop-product__title {
    padding: 15px 10px 0 10px!important;
    margin: 0;
    font-size: 16px;
    color: #212529;
    background: #fff0;
    font-weight: 400;
    height: calc(75px - 21px);
    display: flex;
    align-items: self-start;
    line-height: 22px;
}
ul.page-numbers li span, ul.page-numbers li a {
    display: inline-block;
    width: 40px;
    height: 40px;
    padding: 0!important;
    line-height: 72px;
    display: flex!important;
    align-items: center;
    justify-content: center;
    border-radius: 0;
	color: #333333;
}
ul.page-numbers li span:hover, ul.page-numbers li a:hover{
	background:#007db1!important;
	color:#fff!important;
}
ul.page-numbers li span.current {
    background-color: #007db1 !important;
    color: #fff!important;
    font-weight: bold!important;
}
.page-id-1722 .woocommerce ul.products li.product a img{margin:0;}
.page-id-1722 .woocommerce-page.columns-3 ul.products li.product,.page-id-1722 .woocommerce.columns-3 ul.products li.product {
    width: 31.33%;
	margin-bottom: 20px;
}
.page-id-1722 .woocommerce ul.products li.product, .woocommerce-page ul.products li.product{margin:0;padding:0 10px;}
.page-id-1722.woocommerce {
    padding-bottom: 0;
}

.shop_header_heading h1 {
    display: none;
}
.page-id-1722 .contnet-pagedefault {
    padding-top: 11px;
}

/* Sidebar container */
.filter-sidebar {
  width: 280px;
  background: #fff;
  border: 1px solid #e5e5e5;
  border-radius: 10px;
  padding: 20px;
  font-family: Arial, sans-serif;
  box-shadow: 0 2px 6px rgba(0,0,0,0.08);
}

/* Sidebar heading */
.filter-sidebar h3 {
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 15px;
}

/* Filter group */
.filter-group {
  margin-bottom: 20px;
}

.filter-group label {
  display: block;
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 8px;
  color: #222;
}

/* Date input */
.filter-group input[type="date"] {
  width: 100%;
  padding: 8px 10px;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 14px;
}

/* Range slider */
input[type="range"] {
  width: 100%;
  margin: 10px 0;
  -webkit-appearance: none;
  background: transparent;
}

input[type="range"]::-webkit-slider-runnable-track {
  height: 6px;
  background: #ccc;
  border-radius: 4px;
}

input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  height: 16px;
  width: 16px;
  border-radius: 50%;
  background: blue;
  margin-top: -5px;
  cursor: pointer;
}

.range-values {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  color: #555;
}

/* Radio buttons */
.radio-list label {
  display: block;
  margin-bottom: 8px;
  font-size: 14px;
  color: #333;
  cursor: pointer;
}

.radio-list input[type="radio"] {
  accent-color: blue; /* Modern browser support */
  margin-right: 8px;
}

/* Divider */
hr {
  border: 0;
  border-top: 1px solid #eee;
  margin: 20px 0;
}

.custom-pagination {
  text-align: center;
  margin: 30px 0;
}

.custom-pagination ul {
  display: inline-flex;
  list-style: none;
  padding: 0;
  gap: 8px;
}

.custom-pagination li a,
.custom-pagination li span {
  display: block;
  padding: 8px 14px !important;
  border-radius: 6px !important;
  text-decoration: none !important;
  color: #333;
  font-size: 14px;
}

a.prev.page-numbers, a.next.page-numbers {
    width: 100%;
}

.custom-pagination li a:hover {
  background: #f5f5f5;
}

.custom-pagination .current {
  background: #000;
  color: #fff !important;
  border-color: #000;
}


/* ====== Filter Section Container ====== */
.shop-search-filter {
  background: #fff;
  border: 1px solid #e5e5e5;
  border-radius: 12px;
  padding: 15px 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 15px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.06);
  max-width: 100%;
  margin: 20px 0px;
}
.shop-search-filter .container{ padding: 0px !important; }

/* ====== Search Box ====== */
form.woocommerce-product-search {
    display: inline-flex;
    width: 100%;
    gap: 10px;
}

.search-box {
  position: relative;
  flex: 1;
  width: 100%;
}

.search-box i {
  position: absolute;
  top: 50%;
  left: 12px;
  transform: translateY(-50%);
  color: #888;
  font-size: 14px;
}

.search-box .search-field {
  width: 100%;
  padding: 10px 14px 10px 34px; /* padding left for icon */
  border: 1px solid #ddd;
  border-radius: 8px;
  font-size: 14px;
  outline: none;
}

.search-box .search-field:focus {
  border-color: #4a90e2;
  box-shadow: 0 0 3px rgba(74,144,226,0.4);
}

/* ====== Dropdown ====== */
.custom-sort-dropdown select {
  padding: 10px 14px;
  border: 1px solid #ddd;
  border-radius: 8px;
  background: #fff;
  font-size: 14px;
  cursor: pointer;
  appearance: none;
}

.custom-sort-dropdown {
  position: relative;
}

.custom-sort-dropdown::after {
  content: "▼";
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 12px;
  color: #555;
  pointer-events: none;
}

/* ====== Filter Button ====== */
.main-filter-button {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 10px 18px;
  border: 1px solid #ddd;
  border-radius: 8px;
  background: #fff;
  font-size: 14px;
  font-weight: 500;
  color: #222;
  cursor: pointer;
  transition: all 0.2s ease;
}

.main-filter-button i {
  font-size: 14px;
  margin-right: 6px;
}

.main-filter-button:hover {
  background: #f5f5f5;
}

.shop-layout {
  display: flex;
  gap: 30px;
  padding: 20px;
  flex-wrap: wrap;
  font-family: Arial, sans-serif;
}

.filter-group {
  margin-bottom: 20px;
}

.filter-group label {
  font-weight: 600;
  display: block;
  margin-bottom: 6px;
}

.filter-group input[type="date"],
.filter-group input[type="range"] {
  width: 100%;
}

.price-values {
  display: flex;
  justify-content: space-between;
  font-size: 14px;
  margin-top: 5px;
}

.radio-group label {
  display: block;
  margin-bottom: 5px;
  font-size: 14px;
}

.shop-products {
  flex: 1 1 70%;
}

.ticket-count {
  margin-bottom: 20px;
  font-size: 18px;
}

.ticket-count span {
  color: #3b27f4;
}

.product-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 20px;
}

.product-card {
  background: #fff;
  border-radius: 12px;
  padding: 16px;
  border: 1px solid #eee;
  text-align: center;
  box-shadow: 0 2px 5px rgba(0,0,0,0.04);
}

.product-card img {
  width: 100%;
  border-radius: 8px;
  margin-bottom: 12px;
}

.product-card h3 {
  font-size: 16px;
  font-weight: bold;
  margin: 10px 0;
}

.shop-product-price {
  font-size: 18px;
  color: #2d00f7;
  font-weight: bold;
}

.btn-yellow {
  display: inline-block;
  margin-top: 10px;
  padding: 10px 20px;
  background: #ffc800;
  color: #000;
  border-radius: 8px;
  font-weight: bold;
  text-decoration: none;
}










/* new shop page css */

/* ================================================================
   TPP SHOP WIZARD — Production CSS
   All classes prefixed with tpp- to avoid Elementor conflicts
   Brand: Tahoma 14pt, #2B7DC9 / #6AB3F8 / #F5A623
   ================================================================ */
:root {
  --tpp-blue: #2B7DC9;
  --tpp-blue-dark: #1a5a9a;
  --tpp-blue-light: #6AB3F8;
  --tpp-blue-pale: #e8f2fc;
  --tpp-orange: #F5A623;
  --tpp-orange-dark: #d4900e;
  --tpp-green: #2ecc71;
  --tpp-green-dark: #27ae60;
  --tpp-green-pale: #eafaf1;
  --tpp-purple: #9b59b6;
  --tpp-red: #e74c3c;
  --tpp-red-pale: #fdf0ef;
  --tpp-white: #ffffff;
  --tpp-g50: #f8fafc;
  --tpp-g100: #f1f5f9;
  --tpp-g200: #e2e8f0;
  --tpp-g300: #cbd5e1;
  --tpp-g400: #94a3b8;
  --tpp-g500: #64748b;
  --tpp-g600: #475569;
  --tpp-g700: #334155;
  --tpp-g800: #1e293b;
  --tpp-g900: #0f172a;
  --tpp-shadow-sm: 0 1px 3px rgba(0,0,0,0.08);
  --tpp-shadow-md: 0 4px 12px rgba(0,0,0,0.1);
  --tpp-shadow-lg: 0 8px 30px rgba(0,0,0,0.12);
  --tpp-radius: 12px;
  --tpp-radius-lg: 16px;
}

/* Reset scoped to wrapper */
.tpp-shop-wizard * { margin: 0; padding: 0; box-sizing: border-box; }
.tpp-shop-wizard {
  font-family: Tahoma, 'Poppins', sans-serif;
  font-size: 14px;
  color: var(--tpp-g800);
  -webkit-font-smoothing: antialiased;
  line-height: 1.6;
}

/* ─── TRUST BAR ─── */
.tpp-trust-bar {
  background: var(--tpp-blue);
  padding: 12px 24px;
  display: flex;
  justify-content: center;
  gap: 32px;
  flex-wrap: wrap;
}
.tpp-trust-item {
  display: flex;
  align-items: center;
  gap: 7px;
  color: white;
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
}
.tpp-trust-item svg { flex-shrink: 0; }
.tpp-trust-hl { color: var(--tpp-orange); }

/* ─── HERO ─── */
.tpp-hero {
  background: linear-gradient(165deg, var(--tpp-blue-pale) 0%, var(--tpp-white) 50%, #fff8ee 100%);
  padding: 48px 24px 40px;
  text-align: center;
}
.tpp-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--tpp-orange);
  color: white;
  font-size: 14px;
  font-weight: 700;
  padding: 6px 14px;
  border-radius: 20px;
  margin-bottom: 16px;
  text-transform: uppercase;
  letter-spacing: 0.8px;
}
.tpp-hero h1 {
  font-family: 'Poppins', Tahoma, sans-serif;
  font-size: 36px;
  font-weight: 800;
  color: var(--tpp-g900);
  margin-bottom: 12px;
  line-height: 1.15;
}
.tpp-hero h1 span { color: var(--tpp-blue); }
.tpp-hero p { font-size: 16px; color: var(--tpp-g500); max-width: 620px; margin: 0 auto; line-height: 1.6; }

.tpp-container { max-width: 1060px; margin: 0 auto; padding: 0 24px; }

/* ─── PROGRESS BAR ─── */
.tpp-progress { padding: 36px 24px 0; display: none; }
.tpp-progress.tpp-vis { display: block; }
.tpp-progress-inner { max-width: 750px; margin: 0 auto; display: flex; align-items: center; }
.tpp-pnode { display: flex; flex-direction: column; align-items: center; gap: 6px; z-index: 1; min-width: 60px; position: relative; }
.tpp-pdot {
  width: 38px; height: 38px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 17px; font-weight: 700; transition: all 0.3s;
  font-family: 'Poppins', sans-serif; cursor: default;
}
.tpp-pdot.tpp-active { background: var(--tpp-blue); color: white; box-shadow: 0 0 0 4px rgba(43,125,201,0.2); }
.tpp-pdot.tpp-done { background: var(--tpp-green); color: white; }
.tpp-pdot.tpp-upcoming { background: var(--tpp-g200); color: var(--tpp-g400); }
.tpp-pdot.tpp-skipped { background: var(--tpp-g200); color: var(--tpp-g400); opacity: 0.45; }
.tpp-plbl { font-size: 10px; font-weight: 600; text-align: center; color: var(--tpp-g400); max-width: 75px; line-height: 1.3; }
.tpp-plbl.tpp-active { color: var(--tpp-blue); font-weight: 700; }
.tpp-plbl.tpp-done { color: var(--tpp-green-dark); }
.tpp-plbl.tpp-skipped { color: var(--tpp-g400); opacity: 0.45; text-decoration: line-through; }
.tpp-pconn { flex: 1; height: 3px; background: var(--tpp-g200); margin-bottom: 22px; min-width: 16px; transition: background 0.3s; }
.tpp-pconn.tpp-done { background: var(--tpp-green); }

/* ─── STEP 1: DESTINATION MULTI-SELECT ─── */
.tpp-step1 { padding-top: 40px; }
.tpp-sec-title {
  font-family: 'Poppins', Tahoma, sans-serif;
  font-size: 22px; font-weight: 700; text-align: center;
  color: var(--tpp-g900); margin-bottom: 8px;
}
.tpp-sec-sub { text-align: center; color: var(--tpp-g500); font-size: 14px; margin-bottom: 28px; }

.tpp-dest-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 16px;
  margin-bottom: 16px;
}
.tpp-dest-card {
  border-radius: var(--tpp-radius-lg);
  overflow: hidden;
  cursor: pointer;
  transition: all 0.25s cubic-bezier(0.4,0,0.2,1);
  position: relative;
  border: 3px solid transparent;
  background: white;
  box-shadow: var(--tpp-shadow-sm);
  user-select: none;
}
.tpp-dest-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--tpp-shadow-lg);
  border-color: var(--tpp-blue-light);
}
.tpp-dest-card.tpp-checked {
  border-color: var(--tpp-blue);
  box-shadow: 0 0 0 2px var(--tpp-blue), var(--tpp-shadow-lg);
  transform: translateY(-4px);
}
.tpp-dest-check {
  position: absolute; top: 10px; right: 10px;
  width: 26px; height: 26px; border-radius: 7px;
  border: 2px solid rgba(255,255,255,0.5);
  background: rgba(255,255,255,0.25);
  display: flex; align-items: center; justify-content: center;
  font-size: 14px; font-weight: 700; color: transparent;
  z-index: 2; transition: all 0.2s;
  backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
}
.tpp-dest-card.tpp-checked .tpp-dest-check {
  background: var(--tpp-blue); border-color: var(--tpp-blue); color: white;
}
.tpp-dest-img {
  width: 100%; height: 120px;
  display: flex; align-items: center; justify-content: center;
  font-size: 38px; color: white;
  background-size: cover; background-position: center;
}
/* Park gradient backgrounds — replace with real images in production */
.tpp-dest-card[data-dest="disney"] .tpp-dest-img { background: linear-gradient(135deg, #1a3a6b, #2B7DC9); }
.tpp-dest-card[data-dest="universal"] .tpp-dest-img { background: linear-gradient(135deg, #5b2d8e, #9b59b6); }
.tpp-dest-card[data-dest="seaworld"] .tpp-dest-img { background: linear-gradient(135deg, #0d6e8a, #1abc9c); }
.tpp-dest-card[data-dest="legoland"] .tpp-dest-img { background: linear-gradient(135deg, #c0392b, #e74c3c); }
.tpp-dest-card[data-dest="kennedy"] .tpp-dest-img { background: linear-gradient(135deg, #2c3e50, #34495e); }

.tpp-dest-info { padding: 14px 12px; text-align: center; }
.tpp-dest-name { font-family: 'Poppins', Tahoma, sans-serif; font-weight: 700; font-size: 13px; color: var(--tpp-g800); margin-bottom: 3px; line-height: 1.3; }
.tpp-dest-savings { font-size: 11px; font-weight: 600; color: var(--tpp-green-dark); }

.tpp-sel-count { text-align: center; margin: 14px 0 6px; font-size: 14px; color: var(--tpp-g500); min-height: 22px; }
.tpp-sel-count strong { color: var(--tpp-blue); }

.tpp-start-wrap { text-align: center; margin: 8px 0 48px; }
.tpp-btn-start {
  background: linear-gradient(135deg, var(--tpp-orange), var(--tpp-orange-dark));
  color: white; border: none;
  padding: 16px 48px; font-size: 16px; font-weight: 700;
  border-radius: 12px; cursor: pointer;
  font-family: 'Poppins', Tahoma, sans-serif;
  transition: all 0.3s;
  box-shadow: 0 4px 15px rgba(245,166,35,0.35);
  opacity: 0.4; pointer-events: none;
}
.tpp-btn-start.tpp-enabled { opacity: 1; pointer-events: auto; }
.tpp-btn-start.tpp-enabled:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(245,166,35,0.45); }

/* ─── STEP 2: CONFIGURATION SCREEN ─── */
.tpp-config { display: none; max-width: 1060px; margin: 0 auto 40px; }
.tpp-config.tpp-vis { display: block; }

.tpp-config-card {
  background: white;
  border: 2px solid var(--tpp-g200);
  border-radius: var(--tpp-radius-lg);
  overflow: hidden;
  box-shadow: var(--tpp-shadow-md);
  animation: tppFadeUp 0.35s ease forwards;
}
@keyframes tppFadeUp { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:translateY(0); } }

/* Config header per park */
.tpp-cfg-header {
  padding: 16px 28px;
  display: flex; align-items: center; gap: 14px;
  border-bottom: 2px solid var(--tpp-g100);
}
.tpp-cfg-header.tpp-bg-disney { background: linear-gradient(135deg, rgba(26,58,107,0.06), rgba(43,125,201,0.06)); }
.tpp-cfg-header.tpp-bg-universal { background: linear-gradient(135deg, rgba(91,45,142,0.06), rgba(155,89,182,0.06)); }
.tpp-cfg-header.tpp-bg-seaworld { background: linear-gradient(135deg, rgba(13,110,138,0.06), rgba(26,188,156,0.06)); }
.tpp-cfg-header.tpp-bg-legoland { background: linear-gradient(135deg, rgba(192,57,43,0.06), rgba(231,76,60,0.06)); }
.tpp-cfg-header.tpp-bg-kennedy { background: linear-gradient(135deg, rgba(44,62,80,0.06), rgba(52,73,94,0.06)); }

.tpp-cfg-icon {
  width: 44px; height: 44px; border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  font-size: 22px; color: white; flex-shrink: 0;
}
.tpp-cfg-icon.tpp-disney { background: linear-gradient(135deg, #1a3a6b, #2B7DC9); }
.tpp-cfg-icon.tpp-universal { background: linear-gradient(135deg, #5b2d8e, #9b59b6); }
.tpp-cfg-icon.tpp-seaworld { background: linear-gradient(135deg, #0d6e8a, #1abc9c); }
.tpp-cfg-icon.tpp-legoland { background: linear-gradient(135deg, #c0392b, #e74c3c); }
.tpp-cfg-icon.tpp-kennedy { background: linear-gradient(135deg, #2c3e50, #34495e); }

.tpp-cfg-title-area { flex: 1; }
.tpp-cfg-park {
  font-family: 'Poppins', Tahoma, sans-serif;
  font-weight: 700; font-size: 20px; color: var(--tpp-g900);
}
.tpp-cfg-step { font-size: 12px; color: var(--tpp-g500); font-weight: 600; }

/* Skip button in header */
.tpp-btn-skip {
  background: none; border: 2px solid var(--tpp-g300);
  padding: 8px 18px; font-size: 13px; font-weight: 600;
  border-radius: 8px; cursor: pointer; color: var(--tpp-g500);
  font-family: Tahoma, sans-serif; transition: all 0.2s;
  white-space: nowrap;
}
.tpp-btn-skip:hover { border-color: var(--tpp-red); color: var(--tpp-red); }

/* ─── FORM ROW ─── */
.tpp-form-row {
  padding: 24px 28px;
  display: grid;
  grid-template-columns: 1.2fr 1fr 0.7fr 0.7fr;
  gap: 18px; align-items: end;
  border-bottom: 2px solid var(--tpp-g100);
}
.tpp-ff label {
  display: block; font-size: 11px; font-weight: 700;
  color: var(--tpp-g500); margin-bottom: 7px;
  text-transform: uppercase; letter-spacing: 0.5px;
}
.tpp-ff label .tpp-req { color: var(--tpp-red); }
.tpp-ff input[type="date"],
.tpp-ff select {
  width: 100%; padding: 11px 14px;
  border: 2px solid var(--tpp-g200); border-radius: 10px;
  font-size: 14px; font-family: Tahoma, sans-serif;
  color: var(--tpp-g800); background: white;
  transition: border-color 0.2s;
  -webkit-appearance: none; appearance: none;
}
.tpp-ff input:focus, .tpp-ff select:focus {
  outline: none; border-color: var(--tpp-blue);
  box-shadow: 0 0 0 3px rgba(43,125,201,0.1);
}
.tpp-qty {
  display: flex; align-items: center;
  border: 2px solid var(--tpp-g200); border-radius: 10px;
  overflow: hidden; background: white;
}
.tpp-qty-btn {
  width: 42px; height: 44px; border: none;
  background: var(--tpp-g50); color: var(--tpp-g600);
  font-size: 18px; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  font-weight: 600; transition: background 0.15s;
}
.tpp-qty-btn:hover { background: var(--tpp-g200); }
.tpp-qty-val { flex: 1; text-align: center; font-size: 16px; font-weight: 700; color: var(--tpp-g800); }

/* ─── EPIC UNIVERSE TOGGLE (Universal only) ─── */
.tpp-epic-row {
  padding: 16px 28px;
  border-bottom: 2px solid var(--tpp-g100);
  display: none;
}
.tpp-epic-row.tpp-vis { display: block; }
.tpp-epic-label {
  font-size: 11px; font-weight: 700; color: var(--tpp-g500);
  text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 10px;
}
.tpp-epic-opts { display: flex; gap: 12px; }
.tpp-epic-opt {
  flex: 1; padding: 14px 18px;
  border-radius: 10px; border: 2px solid var(--tpp-g200);
  cursor: pointer; transition: all 0.2s; text-align: center;
}
.tpp-epic-opt:hover { border-color: var(--tpp-blue-light); }
.tpp-epic-opt.tpp-on { border-color: var(--tpp-blue); background: var(--tpp-blue-pale); }
.tpp-epic-title { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; color: var(--tpp-g800); margin-bottom: 2px; }
.tpp-epic-opt.tpp-on .tpp-epic-title { color: var(--tpp-blue-dark); }
.tpp-epic-desc { font-size: 12px; color: var(--tpp-g400); }
.tpp-epic-tag {
  display: inline-block; font-size: 10px; font-weight: 700;
  padding: 2px 8px; border-radius: 4px; margin-bottom: 6px;
  text-transform: uppercase; letter-spacing: 0.5px;
}
.tpp-epic-tag.tpp-new { background: var(--tpp-purple); color: white; }
.tpp-epic-tag.tpp-std { background: var(--tpp-g200); color: var(--tpp-g500); }

/* ─── EXPRESS PASS TOGGLE (Universal only) ─── */
.tpp-express-row {
  padding: 16px 28px;
  border-bottom: 2px solid var(--tpp-g100);
  display: none;
}
.tpp-express-row.tpp-vis { display: block; }
.tpp-express-inner {
  display: flex; gap: 12px;
}
.tpp-express-opt {
  flex: 1; padding: 14px 18px;
  border-radius: 10px; border: 2px solid var(--tpp-g200);
  cursor: pointer; transition: all 0.2s; text-align: center;
}
.tpp-express-opt:hover { border-color: var(--tpp-orange); }
.tpp-express-opt.tpp-on { border-color: var(--tpp-orange); background: #fff8ee; }
.tpp-express-title { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; color: var(--tpp-g800); margin-bottom: 2px; }
.tpp-express-opt.tpp-on .tpp-express-title { color: var(--tpp-orange-dark); }
.tpp-express-desc { font-size: 12px; color: var(--tpp-g400); line-height: 1.5; }
.tpp-express-tag {
  display: inline-block; font-size: 10px; font-weight: 700;
  padding: 2px 8px; border-radius: 4px; margin-bottom: 6px;
  text-transform: uppercase; letter-spacing: 0.5px;
  background: var(--tpp-orange); color: white;
}
.tpp-express-note {
  margin-top: 10px;
  padding: 10px 14px;
  background: var(--tpp-g50);
  border-radius: 8px;
  font-size: 12px;
  color: var(--tpp-g500);
  line-height: 1.6;
  display: none;
}
.tpp-express-note.tpp-vis { display: block; }

/* ─── TICKET TYPE CARDS ─── */
.tpp-tt-area { padding: 24px 28px 28px; }
.tpp-tt-title { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 16px; color: var(--tpp-g800); margin-bottom: 4px; }
.tpp-tt-sub { font-size: 13px; color: var(--tpp-g400); margin-bottom: 18px; }

.tpp-tt-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.tpp-tt-grid.tpp-cols-2 { grid-template-columns: repeat(2, 1fr); }
.tpp-tt-grid.tpp-cols-4 { grid-template-columns: repeat(2, 1fr); }

.tpp-tt-card {
  border: 2px solid var(--tpp-g200); border-radius: var(--tpp-radius);
  padding: 20px; cursor: pointer; transition: all 0.2s;
  position: relative; background: white;
}
.tpp-tt-card:hover { border-color: var(--tpp-blue-light); box-shadow: var(--tpp-shadow-md); transform: translateY(-2px); }
.tpp-tt-card.tpp-sel { border-color: var(--tpp-blue); background: var(--tpp-blue-pale); box-shadow: 0 0 0 2px var(--tpp-blue); }
.tpp-tt-card.tpp-sel .tpp-tt-radio { background: var(--tpp-blue); border-color: var(--tpp-blue); }
.tpp-tt-card.tpp-sel .tpp-tt-radio::after { content: ''; width: 8px; height: 8px; background: white; border-radius: 50%; }

.tpp-tt-badge {
  position: absolute; top: -1px; right: 14px;
  font-size: 10px; font-weight: 700; padding: 3px 10px;
  border-radius: 0 0 8px 8px; letter-spacing: 0.4px; text-transform: uppercase;
}
.tpp-tt-badge.tpp-pop { background: var(--tpp-blue); color: white; }
.tpp-tt-badge.tpp-val { background: var(--tpp-green); color: white; }
.tpp-tt-badge.tpp-exp { background: var(--tpp-orange); color: white; }

.tpp-tt-top { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.tpp-tt-radio {
  width: 22px; height: 22px; border-radius: 50%;
  border: 2px solid var(--tpp-g300);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0; transition: all 0.2s;
}
.tpp-tt-name { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; color: var(--tpp-g900); }
.tpp-tt-desc { font-size: 12px; color: var(--tpp-g500); line-height: 1.5; margin-bottom: 10px; padding-left: 32px; }
.tpp-tt-feats { display: flex; gap: 5px; flex-wrap: wrap; padding-left: 32px; margin-bottom: 12px; }
.tpp-tt-feat { font-size: 10px; font-weight: 600; color: var(--tpp-blue); background: rgba(43,125,201,0.08); padding: 3px 8px; border-radius: 5px; }
.tpp-tt-feat.tpp-express-feat { color: var(--tpp-orange-dark); background: rgba(245,166,35,0.1); }

.tpp-tt-pricing { display: flex; align-items: baseline; gap: 8px; padding-left: 32px; padding-top: 10px; border-top: 1px solid var(--tpp-g100); flex-wrap: wrap; }
.tpp-tt-orig { font-size: 14px; color: var(--tpp-g400); text-decoration: line-through; }
.tpp-tt-price { font-family: 'Poppins', sans-serif; font-size: 22px; font-weight: 800; color: var(--tpp-g900); }
.tpp-tt-per { font-size: 12px; color: var(--tpp-g500); }
.tpp-tt-save { display: inline-block; background: var(--tpp-green-pale); color: var(--tpp-green-dark); font-size: 11px; font-weight: 700; padding: 3px 8px; border-radius: 5px; margin-left: auto; }

/* ─── ACTION BAR (bottom of config card) ─── */
.tpp-action-bar {
  padding: 20px 28px;
  background: var(--tpp-g50);
  border-top: 2px solid var(--tpp-g100);
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; flex-wrap: wrap;
}
.tpp-ab-summary { font-size: 14px; color: var(--tpp-g600); }
.tpp-ab-summary strong { font-family: 'Poppins', sans-serif; font-size: 20px; color: var(--tpp-g900); }
.tpp-ab-total { font-size: 13px; color: var(--tpp-g500); margin-top: 2px; }
.tpp-ab-btns { display: flex; gap: 12px; align-items: center; }

.tpp-btn-next {
  background: linear-gradient(135deg, var(--tpp-orange), var(--tpp-orange-dark));
  color: white; border: none;
  padding: 14px 32px; font-size: 15px; font-weight: 700;
  border-radius: 10px; cursor: pointer;
  font-family: 'Poppins', Tahoma, sans-serif;
  transition: all 0.3s;
  box-shadow: 0 4px 15px rgba(245,166,35,0.35);
  display: flex; align-items: center; gap: 8px;
}
.tpp-btn-next:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(245,166,35,0.45); }
.tpp-btn-detail {
  background: none; border: 2px solid var(--tpp-g300);
  padding: 12px 18px; font-size: 13px; font-weight: 600;
  border-radius: 10px; cursor: pointer; color: var(--tpp-g600);
  font-family: Tahoma, sans-serif; transition: all 0.2s;
}
.tpp-btn-detail:hover { border-color: var(--tpp-blue); color: var(--tpp-blue); }

/* ─── ORDER REVIEW SCREEN ─── */
.tpp-review { display: none; max-width: 1060px; margin: 0 auto 40px; }
.tpp-review.tpp-vis { display: block; }

.tpp-review-card {
  background: white; border: 2px solid var(--tpp-g200);
  border-radius: var(--tpp-radius-lg); overflow: hidden;
  box-shadow: var(--tpp-shadow-sm);
  margin-bottom: 14px;
  animation: tppFadeUp 0.3s ease forwards;
}
.tpp-rv-header {
  padding: 16px 24px; background: var(--tpp-g50);
  border-bottom: 2px solid var(--tpp-g100);
  display: flex; align-items: center; gap: 12px;
}
.tpp-rv-icon {
  width: 34px; height: 34px; border-radius: 9px;
  display: flex; align-items: center; justify-content: center;
  font-size: 17px; color: white;
}
.tpp-rv-park { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 16px; color: var(--tpp-g900); }
.tpp-rv-actions { margin-left: auto; display: flex; gap: 10px; }
.tpp-rv-btn {
  font-size: 13px; font-weight: 600; cursor: pointer;
  border: none; background: none; padding: 0;
  text-decoration: underline;
}
.tpp-rv-edit { color: var(--tpp-blue); }
.tpp-rv-remove { color: var(--tpp-red); }

.tpp-rv-body {
  padding: 20px 24px;
  display: flex; justify-content: space-between; align-items: center;
  gap: 16px; flex-wrap: wrap;
}
.tpp-rv-details { font-size: 14px; color: var(--tpp-g600); line-height: 1.8; }
.tpp-rv-details strong { color: var(--tpp-g900); }
.tpp-rv-price-area { text-align: right; }
.tpp-rv-price { font-family: 'Poppins', sans-serif; font-size: 24px; font-weight: 800; color: var(--tpp-g900); }
.tpp-rv-price-sub { font-size: 12px; color: var(--tpp-g400); }
.tpp-rv-save { display: inline-block; background: var(--tpp-green-pale); color: var(--tpp-green-dark); font-size: 12px; font-weight: 700; padding: 4px 10px; border-radius: 6px; margin-top: 4px; }

/* Grand total bar */
.tpp-grand {
  background: var(--tpp-g900);
  border-radius: var(--tpp-radius-lg);
  padding: 28px 32px;
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 16px; margin-top: 8px;
}
.tpp-gt-label { font-family: 'Poppins', sans-serif; font-size: 14px; color: rgba(255,255,255,0.6); font-weight: 600; margin-bottom: 4px; }
.tpp-gt-amount { font-family: 'Poppins', sans-serif; font-size: 32px; font-weight: 800; color: white; }
.tpp-gt-amount span { color: var(--tpp-orange); }
.tpp-gt-saved { font-size: 14px; color: var(--tpp-green); font-weight: 700; margin-top: 2px; }
.tpp-gt-btns { display: flex; gap: 12px; }
.tpp-btn-checkout {
  background: var(--tpp-orange); color: white; border: none;
  padding: 16px 40px; font-size: 16px; font-weight: 700;
  border-radius: 12px; cursor: pointer;
  font-family: 'Poppins', Tahoma, sans-serif;
  transition: all 0.2s;
  box-shadow: 0 4px 15px rgba(245,166,35,0.35);
}
.tpp-btn-checkout:hover { transform: translateY(-2px); }
.tpp-btn-addmore {
  background: transparent; color: white;
  border: 2px solid rgba(255,255,255,0.3);
  padding: 14px 24px; font-size: 14px; font-weight: 600;
  border-radius: 12px; cursor: pointer;
  font-family: Tahoma, sans-serif; transition: all 0.2s;
}
.tpp-btn-addmore:hover { border-color: white; }

/* ─── HELP CTA ─── */
.tpp-help {
  max-width: 1060px; margin: 28px auto 60px;
  background: linear-gradient(135deg, var(--tpp-blue) 0%, var(--tpp-blue-dark) 100%);
  border-radius: var(--tpp-radius-lg);
  padding: 28px 36px;
  display: flex; align-items: center; justify-content: space-between;
  gap: 20px; flex-wrap: wrap;
}
.tpp-help h3 { font-family: 'Poppins', sans-serif; font-size: 18px; font-weight: 700; color: white; margin-bottom: 4px; }
.tpp-help p { font-size: 14px; color: rgba(255,255,255,0.8); }
.tpp-help-btns { display: flex; gap: 12px; flex-wrap: wrap; }
.tpp-btn-white { background: white; color: var(--tpp-blue); border: none; padding: 12px 24px; font-size: 14px; font-weight: 700; border-radius: 10px; cursor: pointer; font-family: Tahoma, sans-serif; }
.tpp-btn-outline { background: transparent; color: white; border: 2px solid rgba(255,255,255,0.4); padding: 10px 24px; font-size: 14px; font-weight: 700; border-radius: 10px; cursor: pointer; font-family: Tahoma, sans-serif; }

/* ─── RESPONSIVE ─── */
@media (max-width: 960px) {
  .tpp-dest-grid { grid-template-columns: repeat(3, 1fr); }
  .tpp-form-row { grid-template-columns: 1fr 1fr; }
  .tpp-tt-grid, .tpp-tt-grid.tpp-cols-2, .tpp-tt-grid.tpp-cols-4 { grid-template-columns: 1fr; }
  .tpp-action-bar { flex-direction: column; text-align: center; }
  .tpp-ab-btns { justify-content: center; width: 100%; }
  .tpp-rv-body { flex-direction: column; text-align: center; }
  .tpp-rv-price-area { text-align: center; }
  .tpp-grand { flex-direction: column; text-align: center; }
  .tpp-gt-btns { flex-direction: column; width: 100%; }
  .tpp-btn-checkout, .tpp-btn-addmore { width: 100%; }
  .tpp-help { flex-direction: column; text-align: center; }
  .tpp-epic-opts { flex-direction: column; }
  .tpp-express-inner { flex-direction: column; }
}
@media (max-width: 640px) {
  .tpp-dest-grid { grid-template-columns: repeat(2, 1fr); }
  .tpp-form-row { grid-template-columns: 1fr; }
  .tpp-hero h1 { font-size: 26px; }
  .tpp-trust-bar { gap: 14px; }
  .tpp-trust-item { font-size: 11px; }
  .tpp-cfg-header { flex-wrap: wrap; }
}

.tpp-hidden { display: none !important; }

/* new shop page css end */









@media screen and (max-width:960px){
	.page-id-1722.woocommerce ul.products li.product .woocommerce-loop-product__title {
    height: auto;
}
}

/* ====== Responsive ====== */
@media screen and (max-width:768px){
	.woocommerce .products ul, .woocommerce ul.products{display:flex;flex-wrap:wrap;}
	.page-id-1722 .contnet-pagedefault .container {
    padding: 0 5px;
}

.shop-search-filter {
    flex-wrap: wrap;
  }
  .custom-sort-dropdown,
  .main-filter-button {
    flex: none;
    width: 100%;
  }
  
}
@media only screen and (max-width:767px){
	
	.woocommerce .products ul::after, .woocommerce .products ul::before, .woocommerce ul.products::after, .woocommerce ul.products::before {
    content: " ";
    display: none;
}
	
}
@media screen and (max-width:580px){
	.page-id-1722.woocommerce{padding-bottom:0;}
	.page-id-1722.woocommerce ul.products li.product .woocommerce-loop-product__title{font-size:14px;line-height: 19px;}
	.page-id-1722 .woocommerce ul.products li.product .price{font-size:17px;}
	.page-id-1722 .woocommerce-page.columns-3 ul.products li.product, .page-id-1722 .woocommerce.columns-3 ul.products li.product{width:47%;padding: 0 5px;}
}

.tpp-grand-bottom {
    background: #0f1923;
    border-radius: 12px;
    padding: 0px 30px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 24px;
    flex-wrap: wrap;
    gap: 16px;
    width: 100%;
  }

  .tpp-grand-label {
    color: #fff;
    font-size: 13px;
    margin-bottom: 4px;
  }

  .tpp-grand-price {
    color: #f5a623;
    font-size: 36px;
    font-weight: 800;
  }

  .tpp-grand-btns {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
  }

  .tpp-btn-add-more {
    background: transparent;
    color: #fff;
    border: 2px solid #fff;
    border-radius: 8px;
    padding: 12px 22px;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
  }

  .tpp-btn-add-more:hover {
    background: rgba(255,255,255,0.1);
  }

  .tpp-btn-checkout {
    background: #f5a623;
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: 12px 28px;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s;
  }

  .tpp-btn-checkout:hover {
    background: #e09510;
  }

  .tpp-btn-checkout:disabled {
    opacity: 0.6;
    cursor: not-allowed;
  }
  .tpp-select-wrap {
    position: relative;
    width: 100%;
    max-width: 300px;
  }

  .tpp-select-trigger {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 12px;
    border: 1px solid #ccc;
    border-radius: 6px;
    background: #fff;
    cursor: pointer;
    font-size: 14px;
    color: #333;
    user-select: none;
  }

  .tpp-select-trigger:hover { border-color: #999; }

  .tpp-select-trigger.open {
    border-color: #4a90e2;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
  }

  .tpp-select-dropdown {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    border: 1px solid #4a90e2;
    border-top: none;
    border-bottom-left-radius: 6px;
    border-bottom-right-radius: 6px;
    background: #fff;
    z-index: 100;
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
  }

  .tpp-select-dropdown.open { display: block; }

  /* Each row */
  .tpp-option {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    font-size: 14px;
    color: #333;
    cursor: pointer;
    transition: background 0.1s;
    border-bottom: 1px solid #f0f0f0;
  }

  .tpp-option:last-child { border-bottom: none; }
  .tpp-option:hover { background: #f5f9ff; }

  /* Hide native checkbox */
  .tpp-option input[type="checkbox"] {
    display: none;
  }

  /* Custom checkbox box */
  .tpp-checkbox-box {
    width: 16px;
    height: 16px;
    border: 2px solid #ccc;
    border-radius: 4px;
    background: #fff;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.15s;
  }

  /* Checked state - blue box with checkmark */
  .tpp-option input[type="checkbox"]:checked ~ .tpp-checkbox-box {
    background: #4a90e2;
    border-color: #4a90e2;
  }

  .tpp-option input[type="checkbox"]:checked ~ .tpp-checkbox-box::after {
    content: '';
    width: 5px;
    height: 9px;
    border: 2px solid #fff;
    border-top: none;
    border-left: none;
    transform: rotate(45deg) translateY(-1px);
    display: block;
  }

  /* Selected row highlight */
  .tpp-option:has(input:checked) {
    background: #eef4fd;
  }

  .tpp-option:has(input:checked) .tpp-option-label {
    color: #1a73e8;
    font-weight: 600;
  }

  /* Selected ticket card state */
.tpp-tt-card {
  border: 2px solid #e0e0e0;
  border-radius: 10px;
  padding: 16px;
  cursor: pointer;
  transition: all 0.2s ease;
  position: relative;
  background: #fff;
}

.tpp-tt-card:hover {
  border-color: #4a90e2;
  background: #f5f9ff;
}

.tpp-tt-card.tpp-selected {
  border: 2px solid #4a90e2;
  background: #eef4fd;
  box-shadow: 0 0 0 3px rgba(74, 144, 226, 0.15);
}

/* Radio dot indicator */
.tpp-tt-card::before {
  content: '';
  width: 18px;
  height: 18px;
  border: 2px solid #ccc;
  border-radius: 50%;
  display: inline-block;
  position: absolute;
  top: 16px;
  left: 16px;
  background: #fff;
  transition: all 0.15s;
}

.tpp-tt-card.tpp-selected::before {
  border-color: #4a90e2;
  background: #4a90e2;
  box-shadow: inset 0 0 0 3px #fff;
}

.tpp-tt-name {
  padding-left: 30px; /* make room for the radio dot */
  font-weight: 600;
  font-size: 15px;
  color: #222;
}

.tpp-tt-card.tpp-selected .tpp-tt-name {
  color: #1a73e8;
}

.tpp-tt-price {
  font-size: 20px;
  font-weight: 700;
  color: #222;
  margin-top: 8px;
  text-align: center;
}

.tpp-tt-card.tpp-selected .tpp-tt-price {
  color: #1a73e8;
}

.tpp-rv-actions {
  display: flex;
  gap: 10px;
  margin-top: 10px;
}

.tpp-rv-edit {
  background: #f0f7ff;
  color: #1a73e8;
  border: 1px solid #4a90e2;
  border-radius: 6px;
  padding: 6px 14px;
  cursor: pointer;
  font-size: 13px;
  font-weight: 600;
}

.tpp-rv-edit:hover {
  background: #ddeeff;
}

.tpp-btn-back {
  background: transparent;
  color: #555;
  border: 2px solid #ccc;
  border-radius: 8px;
  padding: 10px 18px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
}

.tpp-btn-back:hover {
  background: #f5f5f5;
  border-color: #999;
  color: #333;
}

.tpp-clickable {
  cursor: pointer;
  transition: opacity 0.2s, transform 0.15s;
}

.tpp-clickable:hover {
  opacity: 0.75;
  transform: scale(1.1);
}

.tpp-rv-body{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
}

.tpp-rv-actions{
  margin-top:10px;
}

.tpp-rv-actions button{
  margin-right:8px;
}