/**
 * Tour Booking — Hawaii v2 (Sesija 5, 2026-05-31).
 *
 * Custom CSS klase (`hawaii-*`) za novi Hawaii booking partial
 * (`_detail_booking_inline_hawaii.php`). Tailwind klase pokrivaju većinu
 * dizajna direktno u markupu, ovaj fajl pokriva specifične paterne koji
 * se ponavljaju i komplikovani su za inline (form fields, payment radio
 * cards, summary card layout, modali).
 *
 * Selektor scope: ne koristi se `.tb-hawaii` wrapper — ovo je novi partial
 * koji kompletno zamenjuje v2, pa nema potrebe za scoping.
 */

/* ============================================================
   STEP INDICATORS
   ============================================================ */
.hawaii-step {
    position: relative;
    width: 205px;
    height: 205px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    transition: all 0.3s;
}

.hawaii-step--active {
    background: #222;
}

.hawaii-step--inactive {
    background: #fff;
    border: 2px solid #e5e5e5;
}

.hawaii-step__num {
    font-family: 'Jost', sans-serif;
    font-weight: 700;
    font-size: 100px;
    line-height: 60px;
    margin-bottom: 8px;
}

.hawaii-step--active .hawaii-step__num {
    color: #d4af37;
}

.hawaii-step--inactive .hawaii-step__num {
    color: #e5e5e5;
}

.hawaii-step__label {
    font-family: 'Jost', sans-serif;
    font-weight: 700;
    font-size: 18px;
    letter-spacing: 1px;
    position: absolute;
    bottom: 50px;
}

.hawaii-step--active .hawaii-step__label {
    color: #fff;
}

.hawaii-step--inactive .hawaii-step__label {
    color: #222;
}

@media (max-width: 768px) {
    .hawaii-step {
        width: 130px;
        height: 130px;
    }
    .hawaii-step__num {
        font-size: 60px;
        line-height: 40px;
    }
    .hawaii-step__label {
        font-size: 14px;
        bottom: 30px;
    }
}

/* ============================================================
   FORM FIELDS — Hawaii pattern (h-40, gray bg, no border)
   ============================================================ */
.hawaii-form {
    background: transparent;
}

.hawaii-field {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.hawaii-field__label {
    color: #222;
    font-family: 'Jost', sans-serif;
    font-weight: 500;
    font-size: 16px;
    letter-spacing: 0.35px;
}

.hawaii-field__req {
    color: #c62828;
    margin-left: 2px;
}

.hawaii-field__input {
    width: 100%;
    height: 40px;
    background: #f5f5f5;
    border: 0;
    border-radius: 0;
    padding: 0 13px;
    color: #222;
    font-family: 'Montserrat', sans-serif;
    font-weight: 500;
    font-size: 14px;
    transition: box-shadow 0.2s;
}

.hawaii-field__input::placeholder {
    color: rgba(34, 34, 34, 0.7);
}

.hawaii-field__input:focus {
    outline: none;
    box-shadow: 0 0 0 2px #d4af37;
}

.hawaii-field__textarea {
    height: auto;
    min-height: 100px;
    padding: 12px 13px;
    resize: vertical;
}

.hawaii-field-error {
    margin-top: 8px;
    padding: 8px 12px;
    background: #fee;
    border-left: 3px solid #c62828;
}

.hawaii-error {
    background: #fee;
    color: #c62828;
    border-left: 3px solid #c62828;
    padding: 12px 16px;
}

/* ============================================================
   PAX STEPPERS (Hawaii pattern)
   ============================================================ */
.hawaii-pax-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    padding: 20px;
    background: #fafafa;
    border: 1px solid #e5e5e5;
}

.hawaii-pax-cell {
    display: flex;
    flex-direction: column;
    gap: 11px;
    flex: 1;
}

.hawaii-pax-label {
    color: #091733;
    font-family: 'Montserrat', sans-serif;
    font-weight: 500;
    font-size: 14px;
}

.hawaii-pax-stepper {
    display: flex;
    align-items: center;
    gap: 21px;
}

.hawaii-pax-btn {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: #222;
    color: #d4af37;
    font-family: 'Montserrat', sans-serif;
    font-weight: 500;
    font-size: 18px;
    letter-spacing: 1px;
    border: 0;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.2s;
    line-height: 1;
}

.hawaii-pax-btn:hover:not(:disabled) {
    opacity: 0.85;
}

.hawaii-pax-btn:disabled {
    background: rgba(34, 34, 34, 0.7);
    cursor: not-allowed;
}

.hawaii-pax-value {
    color: #091733;
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    font-size: 16px;
    letter-spacing: 1px;
    min-width: 16px;
    text-align: center;
}

.hawaii-pax-divider {
    height: 55px;
    width: 1px;
    background: #ddd;
}

@media (max-width: 640px) {
    .hawaii-pax-row {
        flex-direction: column;
        gap: 20px;
    }
    .hawaii-pax-divider {
        width: 100%;
        height: 1px;
    }
}

/* ============================================================
   COLLAPSIBLE (extras, pickup, promo, notes)
   ============================================================ */
.hawaii-collapsible {
    background: #fafafa;
    border: 1px solid #e5e5e5;
}

.hawaii-collapsible__summary {
    list-style: none;
    cursor: pointer;
    padding: 16px 20px;
    display: flex;
    align-items: center;
    gap: 12px;
    color: #222;
    font-family: 'Jost', sans-serif;
    font-weight: 500;
    font-size: 16px;
    letter-spacing: 0.35px;
}

.hawaii-collapsible__summary::-webkit-details-marker {
    display: none;
}

.hawaii-collapsible__icon {
    color: #d4af37;
    font-size: 18px;
}

.hawaii-collapsible__title {
    flex: 1;
}

.hawaii-collapsible__chev {
    color: #888;
    transition: transform 0.2s;
}

.hawaii-collapsible[open] .hawaii-collapsible__chev {
    transform: rotate(180deg);
}

.hawaii-collapsible__body {
    padding: 16px 20px 20px;
    border-top: 1px solid #eee;
}

/* ============================================================
   EXTRAS LIST
   ============================================================ */
.hawaii-extras-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.hawaii-extra {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid #eee;
}

.hawaii-extra:last-child {
    border-bottom: none;
}

.hawaii-extra__label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    cursor: pointer;
    flex: 1;
}

.hawaii-extra__body strong {
    color: #222;
    font-weight: 600;
    display: block;
}

.hawaii-extra__body small {
    color: rgba(34, 34, 34, 0.7);
    font-size: 12px;
    display: block;
    margin-top: 2px;
}

.hawaii-extra__qty {
    display: flex;
    align-items: center;
    gap: 12px;
}

.hawaii-extra__qty-input {
    width: 60px;
    height: 32px;
    background: #f5f5f5;
    border: 0;
    padding: 0 8px;
    text-align: center;
}

.hawaii-extra__price {
    color: #d4af37;
    font-weight: 700;
    font-size: 14px;
    white-space: nowrap;
}

/* ============================================================
   PICKUP CHECKBOX
   ============================================================ */
.hawaii-pickup {
    background: #fafafa;
    border: 1px solid #e5e5e5;
    padding: 16px 20px;
}

.hawaii-pickup__toggle {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    cursor: pointer;
}

.hawaii-pickup__check {
    margin-top: 4px;
}

.hawaii-pickup__body strong {
    color: #222;
    font-weight: 600;
    display: block;
    margin-bottom: 4px;
}

.hawaii-pickup__body strong i {
    color: #d4af37;
    margin-right: 6px;
}

.hawaii-pickup__body small {
    color: rgba(34, 34, 34, 0.7);
    font-size: 13px;
}

.hawaii-pickup__addr {
    margin-top: 16px;
}

.hawaii-pickup__addr.d-none {
    display: none;
}

/* ============================================================
   PROMO CODE
   ============================================================ */
.hawaii-promo {
    display: flex;
    gap: 10px;
    align-items: stretch;
}

.hawaii-promo .hawaii-field__input {
    flex: 1;
}

.hawaii-promo-feedback {
    margin-top: 8px;
    padding: 8px 12px;
    font-size: 13px;
}

.hawaii-promo-feedback.is-success {
    background: #e8f5e9;
    color: #2e7d32;
}

.hawaii-promo-feedback.is-error {
    background: #fee;
    color: #c62828;
}

/* ============================================================
   PAYMENT METHODS — Radio cards (Hawaii style)
   ============================================================ */
.hawaii-pay-methods {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

@media (max-width: 768px) {
    .hawaii-pay-methods {
        grid-template-columns: 1fr;
    }
}

.hawaii-pay-card {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px;
    background: #fafafa;
    border: 2px solid #e5e5e5;
    cursor: pointer;
    transition: all 0.2s;
    position: relative;
}

.hawaii-pay-card:hover {
    border-color: #d4af37;
}

.hawaii-pay-card.is-checked,
.hawaii-pay-card:has(input:checked) {
    border-color: #d4af37;
    background: #fff;
}

.hawaii-pay-card__radio {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.hawaii-pay-card__icon {
    font-size: 32px;
    color: #d4af37;
    line-height: 1;
}

.hawaii-pay-card__body {
    flex: 1;
    min-width: 0;
}

.hawaii-pay-card__title {
    color: #222;
    font-family: 'Jost', sans-serif;
    font-weight: 600;
    font-size: 14px;
    display: block;
    margin-bottom: 2px;
}

.hawaii-pay-card__desc {
    color: rgba(34, 34, 34, 0.7);
    font-size: 12px;
    display: block;
}

.hawaii-pay-card__check {
    color: #d4af37;
    font-size: 18px;
    opacity: 0;
    transition: opacity 0.2s;
}

.hawaii-pay-card.is-checked .hawaii-pay-card__check,
.hawaii-pay-card:has(input:checked) .hawaii-pay-card__check {
    opacity: 1;
}

/* ============================================================
   PAYMENT INFO BLOCKS (bank, card, arrival)
   ============================================================ */
.hawaii-pay-info,
.hawaii-pay-fields {
    background: #fafafa;
    border: 1px solid #e5e5e5;
    padding: 20px;
}

/* ============================================================
   CONSENT (T&C + privacy checkbox)
   ============================================================ */
.hawaii-consent {
    background: #fafafa;
    border: 1px solid #e5e5e5;
    padding: 16px 20px;
}

.hawaii-consent__label {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    cursor: pointer;
}

.hawaii-consent__check {
    margin-top: 4px;
    accent-color: #d4af37;
}

.hawaii-consent__body {
    color: #222;
    font-size: 14px;
    line-height: 22px;
}

.hawaii-consent__link {
    color: #d4af37;
    font-weight: 600;
    text-decoration: underline;
    background: none;
    border: 0;
    padding: 0;
    cursor: pointer;
    font-family: inherit;
    font-size: inherit;
}

.hawaii-consent__link:hover {
    color: #b3941f;
}

/* ============================================================
   BUTTONS — Hawaii Gold gradient + Ghost
   ============================================================ */
.hawaii-btn {
    width: 227px;
    height: 41px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: 'Jost', sans-serif;
    font-weight: 500;
    font-size: 16px;
    letter-spacing: 0.35px;
    cursor: pointer;
    transition: all 0.2s;
    text-transform: uppercase;
    border: none;
    text-decoration: none;
}

.hawaii-btn--ghost {
    border: 1px solid #222;
    background: transparent;
    color: #222;
}

.hawaii-btn--ghost:hover:not(:disabled) {
    background: #222;
    color: #fff;
}

.hawaii-btn--ghost:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.hawaii-btn--gold {
    background: linear-gradient(to right, #9d6321, #e2dc90, #9d6321);
    color: #fff;
    font-weight: 700;
}

.hawaii-btn--gold:hover:not(:disabled) {
    opacity: 0.9;
}

.hawaii-btn--gold-sm {
    height: 40px;
    padding: 0 20px;
    width: auto;
    background: linear-gradient(to right, #9d6321, #e2dc90, #9d6321);
    color: #fff;
    font-weight: 700;
    font-family: 'Jost', sans-serif;
    font-size: 14px;
    letter-spacing: 0.5px;
    border: none;
    cursor: pointer;
    text-transform: uppercase;
}

.hawaii-btn--gold-sm:hover {
    opacity: 0.9;
}

@media (max-width: 768px) {
    .hawaii-btn {
        width: 100%;
    }
}

/* ============================================================
   RIGHT SUMMARY ASIDE — Hawaii booking card
   ============================================================ */
.hawaii-summary {
    width: 533px;
    position: sticky;
    top: 100px;
}

@media (max-width: 1023px) {
    .hawaii-summary {
        width: 100%;
        position: static;
    }
}

.hawaii-summary__card {
    background: #fff;
    box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.2);
}

.hawaii-summary__head {
    padding: 24px 24px 16px;
}

.hawaii-summary__tour {
    color: #222;
    font-family: 'Jost', sans-serif;
    font-weight: 700;
    font-size: 24px;
    line-height: 31px;
    letter-spacing: 0.5px;
    margin: 0;
}

.hawaii-summary__duration {
    color: rgba(34, 34, 34, 0.7);
    font-size: 13px;
    margin: 8px 0 0;
}

.hawaii-summary__meta-row {
    padding: 16px 24px;
    display: flex;
    align-items: center;
    gap: 15px;
    flex-wrap: wrap;
}

@media (max-width: 640px) {
    .hawaii-summary__meta-row {
        flex-direction: column;
        align-items: flex-start;
    }
}

.hawaii-summary__meta-cell {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.hawaii-summary__meta-label {
    color: #d4af37;
    font-weight: 700;
    font-size: 14px;
    line-height: 17px;
    margin: 0;
}

.hawaii-summary__meta-value {
    color: #222;
    font-weight: 400;
    font-size: 14px;
    line-height: 17px;
    margin: 0;
}

.hawaii-summary__meta-note {
    color: #222;
    font-weight: 700;
    font-size: 12px;
    line-height: 17px;
    margin: 0;
}

.hawaii-summary__meta-divider {
    width: 1px;
    height: 35px;
    background: rgba(34, 34, 34, 0.1);
}

@media (max-width: 640px) {
    .hawaii-summary__meta-divider {
        display: none;
    }
}

.hawaii-summary__total-row {
    background: #222;
    padding: 24px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.hawaii-summary__total-label,
.hawaii-summary__total-amount {
    color: #fff;
    font-weight: 600;
    font-size: 24px;
    line-height: 25px;
    letter-spacing: 0.5px;
    margin: 0;
}

.hawaii-summary__total-amount strong {
    font-weight: 700;
}

.hawaii-summary__edit {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 16px;
    color: #666;
    font-size: 14px;
    text-decoration: none;
    transition: color 0.2s;
}

.hawaii-summary__edit:hover {
    color: #d4af37;
}

/* ============================================================
   POLICY MODAL (T&C / Privacy)
   ============================================================ */
.td-policy-modal {
    position: fixed;
    inset: 0;
    z-index: 100;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.td-policy-modal[hidden] {
    display: none !important;
}

.td-policy-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(34, 34, 34, 0.7);
    cursor: pointer;
}

.td-policy-modal__dialog {
    position: relative;
    background: #fff;
    width: 100%;
    max-width: 980px;
    max-height: 90vh;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.td-policy-modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 30px;
    border-bottom: 1px solid #eee;
}

.td-policy-modal__title {
    color: #222;
    font-family: 'Jost', sans-serif;
    font-weight: 600;
    font-size: 24px;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.td-policy-modal__title i {
    color: #d4af37;
}

.td-policy-modal__close {
    background: none;
    border: 0;
    font-size: 20px;
    color: #222;
    cursor: pointer;
    transition: color 0.2s;
}

.td-policy-modal__close:hover {
    color: #d4af37;
}

.td-policy-modal__body {
    padding: 30px;
    overflow-y: auto;
    flex: 1;
    color: #222;
    font-size: 16px;
    line-height: 26px;
}

.td-policy-modal__body p {
    margin-bottom: 15px;
}

.td-policy-modal__body h2{
    margin-bottom: 15px;
    font-weight: 600;
}

.td-policy-modal__body ul {
    margin-bottom: 15px;
    list-style-type: disc;
    padding-left: 20px;
}

.td-policy-modal__body li {
    margin-bottom: 10px;
}

.td-policy-modal__footer {
    padding: 20px 30px;
    border-top: 1px solid #eee;
    display: flex;
    justify-content: flex-end;
}

.td-policy-modal__cta {
    height: 41px;
    padding: 0 32px;
    background: linear-gradient(to right, #9d6321, #e2dc90, #9d6321);
    color: #fff;
    font-family: 'Jost', sans-serif;
    font-weight: 700;
    font-size: 14px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    border: none;
    cursor: pointer;
    transition: opacity 0.2s;
}

.td-policy-modal__cta:hover {
    opacity: 0.9;
}

/* ============================================================
   HCAPTCHA
   ============================================================ */
.hawaii-captcha {
    display: flex;
    justify-content: center;
    padding: 10px 0;
}

/* ============================================================
   UTILITY: hide v2 internal stepper (Hawaii ima sopstvene)
   ============================================================ */
.hawaii-booking-section .td-bk2-stepper[hidden] {
    display: none !important;
}

/* ============================================================
   STEP VISIBILITY — JS toggluje d-none klasu
   ============================================================ */
.td-step.d-none {
    display: none !important;
}

/* ============================================================
   TAILWIND ARBITRARY CLASSES — fallback za klase koje generisani
   `hawaii-tailwind.css` ne uključuje. Tailwind v4 JIT skenira
   samo izvorne HTML fajlove iz `hawaii-template/`, pa nove arbitrary
   klase iz PHP partial-a nisu prisutne. Dok ne re-build-amo,
   ručno definišemo te klase kao plain CSS.

   IMPORTANT: pošto su arbitrary klase escape-ovane (`w-\[205px\]`),
   selektor mora isto biti escape-ovan u CSS fajlu.
   ============================================================ */

/* Hero section */
.h-\[343px\]      { height: 343px; }
.mt-\[143px\]     { margin-top: 143px; }
.max-md\:h-\[230px\] { @media (max-width: 768px) { height: 230px; } }
.max-md\:mt-\[80px\] { @media (max-width: 768px) { margin-top: 80px; } }

@media (max-width: 768px) {
    .max-md\:h-\[230px\] { height: 230px !important; }
    .max-md\:mt-\[80px\] { margin-top: 80px !important; }
}

/* Hero title */
.text-\[45px\]   { font-size: 45px; }
.leading-\[55px\] { line-height: 55px; }
.tracking-\[1px\] { letter-spacing: 1px; }
.text-\[28px\]   { font-size: 28px; }
.leading-\[36px\] { line-height: 36px; }

@media (max-width: 768px) {
    .max-md\:text-\[28px\]   { font-size: 28px !important; }
    .max-md\:leading-\[36px\] { line-height: 36px !important; }
}

/* Hero overlay + container */
.bg-opacity-20 { --tw-bg-opacity: 0.2; background-color: rgba(0, 0, 0, 0.2); }

.max-w-\[1440px\] { max-width: 1440px; }
.px-\[90px\]      { padding-left: 90px; padding-right: 90px; }

@media (max-width: 768px) {
    .max-md\:px-5 { padding-left: 1.25rem !important; padding-right: 1.25rem !important; }
}

/* Step indicators wrap */
.py-\[50px\]   { padding-top: 50px; padding-bottom: 50px; }
.gap-\[100px\] { gap: 100px; }
.gap-\[30px\]  { gap: 30px; }

@media (max-width: 768px) {
    .max-md\:py-\[30px\] { padding-top: 30px !important; padding-bottom: 30px !important; }
}
@media (max-width: 640px) {
    .max-sm\:gap-\[30px\] { gap: 30px !important; }
}

/* Step indicator boxes (Hawaii Korak 1) */
.w-\[205px\]    { width: 205px; }
.h-\[205px\]    { height: 205px; }
.text-\[100px\] { font-size: 100px; }
.leading-\[60px\] { line-height: 60px; }
.text-\[18px\]  { font-size: 18px; }

@media (max-width: 768px) {
    .max-md\:w-\[130px\]    { width: 130px !important; }
    .max-md\:h-\[130px\]    { height: 130px !important; }
    .max-md\:text-\[60px\]  { font-size: 60px !important; }
    .max-md\:leading-\[40px\] { line-height: 40px !important; }
    .max-md\:text-\[14px\]  { font-size: 14px !important; }
    .max-md\:bottom-\[30px\] { bottom: 30px !important; }
}

.bottom-\[50px\] { bottom: 50px; }

/* Form layout grid (1fr_533px) */
.grid-cols-\[1fr_533px\] {
    grid-template-columns: 1fr 533px;
}
.gap-\[80px\] { gap: 80px; }

@media (max-width: 1023px) {
    .max-lg\:grid-cols-\[1fr\]  { grid-template-columns: 1fr !important; }
    .max-lg\:gap-\[40px\]       { gap: 40px !important; }
    .max-lg\:max-w-full         { max-width: 100% !important; }
    .max-lg\:w-auto             { width: auto !important; }
    .max-lg\:flex-col           { flex-direction: column !important; }
}

/* Section padding */
.py-\[60px\] { padding-top: 60px; padding-bottom: 60px; }

@media (max-width: 768px) {
    .max-md\:py-\[40px\] { padding-top: 40px !important; padding-bottom: 40px !important; }
    .max-md\:py-10       { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; }
    .max-md\:flex-col    { flex-direction: column !important; }
    .max-md\:items-start { align-items: flex-start !important; }
    .max-md\:gap-\[15px\] { gap: 15px !important; }
    .max-md\:gap-\[10px\] { gap: 10px !important; }
    .max-md\:gap-\[20px\] { gap: 20px !important; }
    .max-md\:hidden      { display: none !important; }
    .max-md\:w-full      { width: 100% !important; }
    .max-md\:grid-cols-1 { grid-template-columns: 1fr !important; }
}

/* Left form max-width (Hawaii Korak 1) */
.max-w-\[673px\] { max-width: 673px; }

/* Form fields */
.h-\[40px\]   { height: 40px; }
.h-\[41px\]   { height: 41px; }
.h-\[55px\]   { height: 55px; }
.gap-\[5px\]  { gap: 5px; }
.gap-\[7px\]  { gap: 7px; }
.gap-\[10px\] { gap: 10px; }
.gap-\[11px\] { gap: 11px; }
.gap-\[15px\] { gap: 15px; }
.gap-\[20px\] { gap: 20px; }
.gap-\[21px\] { gap: 21px; }
.gap-\[35px\] { gap: 35px; }

@media (max-width: 640px) {
    .max-sm\:grid-cols-1 { grid-template-columns: 1fr !important; }
    .max-sm\:gap-\[20px\] { gap: 20px !important; }
    .max-sm\:gap-\[10px\] { gap: 10px !important; }
    .max-sm\:flex-col { flex-direction: column !important; }
    .max-sm\:items-start { align-items: flex-start !important; }
    .max-sm\:w-full { width: 100% !important; }
    .max-sm\:col-span-1 { grid-column: auto !important; }
    .max-sm\:hidden { display: none !important; }
}

/* Margins */
.mb-\[35px\] { margin-bottom: 35px; }
.mb-\[20px\] { margin-bottom: 20px; }
.mb-\[15px\] { margin-bottom: 15px; }
.mb-\[10px\] { margin-bottom: 10px; }
.mb-\[8px\]  { margin-bottom: 8px; }
.mb-\[2px\]  { margin-bottom: 2px; }
.mb-\[50px\] { margin-bottom: 50px; }
.mt-\[10px\] { margin-top: 10px; }
.mt-\[20px\] { margin-top: 20px; }
.mt-\[16px\] { margin-top: 16px; }
.mt-\[8px\]  { margin-top: 8px; }
.mt-\[3px\]  { margin-top: 3px; }
.ml-\[2px\]  { margin-left: 2px; }
.ml-\[3px\]  { margin-left: 3px; }
.ml-\[4px\]  { margin-left: 4px; }

/* Padding */
.p-\[20px\]    { padding: 20px; }
.p-\[15px\]    { padding: 15px; }
.px-\[13px\]   { padding-left: 13px; padding-right: 13px; }
.px-\[40px\]   { padding-left: 40px; padding-right: 40px; }
.px-\[8px\]    { padding-left: 8px; padding-right: 8px; }
.pl-\[94px\]   { padding-left: 94px; }
.pr-\[13px\]   { padding-right: 13px; }
.pr-\[40px\]   { padding-right: 40px; }

/* Form input bg */
.bg-\[#f5f5f5\] { background-color: #f5f5f5; }
.bg-\[#222\]    { background-color: #222; }
.bg-\[#222222\] { background-color: #222; }
.bg-\[#222222B2\] { background-color: rgba(34, 34, 34, 0.7); }
.bg-\[#fef3cd\] { background-color: #fef3cd; }
.bg-\[#fafafa\] { background-color: #fafafa; }

/* Border colors */
.border-\[#222\]    { border-color: #222; }
.border-\[#d4af37\] { border-color: #d4af37; }
.border-\[#e5e5e5\] { border-color: #e5e5e5; }
.border-\[#eee\]    { border-color: #eee; }
.border-l-\[3px\]   { border-left-width: 3px; }
.border-l-\[#d4af37\] { border-left-color: #d4af37; }

/* Text colors */
.text-\[#222\]    { color: #222; }
.text-\[#d4af37\] { color: #d4af37; }
.text-\[#091733\] { color: #091733; }
.text-\[#666\]    { color: #666; }
.text-\[#fff\]    { color: #fff; }
.text-\[#c62828\] { color: #c62828; }
.text-\[rgba\(34\,34\,34\,0\.9\)\] { color: rgba(34, 34, 34, 0.9); }
.placeholder-\[rgba\(34\,34\,34\,0\.7\)\]::placeholder { color: rgba(34, 34, 34, 0.7); }

/* Text sizing */
.text-\[14px\]   { font-size: 14px; }
.text-\[16px\]   { font-size: 16px; }
.text-\[24px\]   { font-size: 24px; }
.text-\[32px\]   { font-size: 32px; }
.text-\[13px\]   { font-size: 13px; }
.text-\[12px\]   { font-size: 12px; }
.leading-\[26px\] { line-height: 26px; }
.leading-\[31px\] { line-height: 31px; }
.leading-\[40px\] { line-height: 40px; }
.leading-\[32px\] { line-height: 32px; }
.leading-\[25px\] { line-height: 25px; }
.leading-\[22px\] { line-height: 22px; }
.leading-\[20px\] { line-height: 20px; }
.leading-\[18px\] { line-height: 18px; }
.leading-\[17px\] { line-height: 17px; }
.tracking-\[0\.35px\] { letter-spacing: 0.35px; }
.tracking-\[0\.5px\]  { letter-spacing: 0.5px; }

/* Font families */
.font-jost      { font-family: 'Jost', sans-serif; }
.font-montserrat { font-family: 'Montserrat', sans-serif; }

/* Counter buttons (pax steppers) */
.w-\[26px\]    { width: 26px; }
.min-w-\[9px\] { min-width: 9px; }
.w-\[1px\]     { width: 1px; }

/* Phone prefix */
.left-\[12px\]  { left: 12px; }
.right-\[13px\] { right: 13px; }
.w-\[23px\]     { width: 23px; }
.h-\[15px\]     { height: 15px; }
.w-\[19px\]     { width: 19px; }
.h-\[20px\]     { height: 20px; }
.w-\[20px\]     { width: 20px; }

/* Action buttons */
.w-\[227px\] { width: 227px; }

/* Summary card right */
.w-\[533px\] { width: 533px; }
.shadow-\[0px_0px_20px_0px_rgba\(0\,0\,0\,0\.2\)\] {
    box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.2);
}

/* Summary meta */
.gap-\[15px\] { gap: 15px; }

/* Summary divider */
.h-\[35px\]      { height: 35px; }
.bg-\[#2222221A\] { background-color: rgba(34, 34, 34, 0.1); }

/* Step indicator label position */
.absolute { position: absolute; }
.relative { position: relative; }

/* Generic utility */
.appearance-none { appearance: none; -webkit-appearance: none; }
.outline-none { outline: 0; }
.uppercase { text-transform: uppercase; }
.transition { transition-property: color, background-color, border-color, opacity, transform; transition-duration: 200ms; }

.opacity-70 { opacity: 0.7; }

/* Hover */
.hover\:bg-\[#f5f5f5\]:hover { background-color: #f5f5f5; }
.hover\:bg-\[#222\]:hover    { background-color: #222; }
.hover\:text-white:hover     { color: #fff; }
.hover\:opacity-90:hover     { opacity: 0.9; }
.hover\:opacity-85:hover     { opacity: 0.85; }
.hover\:opacity-80:hover     { opacity: 0.8; }

/* Disabled */
.disabled\:cursor-not-allowed:disabled { cursor: not-allowed; }

/* Pointer events */
.pointer-events-none { pointer-events: none; }

/* Translate (used in absolute centered prefix) */
.-translate-y-1\/2 { transform: translateY(-50%); }
.top-1\/2 { top: 50%; }

/* Gold gradient utility (already defined in hawaii.css but ensure scoped) */
.gold-gradient {
    background: linear-gradient(to right, #9d6321, #e2dc90, #9d6321);
}
.bg-gradient-to-r { background-image: linear-gradient(to right, var(--tw-gradient-stops)); }
.from-\[#9d6321\] { --tw-gradient-from: #9d6321; --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(157, 99, 33, 0)); }
.via-\[#e2dc90\]  { --tw-gradient-stops: var(--tw-gradient-from), #e2dc90, var(--tw-gradient-to, rgba(226, 220, 144, 0)); }
.to-\[#9d6321\]   { --tw-gradient-to: #9d6321; }

/* Enhanced gradient (Tailwind v3 mode) */
.bg-gradient-to-r.from-\[#9d6321\].via-\[#e2dc90\].to-\[#9d6321\] {
    background-image: linear-gradient(to right, #9d6321, #e2dc90, #9d6321);
}

/* Border radius */
.rounded-full { border-radius: 9999px; }

/* Display */
.flex { display: flex; }
.grid { display: grid; }
.inline-block { display: inline-block; }
.hidden { display: none; }

/* Flex */
.flex-col { flex-direction: column; }
.flex-shrink-0 { flex-shrink: 0; }
.flex-1 { flex: 1 1 0%; }
.flex-wrap { flex-wrap: wrap; }
.items-center { align-items: center; }
.items-start { align-items: flex-start; }
.items-end { align-items: flex-end; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }

/* Width */
.w-full { width: 100%; }
.w-\[100\%\] { width: 100%; }

/* Inset */
.inset-0 { inset: 0; }
.right-0 { right: 0; }
.right-\[13px\] { right: 13px; }

/* Z */
.z-10 { z-index: 10; }

/* Object */
.object-cover { object-fit: cover; }

/* Overflow */
.overflow-hidden { overflow: hidden; }

/* Padding helpers */
.p-6  { padding: 1.5rem; }
.pb-4 { padding-bottom: 1rem; }
.px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
.py-4 { padding-top: 1rem; padding-bottom: 1rem; }
.py-6 { padding-top: 1.5rem; padding-bottom: 1.5rem; }
.py-16 { padding-top: 4rem; padding-bottom: 4rem; }

/* Background */
.bg-white { background-color: #fff; }
.bg-black { background-color: #000; }
.bg-gray-300 { background-color: #d1d5db; }

/* Border */
.border       { border-width: 1px; }
.border-2     { border-width: 2px; }
.border-solid { border-style: solid; }
.border-0     { border-width: 0; }
.border-l     { border-left-width: 1px; }

/* Cursor */
.cursor-pointer { cursor: pointer; }
.cursor-not-allowed { cursor: not-allowed; }

/* Line-height utilities */
.leading-\[normal\] { line-height: normal; }

/* Font-weight numerics (Tailwind defaults) */
.font-medium   { font-weight: 500; }
.font-semibold { font-weight: 600; }
.font-bold     { font-weight: 700; }
.font-normal   { font-weight: 400; }

/* Text align */
.text-center { text-align: center; }
.text-right  { text-align: right; }

/* Min-width */
.min-w-\[9px\] { min-width: 9px; }
