/* Event Tickets Frontend — Sweetwater Hill Theme */
:root {
    --et-primary: #5c6b1f;
    --et-primary-hover: #4a5619;
    --et-primary-light: #6b7a28;
    --et-success: #5c6b1f;
    --et-danger: #a63d2f;
    --et-bg: #f5e6c8;
    --et-bg-light: #faf3e6;
    --et-card: #ffffff;
    --et-text: #3d3225;
    --et-text-light: #7a6e5d;
    --et-text-muted: #9c8e7a;
    --et-border: #ddd0b8;
    --et-border-light: #e8dcc8;
    --et-radius: 6px;
    --et-shadow: 0 2px 8px rgba(61,50,37,.08);
    --et-transition: 150ms ease;
    --et-font: 'Georgia', 'Times New Roman', serif;
    --et-font-body: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

/* Tickets wrapper */
.et-tickets {
    margin: 2rem 0;
    border: 1px solid var(--et-border);
    border-radius: var(--et-radius);
    overflow: hidden;
    font-family: var(--et-font-body);
    background: var(--et-card);
    box-shadow: var(--et-shadow);
}

.et-tickets__heading {
    margin: 0;
    padding: 1rem 1.25rem;
    background: var(--et-bg-light);
    border-bottom: 1px solid var(--et-border-light);
    font-size: 1.2rem;
    font-family: var(--et-font);
    color: var(--et-text);
    letter-spacing: 0.02em;
}

/* Ticket rows */
.et-ticket-row {
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 1rem;
    align-items: center;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--et-border-light);
    transition: background var(--et-transition);
}
.et-ticket-row:last-child { border-bottom: none; }
.et-ticket-row:hover { background: var(--et-bg-light); }
.et-ticket-row--sold-out { opacity: .55; }

.et-ticket-row__title {
    margin: 0 0 .25rem;
    font-size: 1.05rem;
    font-family: var(--et-font);
    color: var(--et-text);
}
.et-ticket-row__desc {
    margin: 0;
    font-size: .85rem;
    color: var(--et-text-light);
}

.et-ticket-row__price {
    font-weight: 600;
    font-size: 1.1rem;
    color: var(--et-text);
}
.et-ticket-row__price--free {
    color: var(--et-success);
    font-style: italic;
}

/* PWYW pricing */
.et-ticket-row__pwyw {
    text-align: right;
}
.et-ticket-row__pwyw-label {
    display: block;
    font-size: .75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--et-primary);
    margin-bottom: .35rem;
}
.et-ticket-row__pwyw-input-wrap {
    display: inline-flex;
    align-items: center;
    border: 2px solid var(--et-primary);
    border-radius: var(--et-radius);
    overflow: hidden;
    background: var(--et-card);
}
.et-ticket-row__currency-symbol {
    padding: .4rem .5rem;
    background: var(--et-bg-light);
    color: var(--et-text);
    font-weight: 600;
    border-right: 1px solid var(--et-border);
}
.et-ticket-row__pwyw-input {
    border: none;
    outline: none;
    padding: .4rem .5rem;
    width: 80px;
    font-size: 1rem;
    font-weight: 600;
    color: var(--et-text);
    -moz-appearance: textfield;
}
.et-ticket-row__pwyw-input::-webkit-inner-spin-button,
.et-ticket-row__pwyw-input::-webkit-outer-spin-button {
    -webkit-appearance: none;
}
.et-ticket-row__pwyw-range {
    display: block;
    font-size: .75rem;
    color: var(--et-text-muted);
    margin-top: .25rem;
}

/* Quantity controls */
.et-ticket-row__stock {
    font-size: .8rem;
    color: var(--et-text-muted);
    margin-right: .5rem;
}
.et-ticket-row__sold-out {
    font-weight: 600;
    color: var(--et-danger);
    font-size: .9rem;
    font-style: italic;
}
.et-ticket-row__qty {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--et-border);
    border-radius: var(--et-radius);
    overflow: hidden;
}
.et-qty-btn {
    width: 36px;
    height: 36px;
    border: none;
    background: var(--et-bg-light);
    cursor: pointer;
    font-size: 1.1rem;
    line-height: 1;
    color: var(--et-text);
    transition: background var(--et-transition);
}
.et-qty-btn:hover { background: var(--et-border-light); }
.et-qty-input {
    width: 40px;
    height: 36px;
    border: none;
    border-left: 1px solid var(--et-border-light);
    border-right: 1px solid var(--et-border-light);
    text-align: center;
    font-size: .95rem;
    font-weight: 600;
    color: var(--et-text);
    background: var(--et-card);
    -moz-appearance: textfield;
}
.et-qty-input::-webkit-inner-spin-button,
.et-qty-input::-webkit-outer-spin-button {
    -webkit-appearance: none;
}

.et-ticket-row__actions {
    display: flex;
    align-items: center;
    gap: .5rem;
}

/* Footer / checkout area */
.et-tickets__footer {
    padding: 1.25rem;
    background: var(--et-bg-light);
    border-top: 1px solid var(--et-border-light);
}
.et-tickets__total {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
    font-size: 1.15rem;
    font-family: var(--et-font);
}
.et-tickets__total-amount {
    font-weight: 700;
    font-size: 1.3rem;
    color: var(--et-text);
}
.et-tickets__buyer-info {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .75rem;
    margin-bottom: 1rem;
}

/* Inputs */
.et-input {
    display: block;
    width: 100%;
    padding: .6rem .75rem;
    border: 1px solid var(--et-border);
    border-radius: var(--et-radius);
    font-size: .95rem;
    color: var(--et-text);
    background: var(--et-card);
    transition: border-color var(--et-transition), box-shadow var(--et-transition);
    box-sizing: border-box;
}
.et-input:focus {
    outline: none;
    border-color: var(--et-primary);
    box-shadow: 0 0 0 3px rgba(92,107,31,.15);
}
.et-input::placeholder {
    color: var(--et-text-muted);
}

/* Buttons */
.et-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .6rem 1.5rem;
    border: none;
    border-radius: var(--et-radius);
    font-size: .95rem;
    font-weight: 600;
    cursor: pointer;
    transition: all var(--et-transition);
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-family: var(--et-font-body);
}
.et-btn--primary {
    background: var(--et-primary);
    color: #fff;
}
.et-btn--primary:hover { background: var(--et-primary-hover); }
.et-btn--primary:disabled { opacity: .5; cursor: not-allowed; }
.et-btn--secondary {
    background: var(--et-border-light);
    color: var(--et-text);
    border: 1px solid var(--et-border);
}
.et-btn--secondary:hover { background: var(--et-border); }
.et-btn--rsvp {
    background: var(--et-primary);
    color: #fff;
}
.et-btn--rsvp:hover { background: var(--et-primary-hover); }
.et-btn--lg { padding: .75rem 2rem; font-size: 1.05rem; }

.et-tickets__actions {
    display: flex;
    gap: .75rem;
}

/* Notices */
.et-tickets__notices,
.et-rsvp__notices,
.et-checkout__notices {
    margin-top: .75rem;
    padding: .5rem .75rem;
    border-radius: var(--et-radius);
    font-size: .9rem;
    display: none;
}
.et-notice--error { display: block; background: #fdf0ee; color: var(--et-danger); border: 1px solid #f0c8c2; }
.et-notice--success { display: block; background: #f0f5e0; color: var(--et-primary); border: 1px solid #d4de9e; }

/* RSVP standalone */
.et-rsvp {
    margin: 2rem 0;
    padding: 1.5rem;
    border: 1px solid var(--et-border);
    border-radius: var(--et-radius);
    background: var(--et-card);
    box-shadow: var(--et-shadow);
}
.et-rsvp__heading {
    margin: 0 0 1rem;
    font-family: var(--et-font);
    color: var(--et-text);
}
.et-rsvp__form { margin-top: 1rem; }
.et-rsvp__form .et-input { margin-bottom: .75rem; }
.et-rsvp__btns { display: flex; gap: .75rem; }
.et-rsvp__spots { font-size: .85rem; color: var(--et-text-muted); }

/* Checkout page */
.et-checkout {
    max-width: 600px;
    margin: 2rem auto;
    font-family: var(--et-font-body);
}
.et-checkout h2,
.et-checkout h3 {
    font-family: var(--et-font);
    color: var(--et-text);
}
.et-checkout__fields { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; margin-bottom: 1rem; }
.et-checkout__gateways { margin-bottom: 1rem; }
.et-checkout__gw-option { display: block; padding: .5rem 0; cursor: pointer; color: var(--et-text); }
.et-checkout__gw-option input { margin-right: .5rem; }

/* Checkout cart items */
.et-checkout__item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: .75rem 0;
    border-bottom: 1px solid var(--et-border-light);
}
.et-checkout__item:last-child { border-bottom: none; }
.et-checkout__item-info strong { display: block; color: var(--et-text); font-family: var(--et-font); }
.et-checkout__item-meta { font-size: .85rem; color: var(--et-text-muted); }
.et-checkout__item-total { font-weight: 600; font-size: 1.05rem; color: var(--et-text); }
.et-checkout__total {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 0;
    border-top: 2px solid var(--et-border);
    font-size: 1.15rem;
    font-family: var(--et-font);
}
.et-checkout__total strong { color: var(--et-text); }
.et-checkout__total span { font-weight: 700; font-size: 1.3rem; }
.et-checkout__edit { font-size: .85rem; margin-left: auto; color: var(--et-primary); text-decoration: none; }
.et-checkout__edit:hover { text-decoration: underline; }
.et-checkout__form h3 { margin: 1.5rem 0 .75rem; }
#et-checkout-card-element {
    padding: .75rem;
    background: var(--et-card);
    border: 1px solid var(--et-border);
    border-radius: var(--et-radius);
    margin-bottom: 1rem;
}

/* Confirmation */
.et-confirmation { max-width: 600px; margin: 2rem auto; font-family: var(--et-font-body); }
.et-confirmation__success { padding: 2rem; background: var(--et-bg-light); border-radius: var(--et-radius); border: 1px solid var(--et-border-light); }
.et-confirmation__success h2 { font-family: var(--et-font); color: var(--et-text); }
.et-confirmation__table { width: 100%; border-collapse: collapse; margin: 1rem 0; }
.et-confirmation__table th,
.et-confirmation__table td { padding: .5rem; text-align: left; border-bottom: 1px solid var(--et-border-light); color: var(--et-text); }
.et-confirmation__note { color: var(--et-text-muted); font-size: .9rem; }

/* Stripe element */
#et-stripe-element { padding: 1.25rem; background: var(--et-bg-light); border-top: 1px solid var(--et-border-light); }
#et-card-element { padding: .75rem; background: var(--et-card); border: 1px solid var(--et-border); border-radius: var(--et-radius); margin-bottom: 1rem; }

/* Responsive */
@media (max-width: 640px) {
    .et-ticket-row { grid-template-columns: 1fr; gap: .5rem; }
    .et-tickets__buyer-info { grid-template-columns: 1fr; }
    .et-checkout__fields { grid-template-columns: 1fr; }
    .et-ticket-row__pwyw { text-align: left; }
    .et-ticket-row__actions { justify-content: flex-start; }
}

/* Checkout page layout */
.et-checkout__cart-section { margin-bottom: 1.5rem; }
.et-checkout__cart-section h3,
.et-checkout__form h3 {
    font-family: var(--et-font);
    color: var(--et-text);
    margin: 1.5rem 0 .75rem;
    font-size: 1.15rem;
}
.et-checkout__field {
    margin-bottom: .75rem;
}
.et-checkout__field label {
    display: block;
    font-size: .85rem;
    font-weight: 600;
    color: var(--et-text);
    margin-bottom: .3rem;
}
.et-checkout__secure {
    font-size: .8rem;
    color: var(--et-text-muted);
    margin-top: .75rem;
    text-align: center;
}

/* Thank You / Confirmation page */
.et-confirmation__success {
    padding: 2.5rem;
    background: var(--et-card);
    border-radius: var(--et-radius);
    border: 1px solid var(--et-border-light);
    text-align: center;
    box-shadow: var(--et-shadow);
}
.et-confirmation__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 60px;
    background: var(--et-primary);
    color: #fff;
    border-radius: 50%;
    font-size: 1.8rem;
    margin-bottom: 1rem;
}
.et-confirmation__success h2 {
    font-family: var(--et-font);
    color: var(--et-text);
    margin: 0 0 .5rem;
}
.et-confirmation__lead {
    font-size: 1.05rem;
    color: var(--et-text-light);
    margin-bottom: 1.5rem;
}
.et-confirmation__meta {
    display: flex;
    justify-content: center;
    gap: 1.5rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
    font-size: .9rem;
    color: var(--et-text-light);
}
.et-confirmation__table {
    width: 100%;
    max-width: 500px;
    margin: 1rem auto;
    border-collapse: collapse;
    text-align: left;
}
.et-confirmation__table th {
    padding: .5rem .75rem;
    border-bottom: 2px solid var(--et-border);
    font-size: .85rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--et-text-muted);
}
.et-confirmation__table td {
    padding: .5rem .75rem;
    border-bottom: 1px solid var(--et-border-light);
    color: var(--et-text);
}
.et-confirmation__table tfoot td {
    border-top: 2px solid var(--et-border);
    border-bottom: none;
    font-size: 1.05rem;
}
.et-confirmation__note {
    color: var(--et-text-muted);
    font-size: .9rem;
    margin: 1.5rem 0;
}
.et-confirmation__not-found {
    text-align: center;
    padding: 2rem;
}
.et-confirmation__not-found h2 {
    font-family: var(--et-font);
    color: var(--et-text);
}

/* Download button on thank you page */
.et-confirmation__download {
    margin: 1.5rem 0;
    text-align: center;
}
.et-confirmation__download .et-btn {
    font-size: 1rem;
    gap: .5rem;
}
