/**
 * Booking Wizard Styles
 * geoDiscovery Tours - Buchungsstrecke Phase 2
 * Mobile-First, Theme-Variables nutzen
 */

/* ========================================
   Page Layout - Booking Page Specific
   ======================================== */

.gdt-booking-page .wp-block-post-content > h1:first-child,
.gdt-booking-page .entry-content > h1:first-child,
.gdt-booking-page main h1:first-of-type {
    margin-top: var(--wp--preset--spacing--70, 3rem);
    text-align: center;
}

/* ========================================
   Base Styles
   ======================================== */

.gdt-booking-wizard {
    max-width: 1200px;
    margin: 0 auto;
    padding: var(--wp--preset--spacing--40, 1rem);
}

.gdt-booking-error {
    background: #fff5f5;
    border: 1px solid #e53e3e;
    border-radius: 8px;
    padding: var(--wp--preset--spacing--50, 1.5rem);
    text-align: center;
}

.gdt-booking-error p {
    margin: 0 0 1rem;
}

.gdt-booking-error a {
    color: var(--wp--preset--color--primary-blue, #10218b);
}

/* ========================================
   Progress Bar
   ======================================== */

.gdt-booking-progress {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--wp--preset--spacing--60, 2rem);
    padding: var(--wp--preset--spacing--40, 1rem) 0;
    border-bottom: 1px solid var(--wp--preset--color--light-gray, #e9ecef);
}

.gdt-progress-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 1;
    position: relative;
    color: var(--wp--preset--color--gray, #999);
    text-align: center;
}

.gdt-progress-step.active {
    color: var(--wp--preset--color--primary-blue, #10218b);
}

.gdt-progress-connector {
    flex: 0 0 auto;
    width: 40px;
    height: 2px;
    background: var(--wp--preset--color--light-gray, #e9ecef);
    margin: 0 0.5rem;
    margin-bottom: 1.5rem;
}

.gdt-progress-step.active ~ .gdt-progress-connector,
.gdt-progress-step.active + .gdt-progress-connector {
    background: var(--wp--preset--color--primary-blue, #10218b);
}

.step-number {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--wp--preset--color--light-gray, #e9ecef);
    font-weight: 600;
    margin-bottom: 0.5rem;
    transition: all 0.2s ease;
}

.gdt-progress-step.active .step-number {
    background: var(--wp--preset--color--primary-blue, #10218b);
    color: white;
}

.gdt-progress-step.current .step-number {
    background: var(--wp--preset--color--green, #7fc41c);
    color: white;
    transform: scale(1.1);
}

.step-label {
    font-size: var(--wp--preset--font-size--small, 0.875rem);
    text-align: center;
}

@media (max-width: 35rem) {
    .step-label {
        display: none;
    }

    .gdt-progress-connector {
        width: 20px;
        margin-bottom: 0;
    }
}

/* ========================================
   Content Layout
   ======================================== */

.gdt-booking-content {
    display: grid;
    gap: var(--wp--preset--spacing--60, 2rem);
}

@media (min-width: 60rem) {
    .gdt-booking-content {
        grid-template-columns: 1fr 350px;
    }
}

/* ========================================
   Tour Header
   ======================================== */

.gdt-booking-tour-header {
    display: flex;
    gap: var(--wp--preset--spacing--40, 1rem);
    margin-bottom: var(--wp--preset--spacing--60, 2rem);
    padding-bottom: var(--wp--preset--spacing--40, 1rem);
    border-bottom: 1px solid var(--wp--preset--color--light-gray, #e9ecef);
}

.gdt-booking-tour-image {
    flex-shrink: 0;
    width: 120px;
}

.gdt-booking-tour-image img {
    width: 100%;
    height: auto;
    border-radius: 8px;
    object-fit: cover;
}

.gdt-booking-tour-info h1 {
    font-size: var(--wp--preset--font-size--large, 1.5rem);
    font-family: var(--wp--preset--font-family--headings, Georgia, serif);
    margin: 0 0 0.5rem;
    color: var(--wp--preset--color--primary-blue, #10218b);
}

.gdt-tour-meta {
    color: var(--wp--preset--color--gray, #666);
    font-size: var(--wp--preset--font-size--small, 0.875rem);
    margin: 0;
}

.gdt-tour-meta span:not(:last-child)::after {
    content: " • ";
}

/* ========================================
   Form Elements
   ======================================== */

.gdt-form-group {
    margin-bottom: 1rem;
}

.gdt-form-group > label {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: 500;
    color: var(--wp--preset--color--dark, #333);
}

.gdt-form-group .required {
    color: var(--wp--preset--color--warm-orange, #e67e22);
}

.gdt-input,
.gdt-select,
.gdt-textarea {
    width: 100%;
    box-sizing: border-box;
    padding: 0.75rem 1rem;
    border: 1px solid var(--wp--preset--color--light-gray, #ddd);
    border-radius: 6px;
    font-size: 1rem;
    font-family: inherit;
    transition: border-color 0.2s, box-shadow 0.2s;
    background: white;
}

.gdt-input:focus,
.gdt-select:focus,
.gdt-textarea:focus {
    outline: none;
    border-color: var(--wp--preset--color--primary-blue, #10218b);
    box-shadow: 0 0 0 3px rgba(16, 33, 139, 0.1);
}

.gdt-form-group.gdt-error .gdt-input,
.gdt-form-group.gdt-error .gdt-select {
    border-color: var(--wp--preset--color--warm-orange, #e67e22);
}

.gdt-field-error {
    color: var(--wp--preset--color--warm-orange, #e67e22);
    font-size: var(--wp--preset--font-size--small, 0.875rem);
    margin-top: 0.25rem;
}

.gdt-field-error:empty {
    display: none;
}

.gdt-help-text {
    color: var(--wp--preset--color--gray, #666);
    font-size: var(--wp--preset--font-size--small, 0.875rem);
    margin: 0 0 0.75rem;
}

.gdt-form-row {
    display: grid;
    row-gap: 1rem;
    column-gap: 1.5rem;
    margin-bottom: 1.5rem;
}

.gdt-form-row-2 {
    grid-template-columns: 1fr 1fr;
}

.gdt-form-row-3 {
    grid-template-columns: 1fr 1fr 1fr;
}

/* Kein zusätzliches margin-bottom für form-groups in rows */
.gdt-form-row .gdt-form-group {
    margin-bottom: 0;
}

@media (max-width: 35rem) {
    .gdt-form-row-2,
    .gdt-form-row-3 {
        grid-template-columns: 1fr;
    }

    /* Auf Mobile brauchen wir wieder Abstände zwischen den Feldern */
    .gdt-form-row .gdt-form-group:not(:last-child) {
        margin-bottom: var(--wp--preset--spacing--40, 1rem);
    }
}

/* ========================================
   Date Selection
   ======================================== */

.gdt-date-options {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.gdt-date-option {
    display: block;
    padding: 1rem 1.25rem;
    border: 2px solid var(--wp--preset--color--light-gray, #ddd);
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.2s ease;
    background: white;
}

.gdt-date-option:hover:not(.disabled) {
    border-color: var(--wp--preset--color--primary-blue, #10218b);
}

.gdt-date-option.selected {
    border-color: var(--wp--preset--color--primary-blue, #10218b);
    background: var(--wp--preset--color--light-green-bg, #f4f9f0);
}

.gdt-date-option.disabled {
    opacity: 0.5;
    cursor: not-allowed;
    background: #f5f5f5;
}

.gdt-date-option input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.gdt-date-content {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1rem;
}

.gdt-date-range {
    font-weight: 500;
    color: var(--wp--preset--color--dark, #333);
}

.gdt-date-price {
    font-weight: 700;
    color: var(--wp--preset--color--primary-blue, #10218b);
}

.gdt-date-language {
    font-size: var(--wp--preset--font-size--small, 0.875rem);
    color: var(--wp--preset--color--gray, #666);
}

.gdt-date-holiday {
    color: var(--wp--preset--color--warm-orange, #e67e22);
    font-size: var(--wp--preset--font-size--small, 0.875rem);
}

.gdt-date-almost-full {
    background: var(--wp--preset--color--warm-gold, #f39c12);
    color: white;
    padding: 0.125rem 0.5rem;
    border-radius: 4px;
    font-size: 0.75rem;
    font-weight: 500;
}

.gdt-date-full {
    background: var(--wp--preset--color--gray, #999);
    color: white;
    padding: 0.125rem 0.5rem;
    border-radius: 4px;
    font-size: 0.75rem;
    font-weight: 500;
}

/* ========================================
   Room Options
   ======================================== */

.gdt-room-selections {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.gdt-room-option {
    display: block;
    padding: 1rem 1.25rem;
    border: 2px solid var(--wp--preset--color--light-gray, #ddd);
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.2s ease;
    background: white;
}

.gdt-room-option:hover {
    border-color: var(--wp--preset--color--primary-blue, #10218b);
}

.gdt-room-option.selected {
    border-color: var(--wp--preset--color--green, #7fc41c);
    background: var(--wp--preset--color--light-green-bg, #f4f9f0);
}

.gdt-room-option input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.gdt-room-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.gdt-room-name {
    font-weight: 500;
}

.gdt-room-price {
    color: var(--wp--preset--color--primary-blue, #10218b);
    font-weight: 600;
}

/* ========================================
   German Guide Options
   ======================================== */

.gdt-german-guide-options {
    margin-top: var(--wp--preset--spacing--50, 1.5rem);
    padding-top: var(--wp--preset--spacing--50, 1.5rem);
    border-top: 1px solid var(--wp--preset--color--light-gray, #ddd);
}

.gdt-german-guide-options .gdt-help-text {
    color: var(--wp--preset--color--gray, #666);
    font-size: var(--wp--preset--font-size--small, 0.875rem);
    margin-bottom: var(--wp--preset--spacing--40, 1rem);
}

.gdt-guide-selections {
    display: flex;
    flex-direction: column;
    gap: var(--wp--preset--spacing--30, 0.75rem);
}

.gdt-guide-option {
    display: block;
    padding: 1rem 1.25rem;
    border: 2px solid var(--wp--preset--color--light-gray, #ddd);
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.2s ease;
    background: white;
}

.gdt-guide-option:hover {
    border-color: var(--wp--preset--color--primary-blue, #10218b);
}

.gdt-guide-option.selected {
    border-color: var(--wp--preset--color--green, #7fc41c);
    background: var(--wp--preset--color--light-green-bg, #f4f9f0);
}

.gdt-guide-option input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.gdt-guide-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.gdt-guide-name {
    font-weight: 500;
}

.gdt-guide-price {
    color: var(--wp--preset--color--primary-blue, #10218b);
    font-weight: 600;
}

/* ========================================
   Passport Notice
   ======================================== */

.gdt-passport-notice {
    background: var(--wp--preset--color--light-green-bg, #f4f9f0);
    border-left: 4px solid var(--wp--preset--color--green, #7fc41c);
    padding: 1rem 1.25rem;
    margin-bottom: var(--wp--preset--spacing--60, 2rem);
    font-size: var(--wp--preset--font-size--small, 0.875rem);
    border-radius: 0 8px 8px 0;
}

/* ========================================
   Participant Forms
   ======================================== */

.gdt-participant-form {
    background: var(--wp--preset--color--off-white, #f8f9fa);
    padding: var(--wp--preset--spacing--50, 1.5rem);
    border-radius: 8px;
    margin-bottom: var(--wp--preset--spacing--40, 1rem);
}

.gdt-participant-form h3 {
    margin: 0 0 1.25rem;
    font-size: 1.125rem;
    color: var(--wp--preset--color--primary-blue, #10218b);
    font-family: var(--wp--preset--font-family--headings, Georgia, serif);
}

/* ========================================
   Extensions
   ======================================== */

.gdt-no-extensions,
.gdt-skip-info {
    color: var(--wp--preset--color--gray, #666);
    padding: var(--wp--preset--spacing--40, 1rem);
    background: var(--wp--preset--color--off-white, #f8f9fa);
    border-radius: 8px;
}

.gdt-extensions-intro {
    margin-bottom: var(--wp--preset--spacing--40, 1rem);
    color: var(--wp--preset--color--gray, #666);
}

.gdt-extension-card {
    border: 1px solid var(--wp--preset--color--light-gray, #ddd);
    border-radius: 8px;
    margin-bottom: 1rem;
    overflow: hidden;
    background: white;
    transition: all 0.2s ease;
}

.gdt-extension-card:hover {
    border-color: var(--wp--preset--color--primary-blue, #10218b);
}

.gdt-extension-card.selected {
    border-color: var(--wp--preset--color--green, #7fc41c);
    background: var(--wp--preset--color--light-green-bg, #f4f9f0);
}

.gdt-extension-header {
    display: flex;
    align-items: flex-start;
    padding: 1rem;
    cursor: pointer;
    gap: 1rem;
}

.gdt-extension-header input[type="checkbox"] {
    margin-top: 0.25rem;
    width: 20px;
    height: 20px;
    accent-color: var(--wp--preset--color--green, #7fc41c);
}

.gdt-extension-info {
    display: flex;
    gap: 1rem;
    flex: 1;
}

.gdt-extension-image {
    width: 80px;
    flex-shrink: 0;
}

.gdt-extension-image img {
    width: 100%;
    height: auto;
    border-radius: 4px;
    object-fit: cover;
}

.gdt-extension-details h4 {
    margin: 0 0 0.25rem;
    font-size: 1rem;
    color: var(--wp--preset--color--primary-blue, #10218b);
}

.gdt-extension-meta {
    font-size: var(--wp--preset--font-size--small, 0.875rem);
    color: var(--wp--preset--color--gray, #666);
    margin: 0;
}

.gdt-extension-meta span {
    display: inline-block;
    margin-right: 1rem;
}

.gdt-extension-price {
    color: var(--wp--preset--color--primary-blue, #10218b);
    font-weight: 500;
}

.gdt-extension-collapse {
    border-top: 1px solid var(--wp--preset--color--light-gray, #eee);
    padding: 0 1rem;
}

.gdt-extension-toggle {
    background: none;
    border: none;
    color: var(--wp--preset--color--primary-blue, #10218b);
    padding: 0.75rem 0;
    cursor: pointer;
    font-size: var(--wp--preset--font-size--small, 0.875rem);
    font-family: inherit;
}

.gdt-extension-toggle:hover {
    text-decoration: underline;
}

.gdt-extension-content {
    padding-bottom: 1rem;
    font-size: var(--wp--preset--font-size--small, 0.875rem);
}

.gdt-extension-highlights {
    margin: 0 0 1rem;
    padding-left: 1.25rem;
}

.gdt-extension-highlights li {
    margin-bottom: 0.25rem;
}

.gdt-extension-link {
    color: var(--wp--preset--color--primary-blue, #10218b);
    font-weight: 500;
}

/* ========================================
   Price Sidebar
   ======================================== */

.gdt-price-sidebar {
    background: white;
    border: 1px solid var(--wp--preset--color--light-gray, #e9ecef);
    border-radius: 12px;
    padding: var(--wp--preset--spacing--50, 1.5rem);
    position: sticky;
    top: 100px;
}

.gdt-price-header {
    text-align: center;
    margin-bottom: var(--wp--preset--spacing--40, 1rem);
    padding-bottom: var(--wp--preset--spacing--40, 1rem);
    border-bottom: 1px solid var(--wp--preset--color--light-gray, #e9ecef);
}

.gdt-price-label {
    display: block;
    font-size: var(--wp--preset--font-size--small, 0.875rem);
    color: var(--wp--preset--color--gray, #666);
    margin-bottom: 0.25rem;
}

.gdt-price-amount {
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--wp--preset--color--primary-blue, #10218b);
    font-family: var(--wp--preset--font-family--headings, Georgia, serif);
}

.gdt-price-details {
    margin-bottom: var(--wp--preset--spacing--40, 1rem);
}

.gdt-price-row {
    display: flex;
    justify-content: space-between;
    padding: 0.5rem 0;
    font-size: var(--wp--preset--font-size--small, 0.875rem);
}

.gdt-price-row span:first-child {
    color: var(--wp--preset--color--gray, #666);
}

.gdt-price-divider {
    height: 1px;
    background: var(--wp--preset--color--light-gray, #e9ecef);
    margin: 0.5rem 0;
}

.gdt-price-total {
    font-weight: 600;
    font-size: 1rem;
}

.gdt-price-total span:last-child {
    color: var(--wp--preset--color--primary-blue, #10218b);
}

.gdt-price-discount {
    color: var(--wp--preset--color--green, #7fc41c) !important;
}

.gdt-price-notice {
    text-align: center;
    color: var(--wp--preset--color--gray, #999);
    font-size: 0.75rem;
    margin-bottom: var(--wp--preset--spacing--40, 1rem);
    padding-top: var(--wp--preset--spacing--30, 0.75rem);
    border-top: 1px solid var(--wp--preset--color--light-gray, #e9ecef);
}

.gdt-sidebar-tour-info {
    display: flex;
    gap: 0.75rem;
    padding: var(--wp--preset--spacing--40, 1rem);
    background: var(--wp--preset--color--off-white, #f8f9fa);
    border-radius: 8px;
    margin-bottom: var(--wp--preset--spacing--40, 1rem);
}

.gdt-sidebar-tour-image {
    width: 60px;
    flex-shrink: 0;
}

.gdt-sidebar-tour-image img {
    width: 100%;
    height: auto;
    border-radius: 4px;
}

.gdt-sidebar-tour-details {
    font-size: var(--wp--preset--font-size--small, 0.875rem);
}

.gdt-sidebar-tour-details strong {
    display: block;
    margin-bottom: 0.25rem;
    color: var(--wp--preset--color--dark, #333);
}

.gdt-sidebar-tour-details span {
    color: var(--wp--preset--color--gray, #666);
}

.gdt-sidebar-contact {
    text-align: center;
    padding-top: var(--wp--preset--spacing--40, 1rem);
    border-top: 1px solid var(--wp--preset--color--light-gray, #e9ecef);
    font-size: var(--wp--preset--font-size--small, 0.875rem);
}

.gdt-sidebar-contact p {
    margin: 0.25rem 0;
}

.gdt-sidebar-contact a {
    color: var(--wp--preset--color--primary-blue, #10218b);
    text-decoration: none;
}

.gdt-sidebar-contact a:hover {
    text-decoration: underline;
}

/* ========================================
   Account Section
   ======================================== */

.gdt-account-section {
    margin-bottom: var(--wp--preset--spacing--50, 1.5rem);
}

.gdt-account-options {
    display: flex;
    flex-direction: column;
    gap: var(--wp--preset--spacing--30, 0.75rem);
}

.gdt-account-option {
    display: block;
    cursor: pointer;
}

.gdt-account-option input {
    display: none;
}

.gdt-account-content {
    display: flex;
    align-items: flex-start;
    gap: var(--wp--preset--spacing--40, 1rem);
    padding: var(--wp--preset--spacing--40, 1rem);
    border: 2px solid var(--wp--preset--color--light-gray, #ddd);
    border-radius: 8px;
    transition: all 0.2s ease;
}

.gdt-account-option:hover .gdt-account-content {
    border-color: var(--wp--preset--color--primary-blue, #10218b);
}

.gdt-account-option.selected .gdt-account-content,
.gdt-account-option input:checked + .gdt-account-content {
    border-color: var(--wp--preset--color--primary-blue, #10218b);
    background-color: var(--wp--preset--color--off-white, #f8f9fa);
}

.gdt-account-icon {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--wp--preset--color--light-gray, #e9ecef);
    border-radius: 50%;
    color: var(--wp--preset--color--primary-blue, #10218b);
}

.gdt-account-option.selected .gdt-account-icon,
.gdt-account-option input:checked + .gdt-account-content .gdt-account-icon {
    background: var(--wp--preset--color--primary-blue, #10218b);
    color: white;
}

.gdt-account-info {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.gdt-account-info strong {
    font-size: 1rem;
}

.gdt-account-info small {
    color: var(--wp--preset--color--gray, #666);
    font-size: 0.875rem;
}

.gdt-account-badge {
    display: inline-block;
    padding: 0.125rem 0.5rem;
    background: var(--wp--preset--color--green, #7fc41c);
    color: white;
    font-size: 0.75rem;
    font-weight: 600;
    border-radius: 4px;
    margin-top: 0.25rem;
    width: fit-content;
}

/* Login Form */
.gdt-login-form,
.gdt-register-fields {
    margin-top: var(--wp--preset--spacing--40, 1rem);
    padding: var(--wp--preset--spacing--40, 1rem);
    background: var(--wp--preset--color--off-white, #f8f9fa);
    border-radius: 8px;
}

.gdt-login-actions {
    display: flex;
    align-items: center;
    gap: var(--wp--preset--spacing--40, 1rem);
    margin-top: var(--wp--preset--spacing--30, 0.75rem);
}

.gdt-forgot-password {
    font-size: 0.875rem;
    color: var(--wp--preset--color--primary-blue, #10218b);
}

.gdt-login-message {
    margin-top: var(--wp--preset--spacing--30, 0.75rem);
    padding: 0.5rem;
    border-radius: 4px;
}

.gdt-login-message:empty {
    display: none;
}

.gdt-login-message.success {
    background: var(--wp--preset--color--light-green-bg, #f4f9f0);
    color: var(--wp--preset--color--green, #4a7c0f);
}

.gdt-login-message.error {
    background: #fff5f5;
    color: var(--wp--preset--color--warm-orange, #e67e22);
}

.gdt-register-hint {
    margin: 0 0 var(--wp--preset--spacing--40, 1rem);
    font-size: 0.875rem;
    color: var(--wp--preset--color--gray, #666);
}

.gdt-register-fields h4 {
    margin: 0 0 var(--wp--preset--spacing--30, 0.75rem);
    font-size: 1rem;
    color: var(--wp--preset--color--primary-blue, #10218b);
}

/* Register Notice in Step 2 */
.gdt-register-notice {
    margin-top: var(--wp--preset--spacing--40, 1rem);
}

.gdt-notice {
    padding: var(--wp--preset--spacing--40, 1rem);
    border-radius: 8px;
}

.gdt-notice-info {
    background: var(--wp--preset--color--light-green-bg, #f4f9f0);
    border-left: 4px solid var(--wp--preset--color--green, #7fc41c);
}

.gdt-notice p {
    margin: 0;
    font-size: 0.9375rem;
}

/* Step Intro Text */
.gdt-step-intro {
    margin-bottom: var(--wp--preset--spacing--40, 1rem);
    color: var(--wp--preset--color--gray, #666);
}

/* Logged In State (Step 2) */
.gdt-logged-in-text {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.gdt-logged-in-text small {
    color: var(--wp--preset--color--gray, #666);
}

/* Logged In State */
.gdt-logged-in-info {
    display: flex;
    align-items: center;
    gap: var(--wp--preset--spacing--30, 0.75rem);
    padding: var(--wp--preset--spacing--40, 1rem);
    background: var(--wp--preset--color--light-green-bg, #f4f9f0);
    border-radius: 8px;
}

.gdt-logged-in-icon {
    color: var(--wp--preset--color--green, #7fc41c);
}

.gdt-logout-link {
    margin-left: auto;
    font-size: 0.875rem;
    color: var(--wp--preset--color--gray, #666);
}

/* ========================================
   Summary
   ======================================== */

.gdt-summary-section {
    margin-bottom: var(--wp--preset--spacing--50, 1.5rem);
    padding-bottom: var(--wp--preset--spacing--40, 1rem);
    border-bottom: 1px solid var(--wp--preset--color--light-gray, #e9ecef);
}

.gdt-summary-section:last-child {
    border-bottom: none;
}

.gdt-summary-section h3 {
    font-size: 1rem;
    margin: 0 0 0.75rem;
    color: var(--wp--preset--color--primary-blue, #10218b);
    font-family: var(--wp--preset--font-family--headings, Georgia, serif);
}

.gdt-summary-tour strong {
    display: block;
    margin-bottom: 0.25rem;
}

.gdt-summary-date {
    color: var(--wp--preset--color--gray, #666);
    font-size: var(--wp--preset--font-size--small, 0.875rem);
}

.gdt-summary-participant {
    padding: 0.5rem 0;
    border-bottom: 1px dashed var(--wp--preset--color--light-gray, #eee);
}

.gdt-summary-participant:last-child {
    border-bottom: none;
}

.gdt-summary-participant small {
    color: var(--wp--preset--color--gray, #666);
}

/* ========================================
   Coupon
   ======================================== */

.gdt-coupon-form {
    display: flex;
    gap: 0.5rem;
}

.gdt-coupon-form .gdt-input {
    flex: 1;
}

.gdt-coupon-message {
    margin-top: 0.5rem;
    font-size: var(--wp--preset--font-size--small, 0.875rem);
    padding: 0.5rem;
    border-radius: 4px;
}

.gdt-coupon-message.gdt-success {
    background: var(--wp--preset--color--light-green-bg, #f4f9f0);
    color: var(--wp--preset--color--green, #4a7c0f);
}

.gdt-coupon-message.gdt-error {
    background: #fff5f5;
    color: var(--wp--preset--color--warm-orange, #e67e22);
}

.gdt-success-icon {
    color: var(--wp--preset--color--green, #7fc41c);
    font-weight: bold;
    margin-right: 0.25rem;
}

/* ========================================
   Action Buttons
   ======================================== */

.gdt-summary-actions {
    margin-top: var(--wp--preset--spacing--50, 1.5rem);
    text-align: center;
}

.gdt-action-question {
    margin-bottom: var(--wp--preset--spacing--40, 1rem);
    color: var(--wp--preset--color--gray, #666);
}

.gdt-action-buttons {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

@media (min-width: 35rem) {
    .gdt-action-buttons {
        flex-direction: row;
        justify-content: center;
    }
}

/* ========================================
   Inquiry Form
   ======================================== */

.gdt-inquiry-form {
    margin-top: var(--wp--preset--spacing--60, 2rem);
    padding-top: var(--wp--preset--spacing--50, 1.5rem);
    border-top: 1px solid var(--wp--preset--color--light-gray, #e9ecef);
}

.gdt-inquiry-form h3 {
    margin: 0 0 1rem;
    color: var(--wp--preset--color--primary-blue, #10218b);
}

.gdt-checkbox-group label {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    font-size: var(--wp--preset--font-size--small, 0.875rem);
    cursor: pointer;
}

.gdt-checkbox-group input[type="checkbox"] {
    margin-top: 0.25rem;
}

/* ========================================
   Terms Notice
   ======================================== */

.gdt-terms-notice {
    margin-top: var(--wp--preset--spacing--50, 1.5rem);
    padding: var(--wp--preset--spacing--40, 1rem);
    background: var(--wp--preset--color--off-white, #f8f9fa);
    border-radius: 8px;
    font-size: var(--wp--preset--font-size--small, 0.875rem);
    color: var(--wp--preset--color--gray, #666);
}

.gdt-terms-notice a {
    color: var(--wp--preset--color--primary-blue, #10218b);
}

/* ========================================
   Navigation
   ======================================== */

.gdt-booking-navigation {
    display: flex;
    justify-content: space-between;
    margin-top: var(--wp--preset--spacing--60, 2rem);
    padding-top: var(--wp--preset--spacing--50, 1.5rem);
    border-top: 1px solid var(--wp--preset--color--light-gray, #e9ecef);
}

/* ========================================
   Buttons
   ======================================== */

.gdt-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.875rem 1.5rem;
    border-radius: 6px;
    font-size: 1rem;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    transition: all 0.2s ease;
    border: 2px solid transparent;
    text-decoration: none;
    min-width: 140px;
}

.gdt-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.gdt-btn-primary {
    background: var(--wp--preset--color--green, #7fc41c);
    color: white;
    border-color: var(--wp--preset--color--green, #7fc41c);
}

.gdt-btn-primary:hover:not(:disabled) {
    background: #6aa717;
    border-color: #6aa717;
}

.gdt-btn-secondary {
    background: white;
    color: var(--wp--preset--color--primary-blue, #10218b);
    border-color: var(--wp--preset--color--primary-blue, #10218b);
}

.gdt-btn-secondary:hover:not(:disabled) {
    background: var(--wp--preset--color--primary-blue, #10218b);
    color: white;
}

.gdt-btn-full {
    width: 100%;
}

.gdt-btn.gdt-loading {
    position: relative;
    color: transparent;
}

.gdt-btn.gdt-loading::after {
    content: '';
    position: absolute;
    width: 20px;
    height: 20px;
    border: 2px solid currentColor;
    border-top-color: transparent;
    border-radius: 50%;
    animation: gdt-spin 0.8s linear infinite;
}

.gdt-btn-primary.gdt-loading::after {
    border-color: white;
    border-top-color: transparent;
}

@keyframes gdt-spin {
    to {
        transform: rotate(360deg);
    }
}

/* ========================================
   Toast Notifications
   ======================================== */

.gdt-toast {
    position: fixed;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%) translateY(100px);
    padding: 1rem 1.5rem;
    border-radius: 8px;
    font-size: var(--wp--preset--font-size--small, 0.875rem);
    font-weight: 500;
    z-index: 10000;
    opacity: 0;
    transition: all 0.3s ease;
    max-width: 90%;
}

.gdt-toast-show {
    transform: translateX(-50%) translateY(0);
    opacity: 1;
}

.gdt-toast-error {
    background: #e53e3e;
    color: white;
}

.gdt-toast-success {
    background: var(--wp--preset--color--green, #7fc41c);
    color: white;
}

.gdt-toast-info {
    background: var(--wp--preset--color--primary-blue, #10218b);
    color: white;
}

/* ========================================
   Mobile Adjustments
   ======================================== */

@media (max-width: 60rem) {
    .gdt-booking-sidebar {
        order: -1;
        position: static;
    }

    .gdt-price-sidebar {
        position: static;
    }
}

@media (max-width: 35rem) {
    .gdt-booking-wizard {
        padding: var(--wp--preset--spacing--30, 0.75rem);
    }

    .gdt-booking-tour-header {
        flex-direction: column;
    }

    .gdt-booking-tour-image {
        width: 100%;
        max-width: 200px;
    }

    .gdt-btn {
        width: 100%;
    }

    .gdt-booking-navigation {
        flex-direction: column;
        gap: 0.75rem;
    }
}

/* ========================================
   Payment Options
   ======================================== */

.gdt-payment-options {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.gdt-payment-option {
    display: block;
    padding: 1rem 1.25rem;
    border: 2px solid var(--wp--preset--color--light-gray, #ddd);
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.2s ease;
    background: white;
}

.gdt-payment-option:hover {
    border-color: var(--wp--preset--color--primary-blue, #10218b);
}

.gdt-payment-option.selected {
    border-color: var(--wp--preset--color--green, #7fc41c);
    background: var(--wp--preset--color--light-green-bg, #f4f9f0);
}

.gdt-payment-option input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.gdt-payment-content {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}

.gdt-payment-icon {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--wp--preset--color--off-white, #f8f9fa);
    border-radius: 8px;
    color: var(--wp--preset--color--primary-blue, #10218b);
}

.gdt-payment-option.selected .gdt-payment-icon {
    background: var(--wp--preset--color--green, #7fc41c);
    color: white;
}

.gdt-payment-info {
    flex: 1;
}

.gdt-payment-info strong {
    display: block;
    margin-bottom: 0.25rem;
    color: var(--wp--preset--color--dark, #333);
}

.gdt-payment-info small {
    color: var(--wp--preset--color--gray, #666);
    font-size: 0.8125rem;
}

/* ========================================
   Terms Checkbox
   ======================================== */

.gdt-terms-section {
    background: var(--wp--preset--color--off-white, #f8f9fa);
    border-radius: 8px;
    padding: var(--wp--preset--spacing--40, 1rem);
    margin-top: var(--wp--preset--spacing--40, 1rem);
    border-bottom: none !important;
}

.gdt-checkbox-label {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    cursor: pointer;
}

.gdt-checkbox-label input[type="checkbox"] {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    margin-top: 0.125rem;
    accent-color: var(--wp--preset--color--green, #7fc41c);
}

.gdt-checkbox-text {
    font-size: var(--wp--preset--font-size--small, 0.875rem);
    color: var(--wp--preset--color--dark, #333);
    line-height: 1.5;
}

.gdt-checkbox-text a {
    color: var(--wp--preset--color--primary-blue, #10218b);
}

.gdt-checkbox-text a:hover {
    text-decoration: underline;
}

.gdt-terms-checkbox .gdt-field-error {
    margin-top: 0.5rem;
    margin-left: 28px;
}

/* ========================================
   Checkout Error
   ======================================== */

.gdt-checkout-error {
    background: #fff5f5;
    border: 1px solid var(--wp--preset--color--warm-orange, #e67e22);
    border-radius: 8px;
    padding: 1rem 1.25rem;
    margin-top: var(--wp--preset--spacing--40, 1rem);
    color: var(--wp--preset--color--warm-orange, #c53030);
    text-align: center;
    font-weight: 500;
}

/* ========================================
   Booking Confirmation Page
   ======================================== */

.gdt-booking-confirmation {
    max-width: 800px;
    margin: 0 auto;
    padding: var(--wp--preset--spacing--60, 2rem) var(--wp--preset--spacing--40, 1rem);
}

.gdt-confirmation-header {
    text-align: center;
    margin-bottom: var(--wp--preset--spacing--70, 3rem);
}

.gdt-confirmation-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 80px;
    height: 80px;
    background: var(--wp--preset--color--light-green-bg, #f4f9f0);
    border-radius: 50%;
    margin-bottom: var(--wp--preset--spacing--40, 1rem);
    color: var(--wp--preset--color--green, #7fc41c);
}

.gdt-confirmation-header h1 {
    font-size: var(--wp--preset--font-size--x-large, 2rem);
    color: var(--wp--preset--color--primary-blue, #10218b);
    font-family: var(--wp--preset--font-family--headings, Georgia, serif);
    margin: 0 0 var(--wp--preset--spacing--40, 1rem);
}

.gdt-confirmation-order-number {
    font-size: 1.125rem;
    color: var(--wp--preset--color--dark, #333);
    margin: 0 0 0.5rem;
}

.gdt-confirmation-email-notice {
    color: var(--wp--preset--color--gray, #666);
    font-size: var(--wp--preset--font-size--small, 0.875rem);
    margin: 0;
}

.gdt-confirmation-section {
    margin-bottom: var(--wp--preset--spacing--60, 2rem);
}

.gdt-confirmation-section h2 {
    font-size: 1.25rem;
    color: var(--wp--preset--color--primary-blue, #10218b);
    font-family: var(--wp--preset--font-family--headings, Georgia, serif);
    margin: 0 0 var(--wp--preset--spacing--40, 1rem);
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--wp--preset--color--light-gray, #e9ecef);
}

.gdt-confirmation-card {
    background: var(--wp--preset--color--off-white, #f8f9fa);
    border-radius: 8px;
    padding: var(--wp--preset--spacing--50, 1.5rem);
}

/* Tour Info */
.gdt-confirmation-tour {
    display: flex;
    gap: var(--wp--preset--spacing--40, 1rem);
    align-items: flex-start;
}

.gdt-confirmation-tour-image {
    flex-shrink: 0;
    width: 120px;
}

.gdt-confirmation-tour-image img {
    width: 100%;
    height: auto;
    border-radius: 8px;
    object-fit: cover;
}

.gdt-confirmation-tour-info h3 {
    margin: 0 0 0.5rem;
    font-size: 1.125rem;
    color: var(--wp--preset--color--dark, #333);
}

.gdt-confirmation-date {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--wp--preset--color--gray, #666);
    font-size: var(--wp--preset--font-size--small, 0.875rem);
    margin: 0;
}

.gdt-confirmation-date svg {
    flex-shrink: 0;
}

/* Participants List */
.gdt-participants-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.gdt-participants-list li {
    padding: 0.5rem 0;
    border-bottom: 1px dashed var(--wp--preset--color--light-gray, #ddd);
}

.gdt-participants-list li:last-child {
    border-bottom: none;
}

/* Price Total */
.gdt-price-total {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 1.125rem;
}

.gdt-price-total strong {
    font-size: 1.5rem;
    color: var(--wp--preset--color--primary-blue, #10218b);
}

/* Price Breakdown - Zusatzbuchungen */
.gdt-price-breakdown {
    margin-bottom: var(--wp--preset--spacing--40, 1rem);
    padding-bottom: var(--wp--preset--spacing--40, 1rem);
    border-bottom: 1px solid var(--wp--preset--color--light-gray, #e9ecef);
}

/* Kein doppelter Border wenn innerhalb einer Summary-Section */
.gdt-summary-section .gdt-price-breakdown {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.gdt-price-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.375rem 0;
    font-size: var(--wp--preset--font-size--small, 0.875rem);
}

.gdt-price-addon {
    color: var(--wp--preset--color--primary-blue, #10218b);
}

/* View Order Table - Zusatzbuchungen */
.gdt-order-details-table .gdt-price-item th,
.gdt-order-details-table .gdt-price-addon-row th {
    font-weight: normal;
}

.gdt-order-details-table .gdt-price-item td,
.gdt-order-details-table .gdt-price-addon-row td {
    text-align: right;
}

.gdt-order-details-table .gdt-price-addon-row {
    color: var(--wp--preset--color--primary-blue, #10218b);
    font-size: 0.95em;
}

.gdt-order-details-table .gdt-price-addon-row td {
    color: var(--wp--preset--color--primary-blue, #10218b);
}

/* Confirmation Price Table */
.gdt-price-table {
    width: 100%;
    border-collapse: collapse;
}

.gdt-price-table th,
.gdt-price-table td {
    padding: 0.5rem 0;
    border-bottom: 1px solid var(--wp--preset--color--light-gray, #e9ecef);
}

.gdt-price-table th {
    text-align: left;
    font-weight: normal;
}

.gdt-price-table td {
    text-align: right;
}

.gdt-price-table .gdt-price-addon-row {
    color: var(--wp--preset--color--primary-blue, #10218b);
}

.gdt-price-table .gdt-price-total-row th,
.gdt-price-table .gdt-price-total-row td {
    border-bottom: none;
    padding-top: 0.75rem;
    font-size: 1.125rem;
}

.gdt-price-table .gdt-price-total-row td {
    font-size: 1.5rem;
    font-weight: bold;
    color: var(--wp--preset--color--primary-blue, #10218b);
}

/* Payment Card */
.gdt-payment-card {
    background: white;
    border: 2px solid var(--wp--preset--color--green, #7fc41c);
}

.gdt-payment-intro {
    margin: 0 0 var(--wp--preset--spacing--40, 1rem);
}

.gdt-bank-details {
    background: var(--wp--preset--color--off-white, #f8f9fa);
    border-radius: 8px;
    padding: var(--wp--preset--spacing--40, 1rem);
    margin-bottom: var(--wp--preset--spacing--40, 1rem);
}

.gdt-bank-row {
    display: flex;
    padding: 0.5rem 0;
    border-bottom: 1px solid var(--wp--preset--color--light-gray, #e9ecef);
}

.gdt-bank-row:last-child {
    border-bottom: none;
}

.gdt-bank-label {
    flex: 0 0 120px;
    color: var(--wp--preset--color--gray, #666);
    font-size: var(--wp--preset--font-size--small, 0.875rem);
}

.gdt-bank-value {
    flex: 1;
    font-weight: 500;
    color: var(--wp--preset--color--dark, #333);
}

.gdt-bank-iban {
    font-family: monospace;
    letter-spacing: 0.5px;
}

.gdt-payment-reference {
    text-align: center;
    padding-top: var(--wp--preset--spacing--40, 1rem);
    border-top: 1px dashed var(--wp--preset--color--light-gray, #ddd);
}

.gdt-payment-reference code {
    display: inline-block;
    background: var(--wp--preset--color--off-white, #f8f9fa);
    padding: 0.25rem 0.75rem;
    border-radius: 4px;
    font-family: monospace;
    font-weight: 600;
}

/* Next Steps */
.gdt-next-steps {
    margin: 0;
    padding-left: 1.5rem;
}

.gdt-next-steps li {
    margin-bottom: var(--wp--preset--spacing--40, 1rem);
}

.gdt-next-steps li:last-child {
    margin-bottom: 0;
}

.gdt-next-steps strong {
    display: block;
    color: var(--wp--preset--color--primary-blue, #10218b);
    margin-bottom: 0.25rem;
}

.gdt-next-steps p {
    margin: 0;
    color: var(--wp--preset--color--gray, #666);
    font-size: var(--wp--preset--font-size--small, 0.875rem);
}

/* Contact Card */
.gdt-contact-card {
    text-align: center;
    background: var(--wp--preset--color--light-green-bg, #f4f9f0);
}

.gdt-contact-card p {
    margin: 0;
}

.gdt-contact-card a {
    color: var(--wp--preset--color--primary-blue, #10218b);
}

/* Actions */
.gdt-confirmation-actions {
    text-align: center;
    margin-top: var(--wp--preset--spacing--60, 2rem);
    padding-top: var(--wp--preset--spacing--60, 2rem);
    border-top: 1px solid var(--wp--preset--color--light-gray, #e9ecef);
}

/* Mobile Adjustments */
@media (max-width: 35rem) {
    .gdt-confirmation-tour {
        flex-direction: column;
    }

    .gdt-confirmation-tour-image {
        width: 100%;
        max-width: 200px;
    }

    .gdt-bank-row {
        flex-direction: column;
        gap: 0.25rem;
    }

    .gdt-bank-label {
        flex: none;
    }
}

/* ========================================
   Inquiry Success
   ======================================== */

.gdt-inquiry-success {
    text-align: center;
    padding: var(--wp--preset--spacing--80, 4rem) var(--wp--preset--spacing--50, 1.5rem);
    max-width: 500px;
    margin: 0 auto;
}

.gdt-inquiry-success .gdt-success-icon {
    margin-bottom: var(--wp--preset--spacing--50, 1.5rem);
}

.gdt-inquiry-success .gdt-success-icon svg {
    display: inline-block;
}

.gdt-inquiry-success h2 {
    color: var(--wp--preset--color--primary-blue, #10218b);
    margin-bottom: var(--wp--preset--spacing--40, 1rem);
    font-family: var(--wp--preset--font-family--headings, Georgia, serif);
}

.gdt-inquiry-success p {
    color: var(--wp--preset--color--gray, #666);
    margin-bottom: var(--wp--preset--spacing--60, 2rem);
    line-height: 1.6;
}

.gdt-success-actions {
    display: flex;
    gap: var(--wp--preset--spacing--40, 1rem);
    justify-content: center;
    flex-wrap: wrap;
}

.gdt-success-actions .gdt-btn {
    min-width: 180px;
}

/* ========================================
   Deposit/Anzahlung Styling
   ======================================== */

.gdt-price-deposit {
    margin-top: var(--wp--preset--spacing--40, 1rem);
    padding-top: var(--wp--preset--spacing--40, 1rem);
    border-top: 1px solid var(--wp--preset--color--light-gray, #e9ecef);
}

.gdt-deposit-split {
    display: flex;
    flex-direction: column;
    gap: var(--wp--preset--spacing--30, 0.75rem);
}

.gdt-deposit-now {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--wp--preset--spacing--30, 0.75rem);
    background: var(--wp--preset--color--light-green-bg, #f4f9f0);
    border-radius: 6px;
    font-weight: 600;
}

.gdt-deposit-now .gdt-deposit-amount {
    font-size: 1.25rem;
    color: var(--wp--preset--color--green, #7fc41c);
}

.gdt-deposit-later {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    padding: var(--wp--preset--spacing--20, 0.5rem) var(--wp--preset--spacing--30, 0.75rem);
    color: var(--wp--preset--color--gray, #666);
    font-size: 0.9rem;
}

.gdt-deposit-date {
    width: 100%;
    font-size: 0.8rem;
    text-align: right;
    margin-top: var(--wp--preset--spacing--20, 0.5rem);
}

.gdt-deposit-notice {
    display: flex;
    gap: var(--wp--preset--spacing--30, 0.75rem);
    padding: var(--wp--preset--spacing--30, 0.75rem);
    background: #fff3cd;
    border: 1px solid #ffc107;
    border-radius: 6px;
    font-size: 0.85rem;
    color: #856404;
    line-height: 1.4;
}

.gdt-deposit-notice svg {
    flex-shrink: 0;
    margin-top: 2px;
}

/* Summary Deposit Rows */
.gdt-price-deposit-now {
    background: var(--wp--preset--color--light-green-bg, #f4f9f0);
    padding: var(--wp--preset--spacing--30, 0.75rem);
    margin: var(--wp--preset--spacing--30, 0.75rem) 0;
    border-radius: 6px;
}

.gdt-price-deposit-remaining {
    font-size: 0.9rem;
    color: var(--wp--preset--color--gray, #666);
}

.gdt-deposit-notice-summary {
    margin-top: var(--wp--preset--spacing--40, 1rem);
}

/* Confirmation Page Deposit */
.gdt-confirmation-deposit {
    margin-top: var(--wp--preset--spacing--40, 1rem);
}

.gdt-deposit-row {
    display: flex;
    justify-content: space-between;
    padding: 0.5rem 0;
}

.gdt-deposit-row.gdt-deposit-now-row {
    background: var(--wp--preset--color--light-green-bg, #f4f9f0);
    padding: var(--wp--preset--spacing--30, 0.75rem);
    margin: var(--wp--preset--spacing--20, 0.5rem) 0;
    border-radius: 6px;
}

.gdt-deposit-amount {
    font-weight: 600;
    color: var(--wp--preset--color--green, #7fc41c);
}

.gdt-remaining-row {
    color: var(--wp--preset--color--gray, #666);
    font-size: 0.9rem;
}

.gdt-full-payment-notice {
    margin-top: var(--wp--preset--spacing--40, 1rem);
}

.gdt-full-payment-notice p {
    display: flex;
    gap: var(--wp--preset--spacing--30, 0.75rem);
    padding: var(--wp--preset--spacing--30, 0.75rem);
    background: #fff3cd;
    border: 1px solid #ffc107;
    border-radius: 6px;
    font-size: 0.85rem;
    color: #856404;
    margin: 0;
}

.gdt-full-payment-notice svg {
    flex-shrink: 0;
}

/* ========================================
   Coupon in Preistabellen
   ======================================== */

.gdt-price-coupon-row th,
.gdt-price-coupon-row td {
    color: var(--wp--preset--color--green, #7fc41c);
}

.gdt-price-coupon-row td {
    text-align: right;
}
