/* ============================================
   GALLIPOLI TOUR — WooCommerce Overrides
   ============================================ */

/* --- Shop / Archive --- */
.shop-description {
    max-width: 800px;
    margin: 0 auto;
    text-align: center;
    color: var(--color-text-light);
    font-size: 1.0625rem;
    line-height: 1.7;
}

.shop-controls {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 2rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--color-border);
}

.shop-result-count .woocommerce-result-count {
    margin: 0;
    color: var(--color-text-light);
    font-size: 0.875rem;
}

.shop-ordering .woocommerce-ordering {
    margin: 0;
}

.woocommerce ul.products,
ul.products {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 1.5rem !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.woocommerce ul.products li.product,
ul.products li.product {
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    width: auto !important;
    list-style: none !important;
}

/* Tour card inside WooCommerce list */
ul.products li.tour-card {
    background: var(--color-white);
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: all var(--transition);
}

ul.products li.tour-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
}

.woocommerce .woocommerce-result-count {
    margin-bottom: 1.5rem;
    color: var(--color-text-light);
}

.woocommerce .woocommerce-ordering {
    margin-bottom: 1.5rem;
}

.woocommerce .woocommerce-ordering select {
    padding: 0.5rem 1rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    font-family: var(--font-body);
}

/* --- Single Product / Tour Detail --- */
.woocommerce div.product {
    padding-top: 1.5rem;
}

/* Two-column layout: gallery left, summary right */
.woocommerce div.product div.images {
    float: left !important;
    width: 48% !important;
}

.woocommerce div.product div.summary {
    float: right !important;
    width: 48% !important;
    padding-left: 0;
}

.woocommerce div.product::after {
    content: '';
    display: table;
    clear: both;
}

/* Hide default "Description" heading inside tab (tab title already says "Tour Itinerary") */
.woocommerce div.product .woocommerce-Tabs-panel--description > h2:first-child,
.woocommerce div.product .woocommerce-Tabs-panel--description > h2.woocommerce-product-details__short-description,
.woocommerce-Tabs-panel h2:first-child {
    display: none !important;
}

/* Tour content styling — INCLUDED / NOT INCLUDED / IMPORTANT INFO headers */
.woocommerce-Tabs-panel--description strong {
    color: var(--color-primary);
}

/* Tour description content spacing for headings */
.woocommerce-Tabs-panel--description h2,
.woocommerce-Tabs-panel--description h3,
.woocommerce-Tabs-panel--description h4,
.woocommerce-Tabs-panel--description h5 {
    margin-top: 1.25rem !important;
    margin-bottom: 0.5rem !important;
    padding-top: 0;
}

.woocommerce-Tabs-panel--description h2:first-child,
.woocommerce-Tabs-panel--description h3:first-child,
.woocommerce-Tabs-panel--description h4:first-child {
    margin-top: 0 !important;
}

.woocommerce-Tabs-panel--description p {
    margin-bottom: 0.875rem;
    line-height: 1.75;
}

/* Style INCLUDED / NOT INCLUDED / IMPORTANT INFO section headers */
.tour-section-header {
    display: block !important;
    font-size: 1.125rem !important;
    color: var(--color-primary) !important;
    margin-top: 1.5rem !important;
    margin-bottom: 0.5rem !important;
    padding-bottom: 0.375rem;
    border-bottom: 2px solid var(--color-secondary);
    text-transform: none;
}

/* Tour description lists — restore bullets */
.woocommerce-Tabs-panel--description ul {
    list-style: none !important;
    padding-left: 0 !important;
    margin: 0.75rem 0 1.25rem !important;
}

.woocommerce-Tabs-panel--description ul li {
    padding: 0.25rem 0 0.25rem 1.5rem !important;
    position: relative !important;
    line-height: 1.6 !important;
    list-style: none !important;
}

.woocommerce-Tabs-panel--description ul li::before {
    content: '•' !important;
    position: absolute !important;
    left: 0 !important;
    color: var(--color-secondary) !important;
    font-size: 1.25rem !important;
    font-weight: 700 !important;
    line-height: 1.4 !important;
    display: inline !important;
}

/* Ordered lists in tour description */
.woocommerce-Tabs-panel--description ol {
    padding-left: 1.5rem !important;
    margin: 0.75rem 0 1.25rem !important;
}

.woocommerce-Tabs-panel--description ol li {
    padding: 0.25rem 0;
    line-height: 1.6;
}

/* Tour request form in tab */
.tour-request-form {
    max-width: 700px;
}

.tour-request-form h3 {
    margin-bottom: 0.5rem;
}

.tour-request-form > p {
    color: var(--color-text-light);
    margin-bottom: 1.5rem;
}

.woocommerce div.product div.images {
    margin-bottom: 2rem;
}

.woocommerce div.product div.images img {
    border-radius: var(--radius-lg);
}

/* Gallery thumbnails — horizontal inline slider */
.woocommerce div.product div.images .flex-control-thumbs,
.woocommerce div.product div.images ol.flex-control-thumbs,
.woocommerce div.product div.images .woocommerce-product-gallery__thumbnails {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    gap: 8px !important;
    padding: 8px 0 !important;
    margin: 0 !important;
    list-style: none !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: var(--color-secondary) transparent;
}

.woocommerce div.product div.images .flex-control-thumbs::-webkit-scrollbar {
    height: 4px;
}

.woocommerce div.product div.images .flex-control-thumbs::-webkit-scrollbar-thumb {
    background: var(--color-secondary);
    border-radius: 4px;
}

.woocommerce div.product div.images .flex-control-thumbs li,
.woocommerce div.product div.images .woocommerce-product-gallery__thumbnails .woocommerce-product-gallery__image {
    flex: 0 0 80px !important;
    width: 80px !important;
    height: 60px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;
    border-radius: 6px;
    cursor: pointer;
    border: 2px solid transparent;
    transition: border-color 0.2s;
}

.woocommerce div.product div.images .flex-control-thumbs li:hover,
.woocommerce div.product div.images .flex-control-thumbs li.flex-active {
    border-color: var(--color-secondary);
}

.woocommerce div.product div.images .flex-control-thumbs li img,
.woocommerce div.product div.images .woocommerce-product-gallery__thumbnails img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    border-radius: 4px;
    opacity: 0.7;
    transition: opacity 0.2s;
}

.woocommerce div.product div.images .flex-control-thumbs li img:hover,
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active {
    opacity: 1;
}

/* Main product image */
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper {
    margin-bottom: 0;
}

.woocommerce div.product div.images .woocommerce-product-gallery__image img {
    border-radius: var(--radius-lg);
    max-height: 450px;
    object-fit: cover;
    width: 100%;
}

.woocommerce div.product .product_title {
    font-family: var(--font-heading);
    font-size: 2rem;
    color: var(--color-primary);
    margin-bottom: 0.75rem;
}

.woocommerce div.product p.price {
    font-size: 1.75rem;
    color: var(--color-primary);
    font-family: var(--font-heading);
    margin-bottom: 1rem;
}

.woocommerce div.product p.price ins {
    text-decoration: none;
}

.woocommerce div.product p.price del {
    color: var(--color-text-light);
    font-size: 1.25rem;
}

/* --- Booking Form --- */
.wc-bookings-booking-form {
    background: var(--color-bg-light);
    padding: 1.5rem;
    border-radius: var(--radius-lg);
    margin-bottom: 1.5rem;
}

.wc-bookings-booking-form label {
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--color-text);
    margin-bottom: 0.375rem;
    display: block;
}

.wc-bookings-booking-form input,
.wc-bookings-booking-form select {
    width: 100%;
    padding: 0.75rem 1rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    font-family: var(--font-body);
    font-size: 0.9375rem;
}

.wc-bookings-booking-form input:focus,
.wc-bookings-booking-form select:focus {
    outline: none;
    border-color: var(--color-secondary);
    box-shadow: 0 0 0 3px rgba(201, 169, 89, 0.15);
}

/* Booking Calendar
   NOT: Bu kurallar WooCommerce Bookings plugin'inin dist/frontend.css'ini
   bilerek !important ile ezer (plugin de !important kullaniyor ve bu tema
   stili ondan SONRA yuklendigi icin burasi kazanir). Boylece plugin/tema
   guncellense de takvim dagilmaz. Renkler: yesil #176D3B, lacivert primary. */
.wc-bookings-date-picker .ui-datepicker {
    border: none !important;
    border-radius: var(--radius-lg);
    overflow: hidden;
    max-width: 420px;
    margin: 0 auto;
    padding: 0;
    background: var(--color-white);
    box-shadow: 0 6px 22px rgba(27, 58, 75, 0.10);
    font-family: var(--font-body);
}

/* Baslik (ay / yil) */
.wc-bookings-date-picker .ui-datepicker-header {
    background: var(--color-primary) !important;
    color: var(--color-white);
    border: none !important;
    border-radius: 0 !important;
    padding: 15px 44px !important;
    position: relative;
}
.wc-bookings-date-picker .ui-datepicker-title {
    text-align: center !important;
    margin: 0 !important;
    line-height: 1.2;
    color: var(--color-white);
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    font-size: 1em;
}
.wc-bookings-date-picker .ui-datepicker-title .ui-datepicker-month,
.wc-bookings-date-picker .ui-datepicker-title .ui-datepicker-year {
    color: var(--color-white);
}

/* Ileri / geri oklari (CSS chevron) */
.wc-bookings-date-picker .ui-datepicker .ui-datepicker-prev,
.wc-bookings-date-picker .ui-datepicker .ui-datepicker-next {
    position: absolute !important;
    top: 50% !important;
    bottom: auto !important;
    transform: translateY(-50%) !important;
    width: 34px !important;
    height: 34px !important;
    margin: 0 !important;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none !important;
    background: transparent !important;
    border-radius: 50%;
    cursor: pointer;
    color: var(--color-white);
    text-indent: 0;
    overflow: visible;
    transition: background 0.15s ease;
}
.wc-bookings-date-picker .ui-datepicker .ui-datepicker-prev { left: 8px !important; right: auto !important; }
.wc-bookings-date-picker .ui-datepicker .ui-datepicker-next { right: 8px !important; left: auto !important; }
.wc-bookings-date-picker .ui-datepicker-prev:hover,
.wc-bookings-date-picker .ui-datepicker-next:hover { background: rgba(255, 255, 255, 0.14) !important; }
.wc-bookings-date-picker .ui-datepicker-prev .ui-icon,
.wc-bookings-date-picker .ui-datepicker-next .ui-icon { display: none !important; }
.wc-bookings-date-picker .ui-datepicker-prev::before { content: '\2039'; font-size: 24px; line-height: 1; font-weight: 700; }
.wc-bookings-date-picker .ui-datepicker-next::before { content: '\203A'; font-size: 24px; line-height: 1; font-weight: 700; }
.wc-bookings-date-picker .ui-datepicker-prev.ui-state-disabled,
.wc-bookings-date-picker .ui-datepicker-next.ui-state-disabled { opacity: 0.3; cursor: default; }

/* Izgara cizgileri ve hucre kutularini temizle */
.wc-bookings-date-picker .ui-datepicker table {
    margin: 10px 8px 8px;
    border-collapse: separate;
    border-spacing: 0;
    width: calc(100% - 16px);
}
.wc-bookings-date-picker .ui-datepicker th,
.wc-bookings-date-picker .ui-datepicker td {
    border: none !important;
    background: transparent !important;
    text-align: center !important;
    padding: 3px !important;
}
.wc-bookings-date-picker .ui-datepicker th {
    color: #9AA3A8;
    font-weight: 600;
    font-size: 0.74em;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 6px 0 !important;
}

/* Gun hucreleri: esit, ortali daireler */
.wc-bookings-date-picker .ui-datepicker td a,
.wc-bookings-date-picker .ui-datepicker td span {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    margin: 0 auto !important;
    padding: 0 !important;
    line-height: 1 !important;
    border-radius: 50% !important;
    text-decoration: none !important;
    font-weight: 600;
    font-size: 0.95em;
    box-sizing: border-box;
}
/* Musait gun = yesil daire */
.wc-bookings-date-picker .ui-datepicker td a {
    background: #176D3B !important;
    color: var(--color-white) !important;
    opacity: 1 !important;
    transition: transform 0.12s ease, box-shadow 0.12s ease, background 0.12s ease;
}
.wc-bookings-date-picker .ui-datepicker td a:hover {
    background: #12592F !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 10px rgba(23, 109, 59, 0.35);
}
/* Musait olmayan gun = soluk, dairesiz */
.wc-bookings-date-picker .ui-datepicker td span {
    background: transparent !important;
    color: #CBD0D3 !important;
    font-weight: 400;
}
/* Secili gun = lacivert, yesilden ayrisir */
.wc-bookings-date-picker .ui-datepicker td.ui-datepicker-current-day a {
    background: var(--color-primary) !important;
    box-shadow: 0 0 0 3px rgba(27, 58, 75, 0.16);
}
/* Secili / aktif gunde alt cizgiyi kaldir */
.wc-bookings-date-picker .ui-datepicker td.ui-datepicker-current-day a.ui-state-active,
.wc-bookings-date-picker .ui-datepicker td.ui-datepicker-current-day a.ui-state-default,
.wc-bookings-date-picker .ui-datepicker td a.ui-state-active.ui-state-hover,
.wc-bookings-date-picker .ui-datepicker td a.ui-state-default.ui-state-active,
.wc-bookings-date-picker .ui-datepicker td a.ui-state-active {
    text-decoration: none !important;
    border-bottom: 0 !important;
}

/* Mobil */
@media (max-width: 480px) {
    .wc-bookings-date-picker .ui-datepicker td a,
    .wc-bookings-date-picker .ui-datepicker td span {
        width: 34px;
        height: 34px;
        font-size: 0.88em;
    }
    .wc-bookings-date-picker .ui-datepicker-header { padding: 13px 40px !important; }
}

/* Booking cost */
.wc-bookings-booking-cost {
    background: var(--color-white);
    padding: 1rem;
    border-radius: var(--radius);
    margin-top: 1rem;
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--color-primary);
    border: 2px solid var(--color-secondary);
}

/* --- Add to Cart / Book Button --- */
.woocommerce div.product .single_add_to_cart_button,
.woocommerce .button.single_add_to_cart_button {
    background: var(--color-primary) !important;
    color: var(--color-white) !important;
    border: none;
    padding: 1rem 2.5rem;
    font-size: 1.125rem;
    font-weight: 600;
    border-radius: var(--radius);
    font-family: var(--font-body);
    cursor: pointer;
    transition: all var(--transition);
    width: 100%;
    text-align: center;
}

.woocommerce div.product .single_add_to_cart_button:hover {
    background: #0f2a38 !important;
    transform: translateY(-2px);
    box-shadow: var(--shadow);
}

/* --- Tabs --- */
.woocommerce div.product .woocommerce-tabs {
    clear: both !important;
    width: 100% !important;
    float: none !important;
    padding-top: 2rem;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
    padding: 0;
    margin: 0 0 2rem;
    border-bottom: none;
    display: flex;
    gap: 0.5rem;
    list-style: none;
    background: var(--color-bg-light);
    border-radius: var(--radius-lg);
    padding: 0.375rem;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
    margin: 0;
    padding: 0;
    border: none;
    background: none;
    border-radius: var(--radius);
    flex: 1;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
    display: block;
    padding: 1rem 1.5rem;
    color: var(--color-text-light);
    font-weight: 600;
    font-size: 1.0625rem;
    text-decoration: none;
    border-bottom: none;
    text-align: center;
    border-radius: var(--radius);
    transition: all var(--transition);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
    color: var(--color-white);
    background: var(--color-primary);
    box-shadow: var(--shadow-sm);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
    color: var(--color-primary);
    background: rgba(27, 58, 75, 0.08);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a:hover {
    color: var(--color-white);
    background: var(--color-primary);
}

.woocommerce div.product .woocommerce-tabs .panel {
    padding: 0;
    margin: 0;
}

/* --- Cart --- */
.woocommerce table.shop_table {
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    overflow: hidden;
}

.woocommerce table.shop_table th {
    background: var(--color-bg-light);
    font-weight: 600;
    font-size: 0.875rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.woocommerce table.shop_table td {
    border-top: 1px solid var(--color-border);
    padding: 1rem;
}

.woocommerce .cart-collaterals .cart_totals {
    background: var(--color-bg-light);
    padding: 1.5rem;
    border-radius: var(--radius-lg);
}

/* --- Checkout --- */
.woocommerce form.checkout {
    background: var(--color-white);
}

/* Hide duplicate h2 in checkout */
.woocommerce-checkout .entry-content > h2:first-child,
.woocommerce-checkout .woocommerce > h2:first-child,
.woocommerce-checkout .page-article > .entry-content > h2:first-child {
    display: none !important;
}

/* Checkout form fields */
.woocommerce-checkout textarea {
    min-height: 80px;
}

/* Checkout layout — use WooCommerce defaults, just style */

.woocommerce-checkout #order_review_heading {
    font-family: var(--font-heading);
    font-size: 1.5rem;
    color: var(--color-primary);
    margin-bottom: 1rem;
}

.woocommerce-checkout #order_review {
    background: var(--color-bg-light);
    border-radius: var(--radius-lg);
    padding: 1.5rem;
}

.woocommerce-checkout::after {
    content: '';
    display: table;
    clear: both;
}

/* Billing details heading */
.woocommerce-billing-fields h3 {
    font-family: var(--font-heading);
    font-size: 1.5rem;
    color: var(--color-primary);
    margin-bottom: 1rem;
}

/* Checkout form fields */
.woocommerce form .form-row {
    margin-bottom: 1rem;
}

.woocommerce form .form-row label {
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--color-text);
    margin-bottom: 0.25rem;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row select,
.woocommerce form .form-row textarea {
    padding: 0.75rem 1rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    font-family: var(--font-body);
    font-size: 0.9375rem;
    transition: border-color var(--transition);
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row select:focus,
.woocommerce form .form-row textarea:focus {
    border-color: var(--color-secondary);
    box-shadow: 0 0 0 3px rgba(201, 169, 89, 0.15);
    outline: none;
}

/* Traveller Details Section */
.traveller-details-section {
    clear: both !important;
    float: none !important;
    width: 100% !important;
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 2px solid var(--color-border);
}

.traveller-details-section > h3 {
    font-family: var(--font-heading);
    font-size: 1.5rem;
    color: var(--color-primary);
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}

.traveller-details-notice {
    font-size: 0.9375rem;
    color: var(--color-text-light);
    margin-bottom: 1.5rem;
    padding: 0.75rem 1rem;
    background: #fef3c7;
    border-radius: var(--radius);
    border-left: 4px solid #f59e0b;
}

.traveller-card {
    background: var(--color-bg-light);
    border-radius: var(--radius-lg);
    margin-bottom: 1.25rem;
    overflow: hidden;
}

.traveller-card-header {
    background: var(--color-primary);
    color: var(--color-white);
    padding: 0.75rem 1.25rem;
    font-weight: 600;
    font-size: 0.9375rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.traveller-number {
    width: 28px;
    height: 28px;
    background: var(--color-secondary);
    color: var(--color-primary);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8125rem;
    font-weight: 700;
}

.traveller-card-fields {
    padding: 1.25rem;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 1rem;
}

.traveller-card-fields .form-row {
    margin-bottom: 0.75rem !important;
}

.traveller-card-fields .form-row-first,
.traveller-card-fields .form-row-last {
    float: none !important;
    width: 100% !important;
}

.traveller-card-fields .form-row-wide {
    grid-column: 1 / -1;
}

/* Payment section */
.woocommerce-checkout #payment {
    background: var(--color-bg-light);
    border-radius: var(--radius-lg);
    padding: 1.5rem;
}

.woocommerce #place_order {
    background: var(--color-primary);
    color: var(--color-white);
    border: none;
    padding: 1rem 2.5rem;
    font-size: 1.125rem;
    font-weight: 600;
    border-radius: var(--radius);
    cursor: pointer;
    width: 100%;
    transition: all var(--transition);
}

.woocommerce #place_order:hover {
    background: #0f2a38;
}

/* Checkout responsive */
@media (max-width: 768px) {
    .traveller-card-fields {
        grid-template-columns: 1fr;
    }
}

/* --- Notices --- */
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error {
    border-radius: var(--radius);
    padding: 1rem 1.25rem;
    font-size: 0.9375rem;
}

.woocommerce .woocommerce-message {
    border-top-color: var(--color-success);
}

.woocommerce .woocommerce-error {
    border-top-color: var(--color-error);
}

/* --- Related Products --- */
.woocommerce .related.products,
.woocommerce .upsells.products,
.woocommerce section.related.products,
.woocommerce section.upsells.products,
.woocommerce div.product section.related.products,
.woocommerce div.product .related.products,
body section.related.products {
    margin-top: 3rem;
    padding-top: 3rem;
    border-top: 1px solid var(--color-border);
    clear: both !important;
    width: 100% !important;
    float: none !important;
    display: block !important;
    grid-template-columns: none !important;
}

.woocommerce .related.products h2,
.woocommerce .upsells.products h2 {
    font-family: var(--font-heading);
    font-size: 1.75rem;
    margin-bottom: 1.5rem;
}

.woocommerce .related.products ul.products,
.woocommerce .upsells.products ul.products {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 1.5rem !important;
    width: 100% !important;
    max-width: 100% !important;
    clear: both !important;
}

.woocommerce .related.products ul.products > li.product,
.woocommerce .upsells.products ul.products > li.product,
.woocommerce ul.products.columns-3 li.product {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    width: auto !important;
    float: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
}

.woocommerce .related.products ul.products li.product,
.woocommerce .upsells.products ul.products li.product {
    width: auto !important;
    margin: 0 !important;
    float: none !important;
    background: var(--color-white);
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: all var(--transition);
}

.woocommerce .related.products ul.products li.product:hover,
.woocommerce .upsells.products ul.products li.product:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
}

/* Product images in all WooCommerce lists */
.woocommerce .related.products ul.products li.product a img,
.woocommerce .upsells.products ul.products li.product a img,
.woocommerce ul.products li.product a img {
    width: 100% !important;
    height: 230px !important;
    max-height: 230px !important;
    object-fit: cover !important;
    object-position: center center !important;
    border-radius: var(--radius-lg) var(--radius-lg) 0 0 !important;
    margin: 0 !important;
    display: block !important;
}

/* Wrap product image link */
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link,
.woocommerce ul.products li.product > a:first-child {
    display: block !important;
    overflow: hidden !important;
    border-radius: var(--radius-lg) var(--radius-lg) 0 0 !important;
}

/* Product image container in content-product template */
.woocommerce ul.products li.tour-card a.tour-card-image {
    height: 230px !important;
    overflow: hidden !important;
    border-radius: var(--radius-lg) var(--radius-lg) 0 0 !important;
}

.woocommerce ul.products li.tour-card a.tour-card-image img {
    width: 100% !important;
    height: 230px !important;
    object-fit: cover !important;
    object-position: center center !important;
    display: block !important;
}

/* Product title in default WooCommerce cards */
.woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-family: var(--font-heading);
    font-size: 1rem !important;
    color: var(--color-primary);
    padding: 0.75rem 1rem 0.25rem !important;
    margin: 0 !important;
}

/* Price in default WooCommerce cards */
.woocommerce ul.products li.product .price {
    font-family: var(--font-heading);
    color: var(--color-primary);
    padding: 0.25rem 1rem !important;
    font-size: 1.125rem !important;
    display: block !important;
}

/* Star rating in tour cards within product lists */
.woocommerce ul.products li.tour-card .star-rating {
    margin: 0 !important;
    float: none !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 1px !important;
    height: auto !important;
    width: auto !important;
    overflow: visible !important;
    position: static !important;
    font-size: 1rem !important;
    line-height: 1 !important;
}

.woocommerce ul.products li.tour-card .star-rating::before {
    display: none !important;
}

.woocommerce ul.products li.tour-card .star-rating span {
    position: static !important;
    display: inline !important;
    width: auto !important;
    height: auto !important;
    /* Reset WooCommerce core's padding-top:1.5em / overflow:hidden on star spans */
    padding-top: 0 !important;
    overflow: visible !important;
    line-height: 1 !important;
    vertical-align: middle !important;
}

.woocommerce ul.products li.tour-card .star-rating span::before {
    display: none !important;
}

.woocommerce ul.products li.tour-card .star-rating .star-count {
    font-size: 0.75rem !important;
    color: var(--color-text-light) !important;
    margin-left: 0.25rem !important;
}

/* WooCommerce native star rating — keep default behavior */
.woocommerce .woocommerce-product-rating .star-rating,
.woocommerce div.product .star-rating {
    color: var(--color-secondary) !important;
}

/* Add to cart / Book button in list */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product a.add_to_cart_button {
    background: var(--color-primary) !important;
    color: var(--color-white) !important;
    border: none !important;
    border-radius: 0 0 var(--radius-lg) var(--radius-lg) !important;
    padding: 0.75rem 1rem !important;
    font-size: 0.875rem !important;
    font-weight: 600 !important;
    width: 100% !important;
    text-align: center !important;
    margin: 0.75rem 0 0 !important;
    display: block !important;
    box-sizing: border-box !important;
}

.woocommerce ul.products li.product .button:hover {
    background: #0f2a38 !important;
}

/* --- Pagination --- */
.woocommerce nav.woocommerce-pagination ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 0.375rem;
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
    list-style: none;
}

.woocommerce nav.woocommerce-pagination ul::before,
.woocommerce nav.woocommerce-pagination ul::after {
    display: none;
}

.woocommerce nav.woocommerce-pagination ul li {
    float: none;
    margin: 0;
    padding: 0;
    border: none;
    overflow: visible;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    height: 44px;
    padding: 0 0.75rem;
    line-height: 1;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    color: var(--color-text);
    background: var(--color-white);
    transition: all var(--transition);
}

.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li a:focus-visible {
    background: var(--color-primary);
    color: var(--color-white);
    border-color: var(--color-primary);
}

.woocommerce nav.woocommerce-pagination ul li span.current {
    background: var(--color-primary);
    color: var(--color-white);
    border-color: var(--color-primary);
}

.woocommerce nav.woocommerce-pagination ul li span.dots {
    background: transparent;
    border-color: transparent;
}

/* --- Star Rating (WooCommerce) --- */
.woocommerce .star-rating {
    color: var(--color-secondary);
}

/* --- Responsive WooCommerce --- */
@media (max-width: 768px) {
    .woocommerce ul.products,
    ul.products {
        grid-template-columns: 1fr !important;
        max-width: 500px;
        margin: 0 auto !important;
    }

    .woocommerce .related.products ul.products,
    .woocommerce .upsells.products ul.products {
        flex-wrap: wrap !important;
    }

    .woocommerce .related.products ul.products > li.product,
    .woocommerce .upsells.products ul.products > li.product {
        flex: 1 1 100% !important;
        max-width: 500px !important;
        margin: 0 auto !important;
    }

    .shop-controls {
        flex-direction: column;
        gap: 0.75rem;
        align-items: flex-start;
    }

    .woocommerce div.product div.images,
    .woocommerce div.product div.summary {
        float: none !important;
        width: 100% !important;
    }

    .woocommerce div.product .woocommerce-tabs ul.tabs {
        flex-wrap: wrap;
    }

    .woocommerce div.product .woocommerce-tabs ul.tabs li a {
        padding: 0.625rem 1rem;
        font-size: 0.875rem;
    }

    .tour-includes-excludes {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 1024px) {
    .woocommerce ul.products {
        grid-template-columns: repeat(2, 1fr);
    }
}


/* --- Checkout Page Layout Fix --- */
.woocommerce-checkout .col2-set {
    display: flex;
        flex-wrap: wrap;
            gap: 2rem;
            }
            .woocommerce-checkout .col2-set .col-1 {
                flex: 1 1 100%;
                    max-width: 100%;
                        float: none !important;
                            width: 100%;
                            }
                            .woocommerce-checkout .col2-set .col-2 {
                                flex: 1 1 100%;
                                    max-width: 100%;
                                        float: none !important;
                                            width: 100%;
                                            }
                                            .woocommerce-checkout .form-row input[type="text"],
                                            .woocommerce-checkout .form-row input[type="email"],
                                            .woocommerce-checkout .form-row input[type="tel"],
                                            .woocommerce-checkout .form-row input[type="number"],
                                            .woocommerce-checkout .form-row select,
                                            .woocommerce-checkout .form-row textarea {
                                                width: 100%;
                                                    max-width: 100%;
                                                        padding: 0.75rem 1rem;
                                                            border: 1px solid #ddd;
                                                                border-radius: 6px;
                                                                    font-size: 1rem;
                                                                    }
                                                                    .woocommerce-checkout #order_comments {
                                                                        width: 100%;
                                                                            min-height: 120px;
                                                                            }
                                                                            .woocommerce-checkout .form-row-first,
                                                                            .woocommerce-checkout .form-row-last {
                                                                                width: 48% !important;
                                                                                    float: left;
                                                                                    }
                                                                                    .woocommerce-checkout .form-row-last {
                                                                                        float: right;
                                                                                        }
                                                                                        .woocommerce-checkout .form-row-wide {
                                                                                            width: 100% !important;
                                                                                                clear: both;
                                                                                                }
                                                                                                .traveller-details-section {
                                                                                                    width: 100%;
                                                                                                        clear: both;
                                                                                                            margin-top: 2rem;
                                                                                                            }
                                                                                                            .traveller-details-section .form-row input[type="text"],
                                                                                                            .traveller-details-section .form-row select {
                                                                                                                width: 100%;
                                                                                                                }
                                                                                                                .traveller-card {
                                                                                                                    background: #fdf8f0;
                                                                                                                        border: 1px solid #e8dcc8;
                                                                                                                            border-radius: 8px;
                                                                                                                                margin-bottom: 1.5rem;
                                                                                                                                    overflow: hidden;
                                                                                                                                    }
                                                                                                                                    .traveller-card-header {
                                                                                                                                        background: var(--color-primary, #2c4a5a);
                                                                                                                                            color: #fff;
                                                                                                                                                padding: 0.75rem 1.25rem;
                                                                                                                                                    font-weight: 600;
                                                                                                                                                        display: flex;
                                                                                                                                                            align-items: center;
                                                                                                                                                                gap: 0.75rem;
                                                                                                                                                                }
                                                                                                                                                                .traveller-number {
                                                                                                                                                                    background: var(--color-accent, #c9a96e);
                                                                                                                                                                        color: #fff;
                                                                                                                                                                            width: 28px;
                                                                                                                                                                                height: 28px;
                                                                                                                                                                                    border-radius: 50%;
                                                                                                                                                                                        display: inline-flex;
                                                                                                                                                                                            align-items: center;
                                                                                                                                                                                                justify-content: center;
                                                                                                                                                                                                    font-size: 0.875rem;
                                                                                                                                                                                                    }
                                                                                                                                                                                                    .traveller-card-fields {
                                                                                                                                                                                                        padding: 1.25rem;
                                                                                                                                                                                                        }
                                                                                                                                                                                                        .traveller-details-notice {
                                                                                                                                                                                                            background: #fff9e6;
                                                                                                                                                                                                                border-left: 4px solid var(--color-accent, #c9a96e);
                                                                                                                                                                                                                    padding: 1rem 1.25rem;
                                                                                                                                                                                                                        margin-bottom: 1.5rem;
                                                                                                                                                                                                                            border-radius: 0 6px 6px 0;
                                                                                                                                                                                                                            }
/* Gallipoli tour picker cards (category description) */
.gt-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;margin:1.4rem 0;text-align:left}
.gt-pick{background:#fff;border:1px solid #e8e3d7;border-radius:14px;padding:18px;box-shadow:0 3px 12px rgba(20,40,55,.06)}
.gt-pick h3{margin:0 0 6px;font-size:1.06rem;line-height:1.3}
.gt-pick h3 a{color:#1B3A4B;text-decoration:none}
.gt-pick h3 a:hover{color:#C7A24A}
.gt-pick .gt-dur{display:inline-block;background:#fbf7ec;border:1px solid #ecdfbf;color:#8a6d1f;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;border-radius:20px;padding:3px 11px;margin:0 0 10px}
.gt-pick p{margin:0 0 6px;font-size:.93rem;color:#3a4046;line-height:1.55}
.gt-pick .gt-best{font-weight:600;color:#1B3A4B}

/* Tour card rating: larger stars, tighter spacing above */
.tour-card-body{padding-top:.9rem}
.tour-card-meta{margin-bottom:.5rem;min-height:0}
.tour-card-meta .star-rating{font-size:1.15rem !important;line-height:1 !important;gap:2px !important}
.tour-card-meta .star-rating .star{font-size:1.15rem}
.tour-card-meta .star-count{font-size:.8rem;color:#6a7075;margin-left:4px;font-weight:600}

/* --- Tour Overview + Highlights (AI-generated sections, single product) --- */
.tour-ov-hl {
    float: left !important;
    clear: left !important;
    width: 48% !important;
    margin: 1.5rem 0 0;
}
.tour-ov-hl h2 {
    font-family: var(--font-heading);
    color: var(--color-primary);
    font-size: 1.35rem;
    margin: 0 0 .75rem;
    padding-bottom: .4rem;
    border-bottom: 2px solid var(--color-secondary);
}
.tour-overview { margin-bottom: 1.5rem; }
.tour-overview p {
    margin: 0 0 .85rem;
    line-height: 1.7;
    color: var(--color-text);
}
.tour-overview p:last-child { margin-bottom: 0; }
.tour-highlights {
    background: var(--color-bg-light);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: 1.25rem 1.5rem;
}
.tour-highlights-list { list-style: none; margin: 0; padding: 0; }
.tour-highlights-list li {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    margin: 0 0 .8rem;
    line-height: 1.5;
    color: var(--color-text);
}
.tour-highlights-list li:last-child { margin-bottom: 0; }
.tour-highlights-list li svg {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    margin-top: 2px;
    color: var(--color-success);
}
@media (max-width: 768px) {
    .tour-ov-hl { float: none !important; width: 100% !important; clear: both !important; margin: 1.5rem 0; }
}

/* =====================================================================
   GP-TOUR — custom single-product layout (content-single-product.php)
   ===================================================================== */
.gp-tour{--gd:#a8863c;display:block;float:none;width:100%;max-width:none;margin:0;padding:0}
.gp-tour::before,.gp-tour::after{display:none !important;content:none !important}

/* head */
.gp-head{padding:6px 0 4px}
.gp-eyebrow{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--gd);background:#fbf6ea;border:1px solid #ecdfbf;padding:5px 12px;border-radius:20px;margin-bottom:12px}
.gp-title{font-family:var(--font-heading);font-size:clamp(1.8rem,3.2vw,2.8rem);font-weight:800;color:var(--color-primary);line-height:1.1;margin:0 0 12px;text-wrap:balance}
.gp-headmeta{display:flex;flex-wrap:wrap;align-items:center;gap:9px 20px;margin-bottom:6px}
.gp-rate{display:inline-flex;align-items:center}
/* reset WooCommerce core's absolute/padding-top on the real glyph stars in the head */
.gp-rate .star-rating{position:static;float:none;display:inline-flex;align-items:center;height:auto;width:auto;overflow:visible;font-size:1.7rem;line-height:1;margin:0}
.gp-rate .star-rating::before{display:none}
.gp-rate .star-rating span{position:static !important;float:none !important;padding:0 !important;overflow:visible !important;height:auto !important;width:auto !important;line-height:1 !important;display:inline !important;vertical-align:middle}
/* Kill WooCommerce's font-overlay pseudo-elements — we render real ★ glyphs. Without this
   the absolute ::before (content:"★★★★★") escapes the now-static span and floats to the
   page top-left, showing stray stars above the eyebrow. */
.gp-rate .star-rating span::before,.gp-rate .star-rating span::after{content:none !important;display:none !important}
.gp-rate .star{color:var(--color-secondary)}
.gp-rate .star--empty{color:var(--color-border)}
.gp-rate .star-count{font-size:1rem;color:var(--color-text-light);margin-left:8px;font-weight:600}
.gp-fact{display:inline-flex;align-items:center;gap:7px;color:#44505c;font-size:.9rem}
.gp-fact svg{width:16px;height:16px;color:var(--gd);flex:0 0 auto}

/* mosaic gallery */
.gp-gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:8px;height:460px;margin:18px 0 4px}
.gp-gcell{position:relative;overflow:hidden;border-radius:12px;cursor:pointer;background:#e9e4d8}
.gp-gcell.gp-main{grid-row:1 / span 2}
.gp-gcell img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;display:block}
.gp-gcell::after{content:"";position:absolute;inset:0;background:rgba(18,40,52,0);transition:background .3s}
.gp-gcell:hover img{transform:scale(1.06)}
.gp-gcell:hover::after{background:rgba(18,40,52,.12)}
.gp-gmore{position:absolute;inset:0;background:linear-gradient(rgba(18,40,52,.32),rgba(18,40,52,.6));display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;gap:3px;z-index:2}
.gp-gmore b{font-size:1.05rem;font-weight:700}
.gp-gmore span{font-size:.78rem;opacity:.92}
.gp-gallery[data-count="1"]{grid-template-columns:1fr;grid-template-rows:auto;height:auto}
.gp-gallery[data-count="1"] .gp-gcell{aspect-ratio:16/9}
.gp-gallery[data-count="2"]{grid-template-columns:1fr 1fr;grid-template-rows:1fr;height:340px}
.gp-gallery[data-count="2"] .gp-main{grid-row:auto}
.gp-gallery[data-count="3"]{grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;height:420px}
.gp-gallery[data-count="4"]{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;height:420px}
.gp-gallery[data-count="4"] .gp-main{grid-row:auto}
@media(max-width:760px){.gp-gallery{grid-template-columns:1fr 1fr;height:auto;grid-auto-rows:135px}.gp-gcell.gp-main{grid-column:1 / span 2;height:210px}}

/* sticky scroll-nav */
.gp-subnav{position:sticky;top:calc(var(--header-height, 80px) + var(--header-top-height, 40px));z-index:30;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);border-bottom:1px solid var(--color-border);margin:14px 0 0}
.gp-subnav-in{display:flex;gap:2px;overflow-x:auto;-webkit-overflow-scrolling:touch}
.gp-subnav a{position:relative;padding:15px 15px 13px;font-size:.9rem;font-weight:600;color:#5a6672;white-space:nowrap;border-bottom:2px solid transparent;text-decoration:none}
.gp-subnav a:hover{color:var(--color-primary)}
.gp-subnav a.active{color:var(--color-primary);border-bottom-color:var(--color-secondary)}

/* two-column */
.gp-layout{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:42px;align-items:start;padding:30px 0 6px}
@media(max-width:940px){.gp-layout{grid-template-columns:1fr;gap:28px}}

.gp-sec{scroll-margin-top:calc(var(--header-height, 80px) + var(--header-top-height, 40px) + 66px);padding:12px 0 28px;border-bottom:1px solid var(--color-border)}
.gp-sec:last-child{border-bottom:0}
.gp-sec>h2{font-family:var(--font-heading);font-size:1.55rem;color:var(--color-primary);font-weight:700;margin:0 0 16px}
.gp-prose{color:#33404b;line-height:1.72}
.gp-prose p{margin:0 0 14px}.gp-prose p:last-child{margin-bottom:0}
.gp-prose strong.tour-section-header{display:block;color:var(--color-primary);font-family:var(--font-heading);font-size:1.05rem;margin:18px 0 8px}
.gp-prose h2,.gp-prose h3,.gp-prose h4{color:var(--color-primary);font-family:var(--font-heading);font-weight:700;line-height:1.25;margin:22px 0 8px}
.gp-prose h2{font-size:1.3rem}.gp-prose h3{font-size:1.15rem}.gp-prose h4{font-size:1.02rem}
.gp-prose strong{color:var(--color-primary)}
.gp-prose ul{list-style:none;margin:0 0 15px;padding:0}
.gp-prose ul li{position:relative;padding-left:20px;margin:0 0 8px;line-height:1.6}
.gp-prose ul li::before{content:"";position:absolute;left:2px;top:9px;width:6px;height:6px;border-radius:50%;background:var(--color-secondary)}
.gp-prose ol{margin:0 0 15px;padding-left:20px}.gp-prose ol li{margin:0 0 8px;line-height:1.6}
.gp-itin.gp-prose{border-left:3px solid #ece4cf;padding-left:18px}

/* highlights */
.gp-hl-grid{display:flex;flex-direction:column;gap:10px;margin-top:8px}
.gp-hl{display:flex;gap:11px;align-items:flex-start}
.gp-hl .ic{flex:0 0 auto;width:22px;height:22px;border-radius:50%;background:#eaf5ef;display:flex;align-items:center;justify-content:center;margin-top:1px}
.gp-hl .ic svg{width:14px;height:14px;color:var(--color-success)}
.gp-hl .tx{color:var(--color-text);font-weight:500;font-size:.98rem;line-height:1.45}

/* includes */
.gp-inc-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}
@media(max-width:520px){.gp-inc-grid{grid-template-columns:1fr}}
.gp-inc h3{font-family:var(--font-heading);font-size:1.05rem;color:var(--color-primary);margin:0 0 8px;display:flex;align-items:center;gap:8px}
.gp-inc h3 svg{width:19px;height:19px;flex:0 0 auto}
.gp-yes h3 svg{color:var(--color-success)}.gp-no h3 svg{color:#c0552f}
.gp-inc .gp-prose ul{list-style:none;margin:0;padding:0}
.gp-inc .gp-prose li{position:relative;padding-left:24px;margin:0 0 8px;font-size:.93rem;color:#3d4852}
.gp-inc .gp-prose li::before{content:"";position:absolute;left:0;top:7px;width:8px;height:8px;border-radius:50%}
.gp-yes .gp-prose li::before{background:var(--color-success)}.gp-no .gp-prose li::before{background:#c0552f}

/* booking aside */
.gp-aside{position:sticky;top:calc(var(--header-height, 80px) + var(--header-top-height, 40px) + 18px)}
@media(max-width:940px){.gp-aside{position:static}}
.gp-book{background:#fff;border:1px solid var(--color-border);border-radius:16px;box-shadow:0 14px 40px rgba(20,40,55,.09);overflow:visible}
.gp-book-top{padding:18px 20px 16px;border-bottom:1px solid var(--color-border)}
.gp-from{font-size:.78rem;color:var(--color-text-light);text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.gp-price{font-family:var(--font-heading);font-size:1.9rem;font-weight:800;color:var(--color-primary);line-height:1.1}
.gp-price .amount{font-family:var(--font-heading)}
.gp-book-body{padding:16px 20px 20px}
/* WooCommerce Bookings date fields (month/day/year) — clear value, no spinner clutter (year "2026" was clipping) */
.gp-book input[name^="wc_bookings_field_start_date"]{-moz-appearance:textfield;text-align:center;color:var(--color-primary);font-weight:600;font-size:1rem;padding:10px 4px}
.gp-book input[name^="wc_bookings_field_start_date"]::-webkit-inner-spin-button,.gp-book input[name^="wc_bookings_field_start_date"]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0;display:none}
.gp-book input::placeholder{color:#7a8590;opacity:1}
/* WooCommerce Bookings inline calendar — form padding (24px) left only ~278px so the 7th
   (Saturday) column clipped. Trim padding + full-width table so all 7 columns fit the card. */
.gp-book .wc-bookings-booking-form{padding:18px 12px}
.gp-book .wc-bookings-date-picker{padding:6px 0;max-width:none}
.gp-book .ui-datepicker-inline,.gp-book .ui-datepicker{overflow:visible;max-width:none;width:auto;margin:0}
.gp-book .ui-datepicker-inline table.ui-datepicker-calendar{width:100%;table-layout:fixed}
.gp-book .ui-datepicker-inline td,.gp-book .ui-datepicker-inline th{width:14.28%;text-align:center;padding:2px 0}
.gp-book-body form.cart{margin:0 0 4px}
.gp-book-body .single_add_to_cart_button,.gp-book-body .wc-bookings-booking-form-button{display:block;width:100%;text-align:center;background:var(--color-secondary) !important;color:var(--color-primary) !important;border:0 !important;border-radius:30px !important;padding:14px !important;font-weight:700 !important;font-size:1rem !important;margin-top:6px;transition:background .2s}
.gp-book:not(.gp-booking-gated) .single_add_to_cart_button:not(:disabled):not(.disabled):hover,.gp-book:not(.gp-booking-gated) .wc-bookings-booking-form-button:not(:disabled):not(.disabled):hover{background:var(--gd) !important;color:#fff !important}
.gp-assure{margin-top:14px;padding-top:13px;border-top:1px dashed var(--color-border);display:grid;gap:9px}
.gp-assure div{display:flex;align-items:center;gap:9px;font-size:.85rem;color:#3d4852}
.gp-assure svg{width:16px;height:16px;color:var(--color-success);flex:0 0 auto}
.gp-book-top{border-radius:16px 16px 0 0}
.gp-book-badge{background:var(--color-primary);color:#dfe8ec;text-align:center;font-size:.75rem;padding:9px;letter-spacing:.03em;border-radius:0 0 16px 16px}
.gp-book-badge b{color:var(--color-secondary)}

/* reviews inside section */
#gp-reviews #reviews{margin:0}
#gp-reviews .comment-form{margin-top:16px}

/* trust bar */
.gp-trust{background:var(--color-primary);color:#fff;margin-top:30px}
.gp-trust-in{max-width:var(--container,1200px);margin:0 auto;padding:28px 22px;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;text-align:center}
@media(max-width:680px){.gp-trust-in{grid-template-columns:1fr 1fr}}
.gp-trust .n{display:block;font-family:var(--font-heading);font-size:1.65rem;font-weight:800;color:#fff}
.gp-trust .l{display:block;font-size:.8rem;color:#a9bcc6;margin-top:2px}

/* =====================================================================
   PREMIUM TOUR DETAIL REFRESH — shared by every itinerary/product page
   ===================================================================== */
.gp-head{padding-top:12px}
.gp-eyebrow{box-shadow:0 5px 16px rgba(168,134,60,.08)}
.gp-gallery{gap:10px;margin-top:20px;filter:drop-shadow(0 18px 30px rgba(19,42,55,.10))}
.gp-gcell{border-radius:16px}

.gp-subnav{border:1px solid #e8e2d5;border-radius:14px;box-shadow:0 10px 28px rgba(19,42,55,.08);overflow:hidden;margin-top:20px}
.gp-subnav-in{padding:4px;background:rgba(255,255,255,.97)}
.gp-subnav a{border-radius:9px;padding:12px 15px;border-bottom:0}
.gp-subnav a.active{color:var(--color-primary);background:#f8f3e7;border-bottom:0}

.gp-layout{gap:34px;padding-top:34px}
.gp-content{display:grid;gap:18px;min-width:0}
.gp-sec,
.gp-sec:last-child{position:relative;padding:28px 30px;border:1px solid #e9e4d9;border-radius:18px;background:#fff;box-shadow:0 9px 28px rgba(19,42,55,.055)}
.gp-sec>h2{display:flex;align-items:center;gap:11px;font-size:1.6rem;margin-bottom:18px}
.gp-sec>h2::before{content:"";display:block;width:4px;height:24px;border-radius:999px;background:linear-gradient(180deg,var(--color-secondary),var(--gd));box-shadow:0 3px 8px rgba(168,134,60,.24)}
.gp-prose{color:#35424c}
.gp-itin.gp-prose{border-left:0;padding-left:0}

.gp-hl-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.gp-hl{min-height:58px;padding:12px 13px;border:1px solid #e7eee9;border-radius:12px;background:linear-gradient(145deg,#fbfdfc,#f4f8f5)}
.gp-hl .ic{margin-top:0;box-shadow:0 4px 12px rgba(23,109,59,.10)}
.gp-hl .tx{font-size:.93rem}
.gp-inc{padding:17px 18px;border:1px solid #ece6da;border-radius:14px;background:#fbfaf7}
.gp-yes{background:#f7fbf8;border-color:#dfebe3}
.gp-no{background:#fdf9f7;border-color:#efe3de}

.gp-aside{display:grid;gap:16px}
.gp-book{position:relative;border:1px solid #ded7c7;border-radius:18px;box-shadow:0 22px 54px rgba(19,42,55,.15);overflow:hidden}
.gp-book::before{content:"";position:absolute;z-index:2;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--color-secondary),#e7d49d,var(--gd))}
.gp-book-top{padding:24px 22px 19px;border-bottom:1px solid #ebe5d8;border-radius:0;background:linear-gradient(145deg,#fffdf8 0%,#f8f3e7 100%)}
.gp-book-kicker{display:block;color:#8a6b24;font-size:.69rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;margin-bottom:7px}
.gp-book-title{font-family:var(--font-heading);color:var(--color-primary);font-size:1.45rem;line-height:1.15;margin:0 0 7px}
.gp-book-copy{color:#5e6972;font-size:.86rem;line-height:1.5;margin:0}
.gp-book-price-row{display:flex;align-items:flex-end;justify-content:space-between;gap:15px;margin-top:16px;padding-top:15px;border-top:1px solid rgba(168,134,60,.20)}
.gp-book-price-row>div{display:flex;align-items:baseline;gap:7px;min-width:0;white-space:nowrap}
.gp-book-price-note{max-width:126px;color:#71808a;font-size:.68rem;line-height:1.35;text-align:right}
.gp-book-price-row .gp-from,.gp-book-price-row .gp-price{font-family:var(--font-body);font-size:.72rem;font-weight:750;line-height:1;text-transform:uppercase;letter-spacing:.055em;white-space:nowrap}
.gp-book-price-row .gp-price{display:flex;align-items:baseline;gap:7px}
.gp-book-price-row .gp-price .amount{font-family:var(--font-heading);font-size:1.85rem;font-weight:800;line-height:1;letter-spacing:0;text-transform:none}
.gp-book-body{padding:18px 20px 21px}

.gp-book .wc-bookings-booking-form{padding:0;margin:0;background:transparent;border-radius:0}
.gp-book .wc_bookings_field_persons{margin:0 0 17px}
.gp-book .wc_bookings_field_persons>label,
.gp-book .wc-bookings-date-picker>.label{display:block;color:var(--color-primary);font-size:.71rem;font-weight:800;letter-spacing:.085em;text-transform:uppercase;margin:0 0 8px}
.gp-qty-stepper{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;height:48px;border:1px solid #d8d3c8;border-radius:12px;background:#fff;overflow:hidden;box-shadow:inset 0 1px 2px rgba(19,42,55,.03)}
.gp-qty-stepper .gp-qty-btn{height:100%;border:0;background:#f8f6f0;color:var(--color-primary);font-size:1.35rem;font-weight:500;cursor:pointer;transition:background .16s,color .16s}
.gp-qty-stepper .gp-qty-btn:hover{background:var(--color-primary);color:#fff}
.gp-qty-stepper .gp-qty-btn:disabled,.gp-qty-stepper .gp-qty-btn:disabled:hover{background:#f5f3ee;color:#b8b2a7;cursor:not-allowed}
.gp-qty-stepper.gp-qty-unselected .gp-qty-btn:not(:disabled){background:#f2ead5;color:#8a6b24}
.gp-qty-stepper #wc_bookings_field_persons{width:100% !important;height:46px;padding:0 8px !important;border:0 !important;border-left:1px solid #e4dfd4 !important;border-right:1px solid #e4dfd4 !important;border-radius:0 !important;background:#fff;text-align:center;font-size:1rem;font-weight:800;color:var(--color-primary);box-shadow:none !important;-moz-appearance:textfield}
.gp-qty-stepper.gp-qty-unselected #wc_bookings_field_persons{color:transparent !important}
.gp-qty-prompt{position:absolute;z-index:1;top:0;bottom:0;left:48px;right:48px;display:flex;align-items:center;justify-content:center;padding:0 8px;background:#fff;color:#687781;font-size:.79rem;font-weight:750;letter-spacing:.01em;line-height:1.2;text-align:center;pointer-events:none;transition:opacity .15s,visibility .15s}
.gp-qty-stepper.gp-qty-selected .gp-qty-prompt{opacity:0;visibility:hidden}
.gp-qty-stepper #wc_bookings_field_persons::-webkit-inner-spin-button,
.gp-qty-stepper #wc_bookings_field_persons::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}

/* The plugin generates a complete inline calendar but hides its parent when
   display mode is empty. Reveal that calendar and visually hide the duplicate
   numeric mm/dd/yyyy fields while keeping them available to booking scripts. */
.gp-book .wc-bookings-date-picker{display:flex;flex-direction:column;padding:0;margin:0;max-width:none;font-size:0;line-height:0}
.gp-book .wc-bookings-date-picker>.label{order:-2;font-size:.71rem;line-height:1.4}
.gp-book .wc-bookings-date-picker>.picker{display:block !important;position:static !important;order:-1;width:100%;font-size:1rem;line-height:normal}
.gp-book .wc-bookings-date-picker-date-fields{display:none !important;position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0,0,0,0) !important;clip-path:inset(50%) !important;white-space:nowrap !important;border:0 !important}
.gp-book .ui-datepicker-inline,
.gp-book .ui-datepicker{width:100% !important;max-width:none;border:1px solid #e5dfd3 !important;border-radius:13px;box-shadow:0 8px 22px rgba(19,42,55,.08)}
.gp-book .ui-datepicker-header{border-radius:12px 12px 0 0 !important}
.gp-book .wc-bookings-date-picker .ui-datepicker table{margin:8px 5px 7px;width:calc(100% - 10px)}
.gp-book .wc-bookings-date-picker .ui-datepicker td,
.gp-book .wc-bookings-date-picker .ui-datepicker th{padding:2px !important}
.gp-book .wc-bookings-date-picker .ui-datepicker td a,
.gp-book .wc-bookings-date-picker .ui-datepicker td>span{width:36px;height:36px;font-size:.88rem}
.gp-book:not(.gp-date-selected) .wc-bookings-date-picker .ui-datepicker td.ui-datepicker-current-day a{background:#176D3B !important;box-shadow:none}
.gp-book-body .single_add_to_cart_button,
.gp-book-body .wc-bookings-booking-form-button{border-radius:12px !important;padding:15px !important;margin-top:17px;box-shadow:0 8px 18px rgba(168,134,60,.20)}
.gp-book-body .single_add_to_cart_button:disabled,
.gp-book-body .single_add_to_cart_button.disabled,
.gp-book-body .wc-bookings-booking-form-button:disabled,
.gp-book-body .wc-bookings-booking-form-button.disabled,
.gp-book.gp-booking-gated .single_add_to_cart_button,
.gp-book.gp-booking-gated .wc-bookings-booking-form-button{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}
.gp-book:not(.gp-travellers-selected) .wc-bookings-booking-cost{display:none !important}

.gp-assure{margin-top:16px;padding-top:15px;gap:11px}
.gp-assure>div{align-items:flex-start;gap:10px;padding:0;font-size:.84rem}
.gp-assure svg{margin-top:2px}
.gp-assure span{display:grid;gap:2px}
.gp-assure strong{display:block;color:var(--color-primary);font-size:.84rem;line-height:1.25}
.gp-assure small{display:block;color:#6c7881;font-size:.74rem;line-height:1.35}
.gp-book-badge{padding:10px 12px;border-radius:0;background:linear-gradient(90deg,#183746,#234c5f)}

.gp-concierge{position:relative;overflow:hidden;padding:22px;border:1px solid rgba(201,169,89,.40);border-radius:18px;background:radial-gradient(circle at 100% 0,rgba(201,169,89,.18),transparent 38%),linear-gradient(145deg,#173643,#102a36);box-shadow:0 18px 42px rgba(19,42,55,.16);color:#fff}
.gp-concierge::after{content:"";position:absolute;right:-38px;bottom:-46px;width:128px;height:128px;border:1px solid rgba(255,255,255,.07);border-radius:50%}
.gp-concierge-kicker{position:relative;z-index:1;display:block;color:#dec982;font-size:.68rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;margin-bottom:8px}
.gp-concierge h3{position:relative;z-index:1;color:#fff;font-family:var(--font-heading);font-size:1.3rem;line-height:1.2;margin:0 0 9px}
.gp-concierge p{position:relative;z-index:1;color:#d6e0e4;font-size:.85rem;line-height:1.58;margin:0 0 16px}
.gp-concierge-cta{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:9px;width:100%;min-height:46px;padding:11px 16px;border-radius:12px;background:#1fa463;color:#fff !important;font-size:.88rem;font-weight:800;text-decoration:none;box-shadow:0 8px 18px rgba(12,98,56,.24);transition:transform .16s,background .16s,box-shadow .16s}
.gp-concierge-cta:hover{background:#188553;transform:translateY(-1px);box-shadow:0 11px 22px rgba(12,98,56,.30)}
.gp-concierge-cta svg{width:18px;height:18px;flex:0 0 auto}
.gp-concierge-proof{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:17px;padding-top:15px;border-top:1px solid rgba(255,255,255,.12)}
.gp-concierge-proof>span{display:grid;gap:3px;color:#aebfc7;font-size:.66rem;line-height:1.3}
.gp-concierge-proof>span+span{padding-left:14px;border-left:1px solid rgba(255,255,255,.12)}
.gp-concierge-proof strong{display:block;color:#fff;font-size:.78rem}

.woocommerce .related.products,
.woocommerce section.related.products{margin-top:2.1rem;padding-top:2.4rem;border-top:1px solid #e6e0d4}
.woocommerce .related.products>h2{display:flex;align-items:center;gap:11px;color:var(--color-primary)}
.woocommerce .related.products>h2::before{content:"";width:4px;height:24px;border-radius:999px;background:linear-gradient(180deg,var(--color-secondary),var(--gd,#a8863c))}

/* Keep one clear contact route on tour pages. The legacy orange live-chat
   badge overlaps the booking controls; WhatsApp and the concierge CTA remain. */
.single-product a[aria-label="Live chat online"]{display:none !important}

@media(max-width:940px){
    .gp-layout{gap:24px;padding-top:26px}
    .gp-aside{position:static;top:auto}
}
@media(min-width:941px) and (max-height:860px){.gp-aside{position:static;top:auto}}
@media(max-width:680px){
    .gp-subnav{border-radius:11px;margin-top:14px}
    .gp-subnav a{padding:11px 12px;font-size:.82rem}
    .gp-sec,.gp-sec:last-child{padding:22px 19px;border-radius:15px}
    .gp-sec>h2{font-size:1.38rem}
    .gp-hl-grid{grid-template-columns:1fr}
    .gp-inc-grid{gap:12px}
    .gp-book-top{padding:22px 18px 17px}
    .gp-book-body{padding:17px 16px 19px}
    .gp-book-price-note{max-width:112px}
    .gp-concierge{padding:20px 18px}
}

/* lightbox */
.gp-lb{position:fixed;inset:0;background:rgba(10,22,30,.93);display:none;align-items:center;justify-content:center;z-index:9999;padding:30px}
.gp-lb.open{display:flex}
.gp-lb img{max-width:90vw;max-height:86vh;border-radius:8px}
.gp-lb-x{position:absolute;top:18px;right:26px;color:#fff;font-size:2.2rem;cursor:pointer;line-height:1}
.gp-lb-nav{position:absolute;top:50%;transform:translateY(-50%);color:#fff;font-size:2.6rem;cursor:pointer;padding:12px;user-select:none;opacity:.85}
.gp-lb-prev{left:12px}.gp-lb-next{right:12px}
@media(prefers-reduced-motion:reduce){.gp-gcell img{transition:none}}

/* ===== Next-gen product reviews ===== */
#gp-reviews .woocommerce-Reviews-title{display:none}
#gp-reviews #reviews #comments h2{display:none}
#reviews .commentlist{list-style:none;margin:0;padding:0}
#reviews .commentlist li{margin:0;padding:0;border:0;background:none}
.gp-review-card{background:#fff;border:1px solid #ece5d6;border-radius:12px;padding:16px 18px;margin-bottom:14px}
.gp-review-head{display:flex;align-items:center;gap:12px}
.gp-review-avatar{width:44px;height:44px;border-radius:50%;background:var(--color-primary,#1B3A4B);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem;flex:0 0 auto}
.gp-review-id{min-width:0}
.gp-review-namerow{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.gp-review-name{font-weight:700;color:var(--color-primary,#1B3A4B)}
.gp-review-verified{display:inline-flex;align-items:center;gap:4px;background:#e7f6ef;color:#059669;font-size:.72rem;font-weight:700;padding:3px 9px;border-radius:20px;line-height:1.5}
.gp-review-sub{font-size:.82rem;color:#6b7280;margin-top:2px}
.gp-review-country{white-space:nowrap}
.gp-review-stars{margin:11px 0 5px;font-size:1.1rem;letter-spacing:2px;line-height:1}
.gp-review-stars .on{color:var(--color-secondary,#C9A959)}
.gp-review-stars .off{color:#dcd7c9}
.gp-review-title{font-weight:700;color:var(--color-primary,#1B3A4B);margin:0 0 5px;font-size:1.02rem}
.gp-review-text{color:#3f4a52;line-height:1.65}
.gp-review-text p{margin:0 0 .6em}
.gp-review-text p:last-child{margin-bottom:0}
.gp-review-pending{color:#b8860b;font-size:.85rem;margin:8px 0 0}
.gp-review-more,.gp-review-write{font:inherit;cursor:pointer;border-radius:10px;font-weight:600;font-size:.92rem;padding:11px 24px;transition:background .15s,color .15s,opacity .15s}
.gp-review-more{display:block;margin:2px auto 8px;background:#fff;color:var(--color-primary,#1B3A4B);border:1.5px solid var(--color-secondary,#C9A959)}
.gp-review-more:hover{background:var(--color-secondary,#C9A959);color:#fff}
.gp-review-write{display:inline-block;margin:6px 0 10px;background:var(--color-primary,#1B3A4B);color:#fff;border:1.5px solid var(--color-primary,#1B3A4B)}
.gp-review-write:hover{opacity:.9}
.gp-review-hidden{display:none !important}
#review_form_wrapper.gp-form-collapsed{display:none}
#review_form_wrapper.gp-form-collapsed.gp-form-open{display:block}
.comment-form-review-title label,.comment-form-review-country label{display:block;font-weight:600;font-size:.85rem;color:var(--color-primary,#1B3A4B);margin-bottom:4px}
#review_title,#review_country{width:100%;max-width:420px;padding:10px;border:1px solid #ddd;border-radius:8px;font:inherit;box-sizing:border-box}
.gp-review-travelled{display:inline-flex;align-items:center;gap:6px;background:#fbf6ea;color:#8a6d00;border:1px solid #ecdfbf;font-size:.78rem;font-weight:600;padding:4px 11px;border-radius:20px;margin:10px 0 2px}
.gp-review-travelled svg{flex:0 0 auto}
.comment-form-tour-date label{display:block;font-weight:600;font-size:.85rem;color:var(--color-primary,#1B3A4B);margin-bottom:4px}
.gp-td-selects{display:flex;gap:8px;max-width:420px}
.gp-td-selects select{flex:1;padding:10px;border:1px solid #ddd;border-radius:8px;font:inherit;background:#fff}

/* Featured hotels (Gallipoli Hotels plugin) */
.gp-hotels-lead{color:#4a5560;font-size:.95rem;line-height:1.6;margin:0 0 18px}
.gp-hotel-city{font-family:var(--font-heading);font-size:1.08rem;color:var(--color-primary);font-weight:700;margin:20px 0 12px}
.gp-hotel-city:first-of-type{margin-top:0}
.gp-hotel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-bottom:10px}
.gp-hotel{border:1px solid var(--color-border);border-radius:12px;overflow:hidden;background:#fff;display:flex;flex-direction:column}
.gp-hotel-img{height:150px;background-size:cover;background-position:center;background-color:#eee}
.gp-hotel-info{padding:13px 15px;display:flex;flex-direction:column;gap:9px;flex:1}
.gp-hotel-name{font-family:var(--font-heading);font-size:1.02rem;color:var(--color-primary);font-weight:700;line-height:1.3;margin:0}
.gp-hotel-badges{display:flex;flex-wrap:wrap;gap:6px}
.gp-hotel-badge{font-size:.72rem;font-weight:600;color:#7a5c12;background:rgba(201,169,89,.16);border:1px solid rgba(201,169,89,.5);border-radius:999px;padding:2px 10px;letter-spacing:.02em}
.gp-hotel-desc{font-size:.86rem;color:#4a5560;line-height:1.55;margin:0}
.gp-hotel-link{font-size:.85rem;font-weight:600;color:#b8912f;text-decoration:none;margin-top:auto}
.gp-hotel-link:hover{text-decoration:underline}
@media(max-width:520px){.gp-hotel-grid{grid-template-columns:1fr 1fr;gap:12px}.gp-hotel-img{height:110px}}
.gp-hotels-btn{display:inline-flex;align-items:center;gap:9px;background:var(--color-primary);color:#fff;border:0;border-radius:10px;padding:12px 22px;font-family:var(--font-heading);font-size:1rem;font-weight:700;cursor:pointer;transition:background .15s}
.gp-hotels-btn:hover{background:#16303e}
.gp-hotels-btn svg{flex:0 0 auto}
.gp-hotels-modal[hidden]{display:none}
.gp-hotels-modal{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;padding:20px}
.gp-hotels-overlay{position:absolute;inset:0;background:rgba(20,30,40,.55)}
.gp-hotels-dialog{position:relative;background:#fff;border-radius:16px;width:100%;max-width:880px;max-height:88vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.gp-hotels-head{display:flex;align-items:center;justify-content:space-between;padding:16px 22px;border-bottom:1px solid var(--color-border)}
.gp-hotels-title{font-family:var(--font-heading);font-size:1.3rem;font-weight:700;color:var(--color-primary)}
.gp-hotels-x{background:0;border:0;font-size:1.9rem;line-height:1;color:#8a97a1;cursor:pointer;padding:0 4px}
.gp-hotels-x:hover{color:var(--color-primary)}
.gp-hotels-modalbody{padding:20px 22px;overflow-y:auto}
.gp-hotels-foot{padding:12px 22px;border-top:1px solid var(--color-border);font-size:.82rem;color:#7a8791;background:#faf9f6}
body.gp-modal-open{overflow:hidden}
