/*** Layout ***/
html, body {
    height: 100%;
    margin: 0;
    display: flex;
    flex-direction: column;
    background-color: #bcbcbc;
}

body {
    background-position: center top;
    background-repeat: no-repeat;
    height: auto;
    background-image: url(/images/bg/tall_bg.jpg);
}

@media (max-width: 3840px) {
  body {
    background-image: url(/images/bg/tall_bg_xxl.jpg);
  }
}

@media (max-width: 2560px) {
  body {
    background-image: url(/images/bg/tall_bg_xl.jpg);
  }
}

@media (max-width: 1920px) {
  body {
    background-image: url(/images/bg/tall_bg_lg.jpg);
  }
}

@media (max-width: 1280px) {
  body {
    background-image: url(/images/bg/tall_bg_md.jpg);
  }
}


.page {
    margin-top: 56px;
}
.navbar-brand img {
    max-height: 32px;
}
footer {
    flex-shrink: 0;
}

footer .contact {
    color: #909294;
    font-size: 90%;
}
footer .contact a,
footer .contact a:hover {
    color: #c7c8c9;
    text-decoration: none;
}

footer .contact b {
    font-weight: normal;
    color: #c7c8c9;
}

footer .qr {
    float: right;
    filter: invert(100%);
    height: 70px;
}

/*** Cookie notice ***/
.cookie-notice {
    position: fixed;
    left: 16px;
    right: 16px;
    bottom: 16px;
    z-index: 1100;
    background: rgba(17, 24, 39, 0.92);
    color: #f8f9fa;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 16px;
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.35);
    padding: 14px 16px;
    opacity: 0;
    transform: translateY(12px);
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.2s ease, transform 0.2s ease;
    backdrop-filter: blur(8px);
}

.cookie-notice.is-visible {
    opacity: 1;
    transform: translateY(0);
    visibility: visible;
    pointer-events: auto;
}

.cookie-notice__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.cookie-notice__text {
    font-size: 0.95rem;
}

.cookie-notice__actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.cookie-notice .btn-primary {
    background: #3b82f6;
    border: none;
}

.cookie-notice .btn-outline-light {
    border-color: rgba(255, 255, 255, 0.4);
    color: #f8f9fa;
}

@media (max-width: 575px) {
    .cookie-notice {
        left: 12px;
        right: 12px;
        bottom: 12px;
    }

    .cookie-notice__text {
        font-size: 0.9rem;
    }
}


/*** Footer ***/
footer {
    flex-shrink: 0;
    /* Footer styles if needed */
}

/* If you need additional padding or margins on the form, you can add them here */
.login-box-body {
    padding: 2rem;
}

/* Custom styles for the footer if needed */
footer {
    background: #333;
    color: white;
    padding: 1rem 0;
}



/*** Common elements ***/
.clickable {
    cursor: pointer;
}

.error-data-required-same {
    font-size: .875em;
}

/*** Animations ***/
.btn {
    animation: scaleDown 0.3s forwards;
    /*transition: background-color 0.3s ease;*/
}

.btn:hover {
    Xcolor: white;
    Xbackground-color: #1313e4; /* Change the background color */
    animation: scaleUp 0.3s forwards;
}

.btn.dropdown-toggle:hover {
    background-color: #5c636a;
}

@keyframes scaleUp {
    0% { transform: scale(1); }
    100% { transform: scale(1.05); }
}

@keyframes scaleDown {
    0% { transform: scale(1.05); }
    50% { transform: scale(0.95); }
    100% { transform: scale(1); }
}

[data-onclick] {
    cursor: pointer;
}

[data-not-onclick] {
    cursor: default;
}

.table {
    background-color: #ffffffaa;
}

.table>:not(caption)>*>* {
    background-color: #ffffff00;
}

/** Custom breakpoint classes, good for tables as it doesnt define display block */
@media (max-width: 574px) {
    .hidden-xs-down {
        display: none !important;
    }
}

@media (max-width: 767px) {
    .hidden-sm-down {
        display: none !important;
    }
}

@media (max-width: 991px) {
    .hidden-md-down {
        display: none !important;
    }
}

@media (max-width: 1199px) {
    .hidden-lg-down {
        display: none !important;
    }
}

@media (max-width: 1399px) {
    .hidden-xl-down {
        display: none !important;
    }
}


@media (min-width: 575px) {
    .hidden-sm-up {
        display: none !important;
    }
}

@media (min-width: 768px) {
    .hidden-md-up {
        display: none !important;
    }
}

@media (min-width: 992px) {
    .hidden-lg-up {
        display: none !important;
    }
}

@media (min-width: 1200px) {
    .hidden-xl-up {
        display: none !important;
    }
}

@media (min-width: 1400px) {
    .hidden-xxl-up {
        display: none !important;
    }
}



section {
    background-color: #ffffff88;
}

section.white {
    background-color: #ffffffcc;
}

section.transparent {
    background-color: #ffffff00;
}


.bg-body-tertiary {
    background-color: #f8f9fabb!important;
}

/*** Order form ***/
.order-page {
    min-height: 100vh;
}

.order-hero {
    background-color: #ffffffcc;
}

.order-section {
    padding-top: 12px;
}

.order-section-confirmation {
    background-color: rgba(255, 255, 255, 0.5);
}

.order-panel {
    border-radius: 18px;
    background: transparent;
    border: 0;
    box-shadow: none;
    backdrop-filter: none;
}

.order-actions {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.order-footnote {
    font-size: 0.9rem;
    color: #4a5568;
}

.order-gdpr {
    color: #6b7280;
    opacity: 0.9;
}

.order-summary {
    padding-top: 12px;
}

.order-subtitle {
    font-size: 1.2rem;
    margin-bottom: 1rem;
    color: #2c2f36;
}

.order-summary-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 16px 24px;
}

.order-summary-grid .order-notes {
    grid-column: 1 / -1;
}

.order-label {
    display: block;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #6b7280;
}

.order-value {
    display: block;
    font-size: 1rem;
    color: #1f2937;
    margin-top: 4px;
    word-break: break-word;
}

.order-status {
    background: rgba(15, 50, 156, 0.08);
    border: 1px solid rgba(15, 50, 156, 0.2);
    color: #1f2a44;
}

.order-status-note {
    margin-top: 0;
}

.order-submit {
    margin-top: 10px;
    margin-bottom: 24px;
}

.order-group-gap {
    margin-top: 60px;
}

.order-column-gap {
    margin-top: 16px;
}

.order-reference {
    display: inline-flex;
    flex-direction: column;
    gap: 4px;
    margin-bottom: 12px;
}

@media (max-width: 576px) {
    .order-panel {
        border-radius: 12px;
    }
}



/*** Color scheme ****/
.btn-primary,
.bg-brand {
    background-color: #0f329c;
}

a {
    color: #3258c9;
}

.brand-color {
    color: #0f329c;
}

.brand-bg-color {
    background-color: #0f329c;
}

/*** Profile ***/
.profile-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.profile-row:last-child {
    border-bottom: 0;
}

.profile-row__label {
    flex: 0 0 120px;
    font-weight: 600;
    color: #495057;
}

.profile-row__value {
    flex: 1 1 auto;
    color: #212529;
    word-break: break-word;
}

.profile-row__action {
    flex: 0 0 auto;
}

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

    .profile-row__label {
        flex-basis: auto;
    }

    .profile-row__action {
        width: 100%;
    }
}

/*
.overflow-ellipsis {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
*/


/*** Login ***/
#page.intro-bg {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    height: auto;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    min-height: 100vh;
    background-image: url(/images/bg/login_bg.jpg);
}


@media (max-width: 3840px) {
  #page.intro-bg {
    background-image: url(/images/bg/login_bg_xxl.jpg);
  }
}

@media (max-width: 2560px) {
  #page.intro-bg {
    background-image: url(/images/bg/login_bg_xl.jpg);
  }
}

@media (max-width: 1920px) {
  #page.intro-bg {
    background-image: url(/images/bg/login_bg_lg.jpg);
  }
}

@media (max-width: 1280px) and (max-height: 717px) {
  #page.intro-bg {
    background-image: url(/images/bg/login_bg_md.jpg);
  }
}

.login-box, .signup-box {
    width: 100%;
    max-width: 450px;
    padding: 2rem;
    border-radius: 0.5rem;
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(10px);
}

@media (max-width: 767px) {
    .login-box, .signup-box {
        max-width: 90vw !important;
    }
}

.login-box .btn-primary, 
.signup-box .btn-primary {
    background-color: #0f329c;   /* logo color */
}

.login-box .btn-primary:hover, .signup-box .btn-primary:hover {
    background-color: #5461c4;  
}

.toggle-password {
    padding: 6px 12px;
}
.toggle-password:hover {
    padding: 6px 11px 6px 11px;  /* fa eye open/closed is different width */
}

/* hide labels for now */
#signup label[for]:not([for="privacy_policy"]) {
    display: none;
}

#signup .callout {
    width: 100%;
    padding: 15px;
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(10px);
}




/* documents */
body.documents {
    background-image: url(/images/bg/docs_bg.jpg);
}

@media (max-width: 3840px) {
  body.documents {
    background-image: url(/images/bg/docs_bg_xxl.jpg);
  }
}

@media (max-width: 2560px) {
  body.documents {
    background-image: url(/images/bg/docs_bg_xl.jpg);
  }
}

@media (max-width: 1920px) {
  body.documents {
    background-image: url(/images/bg/docs_bg_lg.jpg);
  }
}

@media (max-width: 1280px) {
  body.documents {
    background-image: url(/images/bg/docs_bg_md.jpg);
  }
}


.documents-table td {
    vertical-align: middle;
    color: #444;
}

.documents-table tr:hover td {
    background-color: #ffffff88;
}

.documents-table td.action-buttons .btn {
    margin-left: 5px;
    padding: 7px 12px;
    opacity: 0.7;
}

.documents-table tr:hover td.action-buttons .btn {
    opacity: 1;
}

.documents-table .action-buttons .btn span {
    margin-left: 5px;
}

@media (min-width: 1200px) {
    .documents-table .action-buttons .btn {
        padding: 7px;
    }
    .documents-table .action-buttons .btn:last-child {
        width: 130px;
    }
}

.documents-table .document-title {
    font-weight: bold;
}

.documents-table th {
    font-weight: normal;
    color: #777;
    font-size: 85%;
}

.documents-table .doc-description {
    color: #777;
}

.documents-table .secondary-info {
    font-size: 90%;
}

/* documents in mobile */
@media (max-width: 991px) {
    .documents-table .doc-description {
        font-size: 85%;
    }
}

.documents-table td>.doc-description {
    opacity: 0;
    transition: opacity 0.3s;
}

.documents-table tr:hover td>.doc-description {
    opacity: 0.9;
}

@media (min-width: 1400px) {
    .documents-table .min-width-col-xl {
        width: 1%;
        min-width: 100px;
        white-space: nowrap;
    }
}

.documents h6 {
    color: #555;
}

@media (max-width: 574px) {
    .documents h6 {
        font-size: 90%;
    }

    .documents thead tr th {
        height: 1px;
    }
}

.documents .icon-col {
    width: 85px;
}

.documents .icon-col img {
    width: 55px;
}

@media (max-width: 574px) {
    .documents .icon-col {
        width: 44px;
    }
    .documents .icon-col img {
        width: 28px;
    }
}

.documents-table  .document-filename {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 300px;
}

@media (max-width: 574px) {
    .documents-table  .document-filename {
        max-width: calc(100vw - 150px);
    }
}



.documents-table  .expand-icon {
    transition: transform 0.3s ease;
}

.documents-table  .rotated {
    transform: rotate(180deg);
    transition: transform 0.3s ease;
}

.document-detail-row > td {
    background: #f8f9fa;
    padding: 0;
    display: none;
}


.document-detail-row:hover > td {
    background: #f8f9fa!important;
}

.document-detail-row .btn {
    width: 90%;
    padding: 7px;
    margin: 10px;
}

.document-detail-row .top-info {
    font-size: 80%;
    padding-bottom: 10px;
}

@media (max-width: 574px) {
    .document-detail-row .top-info {
        font-size: 70%;
    }
}

.document-detail-row .top-info .top-left,
.document-detail-row .top-info .top-right {
    width: 45%;
    display: inline-block;
}

.document-detail-row .top-info .top-left {
    text-align: left;
}

.document-detail-row .top-info .top-right {
    text-align: right;
}

.documents-table .action-buttons.text-end {
    padding-right: 12px;
} 

/* checkin */
#checkin .card-title small {
    font-size: 60%;
}

#checkin .form-switch {
    font-size: 2em;
}

#checkin .form-switch .form-check-label {
    font-size: 16px;
    vertical-align: top;
    margin-top: 11px;
}


#checkin .form-switch {
    text-align: left!important;
}


#checkin .action-buttons .btn {
    width: calc(33.3333333333% - 15px);
    margin-right: 15px;
    margin-bottom: 15px;
}

#checkin .action-buttons .btn:last-child {
    margin-right: 0!important;
}

@media (max-width: 991px) {
     #checkin .action-buttons .btn {
        width: calc(50% - 15px);
    }
}

@media (max-width: 767px) {
    #checkin .action-buttons {
        text-align: center;
    }

     #checkin .action-buttons .btn {
        width: calc(100% - 15px);
        margin-right: 0;
    }
}

#checkin label {
    width: 100%;
}

#checkin .col-delete-guest {
    padding-top: 39px;
}

#checkin .hidden-not-border-primary {
    visibility: hidden;
}

#checkin .border-primary .hidden-not-border-primary {
    visibility: visible;
}

#checkin .beach-set-card .form-check-label {
    width: auto;
}

#checkin .beach-set-summary {
    display: flex;
    align-items: center;
    gap: 8px;
}

#checkin .beach-set-summary-text {
    line-height: 1.2;
    text-align: right;
}

/* client home */
#home .card {
    background-color: #ffffffcc;
}

.change-password-page {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    height: auto;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    min-height: 100vh;
}
