/* =========================================================
   LJM Rentals v0.8.5
   Front-end plugin UI only.
   IMPORTANT: this file deliberately does NOT style .ljm-hero,
   .ljm-book-hero or any theme-level page components.
   ========================================================= */

.ljm-booking-app {
    width: calc(100% - 64px);
    max-width: 1240px;
    margin: 0 auto;
    padding: 88px 0 110px;
    color: #f4f4f2;
    font-family: inherit;
}

.ljm-booking-app *,
.ljm-booking-app *::before,
.ljm-booking-app *::after {
    box-sizing: border-box;
}

.ljm-booking-heading {
    max-width: 760px;
    margin: 0 0 44px;
}

.ljm-booking-heading h2,
.ljm-booking-subheading h3 {
    margin: 0;
    color: #f4f4f2;
    line-height: .98;
    letter-spacing: -.045em;
}

.ljm-booking-heading h2 {
    font-size: clamp(40px, 4vw, 64px);
}

.ljm-booking-heading p {
    max-width: 680px;
    margin: 20px 0 0;
    color: #8f8f8f;
    font-size: 16px;
    line-height: 1.7;
}

.ljm-booking-app .ljm-step {
    margin: 0 0 14px;
    color: #c9a52f;
    font-size: 11px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: .2em;
    text-transform: uppercase;
}

.ljm-booking-app .ljm-gold-stop {
    color: #c9a52f;
}

/* Plant selector */
.ljm-booking-app .ljm-plant-picker {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    width: 100%;
    margin: 0 0 72px;
}

.ljm-booking-app .ljm-plant-card {
    appearance: none;
    -webkit-appearance: none;
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    min-width: 0;
    min-height: 100%;
    margin: 0;
    padding: 0;
    overflow: hidden;
    text-align: left;
    font: inherit;
    border: 1px solid #242424;
    border-radius: 0;
    background: linear-gradient(145deg, #0d0d0d 0%, #070707 100%);
    color: #fff;
    box-shadow: none;
    cursor: pointer;
    transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}

.ljm-booking-app .ljm-plant-card:hover {
    transform: translateY(-4px);
    border-color: rgba(201, 165, 47, .65);
    box-shadow: 0 20px 50px rgba(0, 0, 0, .28);
}

.ljm-booking-app .ljm-plant-card.is-selected {
    border-color: #c9a52f;
    box-shadow: inset 0 0 0 1px #c9a52f, 0 20px 50px rgba(0, 0, 0, .32);
}

.ljm-booking-app .ljm-plant-card-image {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: #101010;
    border-bottom: 1px solid #202020;
}

.ljm-booking-app .ljm-plant-card-image::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(180deg, transparent 62%, rgba(0,0,0,.18) 100%);
}

.ljm-booking-app .ljm-plant-card-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform .35s ease;
}

.ljm-booking-app .ljm-plant-card:hover .ljm-plant-card-image img {
    transform: scale(1.025);
}

.ljm-booking-app .ljm-plant-no-image {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: #555;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.ljm-booking-app .ljm-plant-card-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 26px;
}

.ljm-booking-app .ljm-plant-category {
    display: block;
    margin: 0 0 11px;
    color: #c9a52f;
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.ljm-booking-app .ljm-plant-card h3 {
    margin: 0 0 12px;
    color: #f5f5f5;
    font-size: 25px;
    font-weight: 700;
    line-height: 1.08;
    letter-spacing: -.035em;
}

.ljm-booking-app .ljm-plant-card p {
    margin: 0 0 24px;
    color: #858585;
    font-size: 14px;
    line-height: 1.65;
}

.ljm-booking-app .ljm-plant-card-footer {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 15px;
    margin-top: auto;
    padding-top: 18px;
    border-top: 1px solid #242424;
}

.ljm-booking-app .ljm-plant-card-footer span {
    color: #707070;
    font-size: 12px;
}

.ljm-booking-app .ljm-plant-card-footer strong {
    color: #fff;
    font-size: 20px;
    font-weight: 700;
}

.ljm-booking-app .ljm-plant-card-footer small {
    color: #777;
    font-size: 11px;
    font-weight: 500;
}

.ljm-booking-app .ljm-select-label {
    display: block;
    width: 100%;
    margin-top: 20px;
    padding: 15px 16px;
    text-align: center;
    background: linear-gradient(110deg, #9c7717, #e5c65b, #a77c17);
    color: #080808;
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.ljm-booking-app .ljm-plant-card.is-selected .ljm-select-label {
    background: #f0f0f0;
    color: #080808;
}

/* Keep the native select for JS/form submission but never show it visually. */
.ljm-booking-app .ljm-native-rental-wrap {
    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;
    white-space: nowrap !important;
    border: 0 !important;
}

/* Booking details */
.ljm-booking-app .ljm-booking-details {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 52px;
    border: 1px solid #242424;
    background: linear-gradient(145deg, #0d0d0d 0%, #080808 100%);
    opacity: .28;
    pointer-events: none;
    transition: opacity .2s ease, border-color .2s ease;
}

.ljm-booking-app .ljm-booking-details.is-ready {
    opacity: 1;
    pointer-events: auto;
    border-color: #2b2b2b;
}

.ljm-booking-app .ljm-booking-subheading {
    margin: 0 0 30px;
}

.ljm-booking-app .ljm-booking-subheading h3 {
    font-size: clamp(32px, 3vw, 46px);
}

.ljm-booking-app .ljm-customer-heading {
    margin-top: 52px;
    padding-top: 46px;
    border-top: 1px solid #292929;
}

.ljm-booking-app .ljm-two {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.ljm-booking-app .ljm-field {
    min-width: 0;
    margin: 0 0 22px;
}

.ljm-booking-app .ljm-field label {
    display: block;
    margin: 0 0 9px;
    color: #aaa;
    font-size: 12px;
    font-weight: 700;
}

.ljm-booking-app .ljm-field input,
.ljm-booking-app .ljm-field select,
.ljm-booking-app .ljm-field textarea {
    box-sizing: border-box;
    width: 100%;
    min-height: 54px;
    margin: 0;
    padding: 15px 16px;
    border: 1px solid #292929;
    border-radius: 0;
    outline: none;
    background: #050505;
    color: #f4f4f4;
    box-shadow: none;
    font: inherit;
    font-size: 14px;
}

.ljm-booking-app .ljm-field textarea {
    min-height: 130px;
    resize: vertical;
}

.ljm-booking-app .ljm-field input:focus,
.ljm-booking-app .ljm-field select:focus,
.ljm-booking-app .ljm-field textarea:focus {
    border-color: #a9892c;
}

.ljm-booking-app input[type="date"] {
    color-scheme: dark;
}

.ljm-booking-app .ljm-check {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 54px;
    margin: 0 0 22px;
    padding: 0 16px;
    border: 1px solid #292929;
    background: #050505;
    color: #aaa;
    font-size: 13px;
}

.ljm-booking-app .ljm-check input {
    width: auto;
    margin: 0;
    accent-color: #c9a52f;
}

.ljm-booking-app .ljm-summary {
    margin: 26px 0;
    padding: 22px 0;
    border-top: 1px solid #292929;
    border-bottom: 1px solid #292929;
}

.ljm-booking-app .ljm-summary > div {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 8px 0;
    color: #8d8d8d;
}

.ljm-booking-app .ljm-summary strong {
    color: #eee;
}

.ljm-booking-app .ljm-summary .ljm-total {
    margin-top: 10px;
    padding-top: 18px;
    border-top: 1px solid #292929;
    color: #f4f4f2;
    font-size: 20px;
}

.ljm-booking-app .ljm-summary .ljm-total strong {
    color: #c9a52f;
    font-size: 23px;
}

.ljm-booking-app .ljm-notice,
.ljm-booking-app .ljm-error {
    margin: 18px 0;
    padding: 14px 16px;
    border: 1px solid #3b3216;
    background: #121006;
    color: #d8c06c;
    font-size: 13px;
    line-height: 1.55;
}

.ljm-booking-app .ljm-error {
    border-color: #553030;
    background: #160909;
    color: #d9a0a0;
}

.ljm-booking-app .ljm-book-submit {
    appearance: none;
    -webkit-appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    margin: 8px 0 0;
    padding: 0 26px;
    border: 1px solid #c9a52f;
    border-radius: 0;
    background: linear-gradient(110deg, #9c7717, #e5c65b, #a77c17);
    color: #080808;
    box-shadow: none;
    font: inherit;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
}

.ljm-booking-app .ljm-book-submit:hover {
    filter: brightness(1.08);
}

/* =========================================================
   LJM CUSTOMER WORKFLOW PAGES — DOCUMENTS + PAYMENT
   ========================================================= */

body.ljm-rentals-documents-page,
body.ljm-rentals-payment-page {
    background: #050505;
    color: #f4f4f2;
}

/* Remove the active theme's generic page title/intro chrome on plugin-owned pages. */
body.ljm-rentals-documents-page main > .entry-header,
body.ljm-rentals-payment-page main > .entry-header,
body.ljm-rentals-documents-page .site-main > .page-header,
body.ljm-rentals-payment-page .site-main > .page-header,
body.ljm-rentals-documents-page article > .entry-header,
body.ljm-rentals-payment-page article > .entry-header,
body.ljm-rentals-documents-page .entry-title,
body.ljm-rentals-payment-page .entry-title {
    display: none !important;
}

/* Undo narrow/default WordPress content wrappers only on these two pages. */
body.ljm-rentals-documents-page .site-main,
body.ljm-rentals-payment-page .site-main,
body.ljm-rentals-documents-page .site-main > article,
body.ljm-rentals-payment-page .site-main > article,
body.ljm-rentals-documents-page .entry-content,
body.ljm-rentals-payment-page .entry-content {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.ljm-workflow-page {
    width: 100%;
    margin: 0;
    padding: 96px max(32px, calc((100vw - 1240px) / 2)) 120px;
    background:
        radial-gradient(circle at 78% 18%, rgba(201,165,47,.06), transparent 28%),
        #050505;
    color: #f4f4f2;
    font-family: inherit;
}

.ljm-workflow-page .ljm-card {
    width: 100%;
    max-width: 1040px;
    margin: 0 auto;
    padding: 54px 58px;
    border: 1px solid #242424;
    border-top: 2px solid #c9a52f;
    border-radius: 0;
    background: linear-gradient(145deg, #0d0d0d 0%, #080808 100%);
    color: #f4f4f2;
    box-shadow: none;
}

.ljm-workflow-page .ljm-step {
    margin: 0 0 12px;
    color: #c9a52f;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.ljm-workflow-page .ljm-card h2 {
    margin: 0 0 18px;
    color: #f4f4f2;
    font-size: clamp(38px, 4vw, 58px);
    line-height: .98;
    letter-spacing: -.045em;
}

.ljm-workflow-page .ljm-card > p {
    max-width: 760px;
    margin: 0 0 28px;
    color: #969696;
    font-size: 14px;
    line-height: 1.75;
}

.ljm-workflow-page .ljm-card > p strong { color: #f4f4f2; }

.ljm-workflow-page .ljm-doc-block {
    padding: 26px 0;
    border-top: 1px solid #242424;
}

.ljm-workflow-page .ljm-doc-block h3 {
    margin: 0 0 13px;
    color: #f4f4f2;
    font-size: 17px;
}

.ljm-workflow-page .ljm-doc-block form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    align-items: stretch;
}

.ljm-workflow-page input[type="file"] {
    box-sizing: border-box;
    width: 100%;
    min-height: 54px;
    padding: 8px;
    border: 1px solid #2a2a2a;
    border-radius: 0;
    background: #050505;
    color: #9b9b9b;
    font: inherit;
    font-size: 13px;
}

.ljm-workflow-page input[type="file"]::file-selector-button {
    min-height: 36px;
    margin-right: 14px;
    padding: 0 16px;
    border: 1px solid #333;
    background: #151515;
    color: #eee;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.ljm-workflow-page .ljm-button {
    appearance: none;
    -webkit-appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 54px;
    padding: 0 24px;
    border: 1px solid #c9a52f;
    border-radius: 0;
    background: linear-gradient(110deg, #9c7717, #e5c65b, #a77c17);
    color: #080808 !important;
    text-decoration: none;
    font: inherit;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
}

.ljm-workflow-page .ljm-muted {
    color: #777;
    font-size: 12px;
}

.ljm-workflow-page .ljm-notice,
.ljm-workflow-page .ljm-error {
    margin: 22px 0 28px;
    padding: 16px 18px;
    border: 1px solid #3b3216;
    background: #121006;
    color: #d8c06c;
    line-height: 1.6;
}

.ljm-workflow-page .ljm-summary {
    margin: 34px 0;
    border-top: 1px solid #262626;
    border-bottom: 1px solid #262626;
}

.ljm-workflow-page .ljm-summary > div {
    display: flex;
    justify-content: space-between;
    gap: 30px;
    padding: 14px 0;
    border-bottom: 1px solid #1d1d1d;
    color: #8f8f8f;
}

.ljm-workflow-page .ljm-summary > div:last-child { border-bottom: 0; }
.ljm-workflow-page .ljm-summary strong { color: #f4f4f2; }
.ljm-workflow-page .ljm-summary .ljm-total {
    padding: 22px 0;
    color: #f4f4f2;
    font-size: 19px;
    font-weight: 800;
}
.ljm-workflow-page .ljm-summary .ljm-total strong {
    color: #c9a52f;
    font-size: 26px;
}

.ljm-table { width: 100%; border-collapse: collapse; }
.ljm-table th,
.ljm-table td { padding: 10px; border-bottom: 1px solid #292929; text-align: left; }

@media (max-width: 1000px) {
    .ljm-booking-app {
        width: calc(100% - 48px);
        padding: 72px 0 90px;
    }

    .ljm-booking-app .ljm-plant-picker {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ljm-booking-app .ljm-booking-details {
        padding: 36px;
    }
}

@media (max-width: 700px) {
    .ljm-booking-app {
        width: calc(100% - 40px);
        padding: 56px 0 72px;
    }

    .ljm-booking-app .ljm-plant-picker {
        grid-template-columns: 1fr;
        gap: 18px;
        margin-bottom: 48px;
    }

    .ljm-booking-app .ljm-booking-heading {
        margin-bottom: 30px;
    }

    .ljm-booking-app .ljm-booking-heading h2 {
        font-size: 40px;
    }

    .ljm-booking-app .ljm-booking-heading p {
        font-size: 14px;
    }

    .ljm-booking-app .ljm-booking-details {
        padding: 26px 18px;
    }

    .ljm-booking-app .ljm-two {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .ljm-booking-app .ljm-plant-card-body {
        padding: 22px;
    }

    .ljm-booking-app .ljm-book-submit {
        width: 100%;
    }

    .ljm-doc-block form {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 700px) {
    .ljm-workflow-page {
        padding: 56px 20px 72px;
    }
    .ljm-workflow-page .ljm-card {
        padding: 30px 20px;
    }
    .ljm-workflow-page .ljm-doc-block form {
        grid-template-columns: 1fr;
    }
    .ljm-workflow-page .ljm-button {
        width: 100%;
    }
}



/* ==========================================================
   v0.9.0 — clean Documents / Payment workflow pages
   IMPORTANT: .ljm-workflow-page is the INNER shortcode wrapper only.
   ========================================================== */

body.ljm-rentals-documents-page .ljm-workflow-shell,
body.ljm-rentals-payment-page .ljm-workflow-shell {
    box-sizing: border-box;
    width: 100% !important;
    max-width: none !important;
    min-height: calc(100vh - 120px);
    margin: 0 !important;
    padding: 0 !important;
    background:
        radial-gradient(circle at 78% 18%, rgba(201,165,47,.055), transparent 30%),
        #050505;
}

body.ljm-rentals-documents-page .ljm-workflow-section,
body.ljm-rentals-payment-page .ljm-workflow-section {
    box-sizing: border-box;
    width: calc(100% - 64px) !important;
    max-width: 1240px !important;
    margin: 0 auto !important;
    padding: 88px 0 110px !important;
}

body.ljm-rentals-documents-page .ljm-workflow-section > .ljm-workflow-page,
body.ljm-rentals-payment-page .ljm-workflow-section > .ljm-workflow-page {
    box-sizing: border-box;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
}

body.ljm-rentals-documents-page .ljm-workflow-page .ljm-card,
body.ljm-rentals-payment-page .ljm-workflow-page .ljm-card {
    box-sizing: border-box;
    width: 100% !important;
    max-width: 980px !important;
    min-width: 0 !important;
    margin: 0 auto !important;
    padding: 54px 58px !important;
}

body.ljm-rentals-documents-page .ljm-doc-block form {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 14px !important;
    align-items: stretch !important;
}

body.ljm-rentals-documents-page .ljm-doc-block input[type="file"] {
    width: 100% !important;
    min-width: 0 !important;
}

@media (max-width: 1000px) {
    body.ljm-rentals-documents-page .ljm-workflow-section,
    body.ljm-rentals-payment-page .ljm-workflow-section {
        width: calc(100% - 48px) !important;
        padding: 72px 0 90px !important;
    }

    body.ljm-rentals-documents-page .ljm-workflow-page .ljm-card,
    body.ljm-rentals-payment-page .ljm-workflow-page .ljm-card {
        padding: 44px 40px !important;
    }
}

@media (max-width: 700px) {
    body.ljm-rentals-documents-page .ljm-workflow-section,
    body.ljm-rentals-payment-page .ljm-workflow-section {
        width: calc(100% - 32px) !important;
        padding: 40px 0 64px !important;
    }

    body.ljm-rentals-documents-page .ljm-workflow-page .ljm-card,
    body.ljm-rentals-payment-page .ljm-workflow-page .ljm-card {
        max-width: none !important;
        padding: 30px 20px !important;
    }

    body.ljm-rentals-documents-page .ljm-workflow-page .ljm-card h2,
    body.ljm-rentals-payment-page .ljm-workflow-page .ljm-card h2 {
        font-size: clamp(34px, 11vw, 46px) !important;
        line-height: 1 !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
    }

    body.ljm-rentals-documents-page .ljm-doc-block form {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }

    body.ljm-rentals-documents-page .ljm-workflow-page .ljm-button,
    body.ljm-rentals-payment-page .ljm-workflow-page .ljm-button {
        width: 100% !important;
    }

    body.ljm-rentals-documents-page .ljm-workflow-page .ljm-card > p,
    body.ljm-rentals-payment-page .ljm-workflow-page .ljm-card > p {
        font-size: 14px !important;
        line-height: 1.65 !important;
    }
}

/* ==========================================================
   STRIPE PAYMENT ELEMENT
   ========================================================== */
.ljm-stripe-payment-form { margin-top: 30px; }
#ljm-payment-element { padding: 22px; background: #101010; border: 1px solid rgba(212,168,48,.22); margin-bottom: 18px; }
.ljm-stripe-payment-form .ljm-button { min-width: 220px; }
.ljm-stripe-payment-form .ljm-button:disabled { opacity: .65; cursor: wait; }
.ljm-stripe-error { min-height: 22px; margin: 0 0 14px; color: #ef8d8d; font-size: 14px; line-height: 1.5; }
.ljm-stripe-secure-note { margin: 18px 0 0 !important; color: #858585 !important; font-size: 13px !important; }
.ljm-notice-error { border-color: rgba(223,106,106,.45) !important; }
@media (max-width:700px) {
  #ljm-payment-element { padding: 14px; }
  .ljm-stripe-payment-form .ljm-button { width: 100%; min-width: 0; }
}


/* ==========================================================
   v0.10.3 MANAGE BOOKING / MAGIC LINK RECOVERY
   ========================================================== */
body.ljm-rentals-manage-booking-page .ljm-workflow-shell {
    width: 100% !important; max-width: none !important; min-height: calc(100vh - 120px);
    margin: 0 !important; padding: 0 !important;
    background: radial-gradient(circle at 78% 18%, rgba(201,165,47,.055), transparent 30%), #050505;
}
body.ljm-rentals-manage-booking-page .ljm-workflow-section {
    box-sizing: border-box; width: calc(100% - 64px) !important; max-width: 1240px !important;
    margin: 0 auto !important; padding: 88px 0 110px !important;
}
body.ljm-rentals-manage-booking-page .ljm-manage-booking { width: 100%; margin: 0; padding: 0; }
body.ljm-rentals-manage-booking-page .ljm-manage-booking .ljm-card {
    box-sizing: border-box; width: 100%; max-width: 760px; margin: 0 auto; padding: 54px 58px;
    border: 1px solid #242424; border-top: 2px solid #c9a52f; border-radius: 0;
    background: linear-gradient(145deg,#0d0d0d 0%,#080808 100%); color: #f4f4f2;
}
body.ljm-rentals-manage-booking-page .ljm-manage-booking .ljm-step {
    margin-bottom: 16px; color: #c9a52f; font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
}
body.ljm-rentals-manage-booking-page .ljm-manage-booking h2 {
    margin: 0 0 18px; color: #f4f4f2; font-size: clamp(42px,5vw,64px); line-height: 1; letter-spacing: -.045em;
}
body.ljm-rentals-manage-booking-page .ljm-manage-booking p { color: #aaa9a4; line-height: 1.75; }
body.ljm-rentals-manage-booking-page .ljm-manage-booking-form { margin-top: 34px; }
body.ljm-rentals-manage-booking-page .ljm-manage-booking-form .ljm-field { margin-bottom: 20px; }
body.ljm-rentals-manage-booking-page .ljm-manage-booking-form label { display:block; margin:0 0 9px; color:#eee; font-size:13px; font-weight:650; }
body.ljm-rentals-manage-booking-page .ljm-manage-booking-form input {
    box-sizing:border-box; width:100%; min-height:54px; padding:0 16px; border:1px solid #303030; border-radius:0;
    background:#0c0c0c; color:#fff; font:inherit; outline:none;
}
body.ljm-rentals-manage-booking-page .ljm-manage-booking-form input:focus { border-color:#c9a52f; }
body.ljm-rentals-manage-booking-page .ljm-manage-booking-form .ljm-button { margin-top:8px; }
body.ljm-rentals-manage-booking-page .ljm-manage-security { margin:24px 0 0 !important; color:#747470 !important; font-size:12px !important; }
@media(max-width:700px){
    body.ljm-rentals-manage-booking-page .ljm-workflow-section { width:calc(100% - 32px) !important; padding:40px 0 64px !important; }
    body.ljm-rentals-manage-booking-page .ljm-manage-booking .ljm-card { padding:30px 20px; }
    body.ljm-rentals-manage-booking-page .ljm-manage-booking h2 { font-size:clamp(38px,12vw,50px); }
    body.ljm-rentals-manage-booking-page .ljm-manage-booking-form .ljm-button { width:100%; }
}

/* =========================================================
   v0.10.4 - Mobile booking field containment
   Prevent iOS/Safari and theme input rules from overflowing
   the Step 2 booking panel.
   ========================================================= */
@media (max-width: 700px) {
    .ljm-booking-app,
    .ljm-booking-app form,
    .ljm-booking-app .ljm-booking-details,
    .ljm-booking-app .ljm-two,
    .ljm-booking-app .ljm-field {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }

    .ljm-booking-app .ljm-two {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
    }

    .ljm-booking-app .ljm-field input,
    .ljm-booking-app .ljm-field select,
    .ljm-booking-app .ljm-field textarea {
        display: block;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }

    .ljm-booking-app input[type="date"] {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        min-height: 54px;
        padding: 15px 16px;
        -webkit-appearance: none;
        appearance: none;
        color-scheme: dark;
    }

    .ljm-booking-app input[type="date"]::-webkit-date-and-time-value {
        min-width: 0;
        text-align: left;
    }

    .ljm-booking-app .ljm-options,
    .ljm-booking-app .ljm-options .ljm-field,
    .ljm-booking-app #ljm-voucher-code {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }
}

/* ==========================================================
   v0.10.5 — single-submit document upload
   ========================================================== */
body.ljm-rentals-documents-page .ljm-documents-upload-form {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0 !important;
    width: 100% !important;
}
body.ljm-rentals-documents-page .ljm-documents-upload-form .ljm-doc-block {
    padding: 24px 0 !important;
    border-top: 1px solid rgba(255,255,255,.10) !important;
}
body.ljm-rentals-documents-page .ljm-documents-upload-form .ljm-doc-block h3 {
    margin-top: 0 !important;
}
body.ljm-rentals-documents-page .ljm-documents-upload-form input[type="file"] {
    display: block !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
}
body.ljm-rentals-documents-page .ljm-documents-upload-actions {
    padding-top: 24px !important;
    border-top: 1px solid rgba(255,255,255,.10) !important;
}
body.ljm-rentals-documents-page .ljm-documents-upload-actions .ljm-muted {
    margin: 12px 0 0 !important;
}
