/* All styles are scoped to .ehcp-* so the plugin does not style unrelated theme elements. */
.ehcp-wrap, .ehcp-wrap * { box-sizing: border-box; }
.ehcp-wrap {
    width: 100%;
    max-width: 1260px;
    margin: 0 auto;
    padding: 28px 12px 10px;
    font-family: Poppins, Nunito, Inter, Arial, sans-serif;
    color: #101a37;
}
.ehcp-heading {
    margin: 0 0 40px;
    text-align: center;
    font-size: 28px;
    line-height: 1.25;
    font-weight: 700;
    color: #071a43;
}
.ehcp-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
    align-items: stretch;
}
.ehcp-card {
    min-width: 0;
    background: #fff;
    border-radius: 16px;
    padding: 19px 20px 20px;
    box-shadow: 0 6px 20px rgba(16, 24, 40, .10);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.ehcp-card-title {
    min-height: 51px;
    font-size: 18px;
    line-height: 1.23;
    font-weight: 700;
    color: #071a43;
    margin-bottom: 8px;
}
.ehcp-rating {
    font-size: 14px;
    line-height: 1.2;
    margin-bottom: 16px;
    color: #071a43;
}
.ehcp-stars { color: #ff9b20; letter-spacing: 1px; font-size: 17px; }
.ehcp-desc {
    font-size: 14px;
    line-height: 1.55;
    color: #1f2d4b;
    min-height: 126px;
    margin-bottom: 9px;
}
.ehcp-know {
    border: 0;
    background: transparent;
    padding: 0;
    width: fit-content;
    cursor: pointer;
    color: #071a43;
    font: 700 14px/1.2 Poppins, Nunito, Arial, sans-serif;
    margin: 0 0 20px;
}
.ehcp-offer {
    background: #e5f4f1;
    border-radius: 10px;
    min-height: 174px;
    padding: 18px 16px;
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-top: auto;
    margin-bottom: 15px;
}
.ehcp-offer-label {
    font-size: 14px;
    line-height: 1.55;
    color: #1a2945;
}
.ehcp-offer-label strong {
    display: block;
    margin-top: 8px;
    font-size: 20px;
    line-height: 1.05;
    color: #008b8b;
}
.ehcp-offer-price {
    text-align: right;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 7px;
    font-size: 14px;
    line-height: 1.45;
    color: #1a2945;
}
.ehcp-offer-price span { display:block; }
.ehcp-offer-price del { color: #777; margin-top: 8px; }
.ehcp-offer-price strong {
    font-size: 18px;
    line-height: 1;
    color: #008b8b;
}
.ehcp-book {
    width: 100%;
    min-height: 51px;
    border: 0;
    border-radius: 10px;
    background: #101a37;
    color: #fff;
    cursor: pointer;
    font: 700 15px/1 Poppins, Nunito, Arial, sans-serif;
    transition: transform .15s ease, opacity .15s ease;
}
.ehcp-book:hover { transform: translateY(-1px); opacity: .94; }
.ehcp-book:disabled { opacity: .6; cursor: wait; }
.ehcp-book span { margin-left: 4px; }
.ehcp-empty { padding: 20px; text-align:center; }
.ehcp-modal, .ehcp-result {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 999999;
}
.ehcp-modal.ehcp-open, .ehcp-result.ehcp-open { display: flex; align-items: center; justify-content: center; padding: 20px; }
.ehcp-backdrop {
    position:absolute; inset:0;
    background: rgba(7, 18, 42, .62);
    backdrop-filter: blur(3px);
}
.ehcp-dialog {
    position:relative;
    width: min(480px, 100%);
    max-height: 92vh;
    overflow:auto;
    background:#fff;
    border-radius:18px;
    padding:28px;
    box-shadow:0 25px 80px rgba(0,0,0,.25);
    z-index:2;
}
.ehcp-close {
    position:absolute; top:10px; right:13px;
    width:36px; height:36px;
    border:0; border-radius:50%;
    background:#f1f3f7; color:#101a37;
    font-size:25px; line-height:1; cursor:pointer;
}
.ehcp-modal-kicker { font-size:12px; text-transform:uppercase; letter-spacing:1.2px; font-weight:700; color:#008b8b; }
.ehcp-modal-header h3 { margin:4px 38px 4px 0; font-size:23px; color:#071a43; }
.ehcp-modal-header p { margin:0 0 20px; font-size:14px; color:#53617a; }
#ehcp-booking-form label { display:block; margin:0 0 13px; font-size:13px; font-weight:700; color:#17233f; }
#ehcp-booking-form label span { font-weight:400; color:#7c8597; }
#ehcp-booking-form input {
    display:block; width:100%; height:46px; margin-top:6px;
    border:1px solid #d8dde7; border-radius:9px; padding:0 13px;
    background:#fff; color:#111827; outline:none; font:14px Poppins, Arial, sans-serif;
}
#ehcp-booking-form input:focus { border-color:#008b8b; box-shadow:0 0 0 3px rgba(0,139,139,.10); }
.ehcp-form-summary {
    display:flex; justify-content:space-between; align-items:center;
    padding:14px 15px; margin:4px 0 14px;
    background:#e5f4f1; border-radius:9px; color:#1d2a45; font-size:14px;
}
.ehcp-form-summary strong { font-size:18px; color:#008b8b; }
.ehcp-pay-button, .ehcp-result-close {
    width:100%; min-height:48px; border:0; border-radius:9px;
    background:#101a37; color:#fff; cursor:pointer;
    font:700 14px Poppins, Arial, sans-serif;
}
.ehcp-form-message { min-height:22px; margin-top:11px; font-size:13px; color:#c62828; }
.ehcp-result { z-index:1000000; }
.ehcp-result-box {
    position:relative; z-index:2; width:min(430px,100%);
    background:#fff; border-radius:18px; padding:32px 28px;
    text-align:center; box-shadow:0 25px 80px rgba(0,0,0,.25);
}
.ehcp-result-icon {
    width:58px; height:58px; margin:0 auto 12px;
    border-radius:50%; display:flex; align-items:center; justify-content:center;
    background:#e5f4f1; color:#008b8b; font-size:30px; font-weight:700;
}
.ehcp-result-box h3 { margin:0 0 8px; color:#071a43; font-size:22px; }
.ehcp-result-box p { margin:0 0 20px; color:#56627a; font-size:14px; line-height:1.55; }
.ehcp-result-close { width:auto; padding:0 30px; }
.ehcp-result.ehcp-failed .ehcp-result-icon { background:#fff0f0; color:#c62828; }
.ehcp-result.ehcp-failed .ehcp-result-close { background:#c62828; }

@media (max-width: 1050px) {
    .ehcp-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 600px) {
    .ehcp-wrap { padding:22px 10px 8px; }
    .ehcp-heading { font-size:23px; margin-bottom:26px; }
    .ehcp-grid { grid-template-columns:1fr; gap:17px; }
    .ehcp-card { padding:18px; }
    .ehcp-card-title { min-height:auto; }
    .ehcp-desc { min-height:auto; }
    .ehcp-offer { min-height:150px; }
    .ehcp-dialog { padding:24px 18px; }
}
