.tpt-section-title {
font-family: "Open Sans", sans-serif !important;
font-size: 28px !important;
font-weight: 800 !important;
text-transform: uppercase !important;
color: #1a1a1a !important;
margin: 0 0 36px !important;
text-align: center !important;
letter-spacing: 0.5px !important;
position: relative !important;
padding-bottom: 16px !important;
}
.tpt-section-title::after {
content: '' !important;
position: absolute !important;
bottom: 0 !important;
left: 50% !important;
transform: translateX(-50%) !important;
width: 56px !important;
height: 3px !important;
background: #E31E24 !important;
border-radius: 2px !important;
} .tpt-grid {
display: grid !important;
grid-template-columns: repeat(3, 1fr) !important;
gap: 28px !important;
max-width: 1200px !important;
margin: 0 auto !important;
padding: 0 20px !important;
box-sizing: border-box !important;
align-items: stretch !important;
}
@media (max-width: 1024px) { .tpt-grid { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 640px)  { .tpt-grid { grid-template-columns: 1fr !important; padding: 0 12px !important; } } .tpt-card {
background: #fff !important;
border-radius: 16px !important;
box-shadow: 0 4px 16px rgba(0,0,0,0.07), 0 1px 4px rgba(0,0,0,0.04) !important;
overflow: hidden !important;
display: flex !important;
flex-direction: column !important;
position: relative !important;
height: 100% !important;
align-self: stretch !important;
transition: transform 0.35s cubic-bezier(0.22,0.61,0.36,1),
box-shadow 0.35s cubic-bezier(0.22,0.61,0.36,1) !important; opacity: 0;
transform: translateY(32px);
}
.tpt-card.tpt-visible {
opacity: 1 !important;
transform: translateY(0) !important;
}
.tpt-card:hover {
transform: translateY(-6px) scale(1.015) !important;
box-shadow: 0 20px 48px rgba(0,0,0,0.13), 0 4px 12px rgba(0,0,0,0.07) !important;
} .tpt-card::before {
content: '' !important;
position: absolute !important;
inset: 0 !important;
background: linear-gradient(120deg,
transparent 30%,
rgba(255,255,255,0.18) 50%,
transparent 70%) !important;
background-size: 200% 100% !important;
background-position: -100% 0 !important;
border-radius: 16px !important;
pointer-events: none !important;
z-index: 3 !important;
transition: background-position 0.5s ease !important;
}
.tpt-card:hover::before {
background-position: 200% 0 !important;
} .tpt-card__image-wrap {
display: block !important;
height: 220px !important;
overflow: hidden !important;
background: #eee !important;
flex-shrink: 0 !important;
position: relative !important;
padding: 0 !important;
margin: 0 !important;
border: none !important;
}
.tpt-card__image-wrap img {
width: 100% !important;
height: 100% !important;
object-fit: cover !important;
display: block !important;
padding: 0 !important;
margin: 0 !important;
border: none !important;
border-radius: 0 !important;
transition: transform 0.55s cubic-bezier(0.22,0.61,0.36,1) !important;
}
.tpt-card:hover .tpt-card__image-wrap img {
transform: scale(1.07) !important;
} .tpt-card__image-wrap::after {
content: '' !important;
position: absolute !important;
bottom: 0 !important; left: 0 !important; right: 0 !important;
height: 60px !important;
background: linear-gradient(transparent, rgba(0,0,0,0.28)) !important;
pointer-events: none !important;
}
.tpt-card__no-image {
width: 100% !important; height: 100% !important;
background: linear-gradient(135deg, #ddd 0%, #f5f5f5 100%) !important;
} .tpt-card__body {
padding: 18px 20px 12px !important;
flex: 1 !important;
display: flex !important;
flex-direction: column !important;
gap: 10px !important;
}
.tpt-card__title {
font-size: 16px !important;
font-weight: 700 !important;
line-height: 1.35 !important;
margin: 0 !important;
color: #1a1a1a !important;
padding: 0 !important;
}
.tpt-card__title a {
text-decoration: none !important;
color: inherit !important;
transition: color 0.2s !important;
}
.tpt-card__title a:hover { color: #E31E24 !important; } .tpt-card__meta {
display: flex !important;
flex-wrap: wrap !important;
gap: 8px !important;
padding: 0 !important;
margin: 0 !important;
position: absolute !important;
top: 12px !important;
left: 12px !important;
right: 12px !important;
z-index: 2 !important;
pointer-events: none !important;
}
.tpt-meta-item {
display: inline-flex !important;
align-items: center !important;
gap: 4px !important;
font-size: 11px !important;
font-weight: 600 !important;
color: #fff !important;
background: #000 !important;
padding: 4px 8px !important;
border-radius: 6px !important;
text-transform: uppercase !important;
letter-spacing: 0.1px !important;
transition: background 0.2s, color 0.2s !important;
margin: 0 !important;
border: none !important;
}
.tpt-meta-item svg { flex-shrink: 0 !important; }
.tpt-card:hover .tpt-meta-item {
background: #000 !important;
} .tpt-card__excerpt {
font-size: 13.5px !important;
color: #5a5a5a !important;
line-height: 1.6 !important;
margin: 0 !important;
padding: 0 !important;
flex: 1 !important;
display: -webkit-box !important;
-webkit-line-clamp: 3 !important;
-webkit-box-orient: vertical !important;
overflow: hidden !important;
} .tpt-card__price {
display: inline-flex !important;
align-items: center !important;
gap: 6px !important;
font-size: 13px !important;
font-weight: 700 !important;
color: #1a1a1a !important;
background: #f7f7f7 !important;
border-radius: 8px !important;
padding: 5px 12px !important;
border: 1px solid #ebebeb !important;
align-self: flex-start !important;
transition: background 0.2s !important;
margin: 0 !important;
}
.tpt-card__price::before {
content: '₽' !important;
display: inline-block !important;
color: #E31E24 !important;
font-size: 15px !important;
font-weight: 900 !important;
line-height: 1 !important;
}
.tpt-card:hover .tpt-card__price {
background: #fff4f4 !important;
border-color: #f5c2c2 !important;
} .tpt-card__footer {
padding: 4px 20px 20px !important;
margin-top: auto !important;
} .tpt-book-btn {
display: block !important;
text-align: center !important;
background: #E31E24 !important;
color: #fff !important;
font-size: 12px !important;
font-weight: 800 !important;
text-decoration: none !important;
padding: 12px 20px !important;
border-radius: 8px !important;
letter-spacing: 1px !important;
text-transform: uppercase !important;
transition: background 0.22s, box-shadow 0.22s, transform 0.18s !important;
border: none !important;
cursor: pointer !important;
position: relative !important;
overflow: hidden !important;
} .tpt-book-btn::after {
content: '' !important;
position: absolute !important;
inset: 0 !important;
background: radial-gradient(circle at center, rgba(255,255,255,0.25) 0%, transparent 70%) !important;
opacity: 0 !important;
transition: opacity 0.3s !important;
}
.tpt-book-btn:hover {
background: #c2191e !important;
box-shadow: 0 6px 20px rgba(227,30,36,0.4) !important;
transform: translateY(-1px) !important;
color: #fff !important;
}
.tpt-book-btn:hover::after { opacity: 1 !important; }
.tpt-book-btn:active { transform: translateY(0) !important; box-shadow: none !important; }