.pt-maincolor-green{
    --pt-maincolor: #65B32E;
    --pt-maincolor-hover: #57a024;
}
.pt-maincolor-pink{
    --pt-maincolor: #ff0097;
    --pt-maincolor-hover: #da0081;
}
.pt-maincolor-blue{
    --pt-maincolor: #7384c8;
    --pt-maincolor-hover: #314bbc;
}
.pt-maincolor-darkred{
    --pt-maincolor: #780000;
    --pt-maincolor-hover: #610000;
}
.pt-maincolor-beech{
    --pt-maincolor: #D7B46A;
    --pt-maincolor-hover: #c39e51;
}
.pt-maincolor-orange{
    --pt-maincolor: #ff5a00;
    --pt-maincolor-hover: #d14a00;
}

/* Generic Card Base Styles */
.pt-generic-card {
    border-radius: 20px;
    padding: 10px;
    position: relative;
    container-type: inline-size;
    line-height: 1.1em;
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    width: 100%;
    height: 100%;

}
.pt-generic-card *{
    hyphens: auto;
}

@media screen and (min-width:768px){
    .pt-generic-card {
        padding: var(--pt-event-card-padding, 25px) !important;
        border-radius: var(--pt-event-card-border-radius, 40px) !important;
    }
}
.pt-generic-card.-global-linked::before{
    content:"";
    border-radius: 40px;
    position: absolute;
    inset:0;
}
.pt-generic-card.-global-linked a{
    display: flex;
    width: 100%;
    position:relative;
    z-index: 1;
}
.pt-generic-card.-global-linked:hover::before{
    background: rgba(0,0,0,0.02)
}

.pt-generic-card.pt-card-whitebg {
    background: #FFFFFF;
    border: 1px solid #EAEAEA;
}

.pt-generic-card-inner {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    border: solid 5px var(--pt-event-card-inner-border, var(--pt-maincolor, #65b32e)) !important;
    padding: var(--pt-event-card-inner-padding,10px clamp(1rem, 8cqw, 40px) clamp(1rem, 8cqw, 40px) clamp(1rem, 8cqw, 40px)) !important;
    border-radius: var(--pt-event-card-inner-border-radius,10px) !important;
    width: 100%;
}

.pt-generic-card-number {
    font-family: "Open Sans", Arial, Helvetica, sans-serif;
    color: black;
    display: block;
    font-weight: 700;
    font-size: clamp(1rem, 5cqw, 21px);
    margin: var(--pt-event-card-number-margin,0px clamp(-10px, -5cqw, -20px) 10px auto) !important;
    text-align: right;
}

/* Row and Column basic grid setup */
.pt-generic-card-row.d-grid {
    display: grid;
}
.pt-generic-card-row.gap-small {
    gap: 15px;
}
.pt-generic-card-row.d-grid-tc-card-2 {
    grid-template-columns: repeat(2, 1fr);
}
.pt-generic-card-row.d-grid-tc-card-2 {
    grid-template-columns: repeat(2, 1fr);
}
.pt-generic-card-row.mb-small {
    margin-bottom: 1rem;
}
.pt-generic-card-row.mb-5 {
    margin-bottom: 1.25rem;
}

/* --- Block Specific Styles --- */

/* Image Block */
.pt-card-block-image {
    position: relative;
}
.pt-card-block-image {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 9 / 12;
    overflow: hidden;

}
.pt-card-block-image img {
    position: absolute;
    object-fit: cover;
    width: 100%;
    height: 100%;
    display: block;
}
.pt-card-image-overlay {
    position: absolute;
    bottom: 5%;
    left: 0;
    width: 100%;
    z-index: 10;
}
.pt-card-image-overlay .location {
    display: block;
    text-align: center;
    color: black;
    font-weight: bold;
    text-transform: uppercase;
    padding: 10px 2px 10px 2px ;
    background: rgba(255, 255, 255, 0.9);
    font-size: clamp(1rem, 8cqw, 1.7rem); /* Responsive font size based on container width */
    line-height: 1.1;
}

/* Title Block */
.pt-card-block-title.text-center {
    text-align: center;
}
.pt-card-title {
    margin-bottom: 1rem;
}
.pt-card-title a {
    text-decoration: none;
    color: inherit;
}

/* Label Block */
.pt-card-block-label dl,
.pt-card-block-label-block dl{
    margin: 0 0 0.5rem 0;
}

.pt-card-block-label.text-center {
    text-align: center;
}
.pt-card-label {
    background: #D9D9DA;
    display: block;
    padding: var(--pt-event-card-label-p,5px 10px) !important;
    text-align: center;
    color: black;
    font-weight: 700;
    font-size: clamp(1rem, 4cqw, 18px);
    margin-bottom: var(--pt-event-card-label-mb,10px) !important;
}
.pt-card-data,
.pt-card-block-description {
    margin: 0;
    font-weight: 500;
    font-size: clamp(14px, 4cqw, 18px);
    color: black;
}

/* Description Block */

.pt-card-block-description p:first-child {
    margin-top: 0;
}
.pt-card-block-description p:last-child {
    margin-bottom: 0;
}
.pt-generic-card-column{
    display:flex;
    flex-direction: column;
}
/* Price Block */
.pt-card-block-price {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}
.pt-price-link .pt-price-amount {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}
.pt-card-block-price .pt-price-link del{
    margin-bottom: 15px;
    opacity: 0.8;
    font-size: .7em;
}
.pt-card-block-price .pt-price-details {
    background: var(--pt-maincolor, #65B32E);
    color: white;
    display: flex;
    justify-content: center;
    flex-direction: column;
    align-items: center;
    padding: 20px;
    min-width: 120px;
    border-radius: 5px;
}
.pt-card-block-price .pt-price-details dd,
.pt-card-block-price .pt-price-details dt {
    margin: 0;
}
.pt-card-block-price .pt-price-amount {
    font-size: 2rem;
    font-weight: bold;
}
.pt-card-block-price .pt-price-note {
    margin-top: 10px;
    font-size: 0.75rem;
    text-align: right;
    display: block;
    color: #777;
}

/* Button Block */
.pt-card-block-button{
    background: var(--pt-maincolor, #65B32E);
    width: 30cqw;
    height: 100px;
    font-size: clamp(1rem, 4cqw, 20px);
    color: white;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: clamp(1rem, 4cqw, 20px);
    line-height: 1.1em;
}
.pt-card-block-button:hover{
    background: var(--pt-maincolor-hover, #57a024);
}


/* filter */
.trainer-filter-form #filter_country{
    width: 90%;
    max-width: 300px;
}

