.planpop {
    width: min(520px, calc(100% - 32px));
    max-height: calc(100vh - 32px);
    padding: 0;
    border: 0;
    border-radius: 6px;
    background: #fff;
    color: #12363c;
    box-shadow: 0 30px 80px rgba(7, 20, 38, 0.45);
    overflow: auto;
    font-family: Inter, sans-serif;
}
.planpop::backdrop { background: rgba(7, 20, 38, 0.62); }
.planpop[open] { animation: planpop-in .28s ease-out; }
@keyframes planpop-in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

.planpop__x {
    position: absolute; top: 10px; right: 14px; z-index: 2;
    width: 36px; height: 36px; border: 0; background: none;
    font-size: 28px; line-height: 1; color: #6b7f81; cursor: pointer;
}
.planpop[dir="rtl"] .planpop__x { right: auto; left: 14px; }
.planpop__x:hover { color: #12363c; }

.planpop__body { padding: 34px 32px 28px; }
.planpop__kicker { margin: 0 0 10px; font-size: 10px; font-weight: 600; letter-spacing: .2em; color: #a47d3d; }
.planpop__title { margin: 0; font: 500 30px/1.15 'Cormorant Garamond', Georgia, serif; letter-spacing: 0; color: #0b1b30; }
.planpop__text { margin: 12px 0 0; font-size: 14px; line-height: 1.7; color: #526d71; }

.planpop__form { display: grid; gap: 14px; margin-top: 22px; }
.planpop__form label { display: grid; gap: 6px; font-size: 11px; font-weight: 600; letter-spacing: .06em; color: #526d71; }
.planpop__form input:not([type="hidden"]),
.planpop__form select,
.planpop__form textarea {
    width: 100%; box-sizing: border-box; padding: 12px 13px;
    border: 1px solid #cfdad7; border-radius: 3px; background: #fff;
    font: 400 15px Inter, sans-serif; color: #12363c;
}
.planpop__form input:focus, .planpop__form select:focus, .planpop__form textarea:focus {
    outline: 0; border-color: #0e5960; box-shadow: 0 0 0 3px rgba(14, 89, 96, .15);
}
.planpop__row { display: grid; grid-template-columns: 1fr; gap: 14px; }
.planpop__error { margin: 0; padding: 10px 12px; background: #fff3f0; color: #8a2f1e; font-size: 13px; border-radius: 3px; }
.planpop__submit {
    display: inline-flex; justify-content: center; gap: 14px; width: 100%;
    padding: 15px 20px; border: 0; border-radius: 3px; cursor: pointer;
    background: #0e5960; color: #fff; font: 600 11px Inter, sans-serif; letter-spacing: .14em; text-transform: uppercase;
}
.planpop__submit:hover { background: #0b4a50; }
.planpop__submit:disabled { opacity: .6; cursor: wait; }
.planpop__later { justify-self: center; border: 0; background: none; padding: 4px; color: #6b7f81; font: 400 13px Inter, sans-serif; cursor: pointer; text-decoration: underline; }
.planpop__done .planpop__submit { margin-top: 22px; }

@media (min-width: 560px) { .planpop__row { grid-template-columns: 1fr 1fr; } }
@media (max-width: 559px) {
    .planpop { margin: auto auto 0; width: 100%; max-width: none; border-radius: 14px 14px 0 0; max-height: 92vh; }
    .planpop__body { padding: 28px 20px 22px; }
    .planpop__title { font-size: 26px; }
}

.planpop-fab {
    position: fixed; right: 18px; top: 104px; z-index: 900;
    display: inline-flex; align-items: center; gap: 10px;
    padding: 14px 20px; border: 0; border-radius: 999px; cursor: pointer;
    background: #0e5960; color: #fff;
    font: 600 11px Inter, sans-serif; letter-spacing: .12em; text-transform: uppercase;
    box-shadow: 0 10px 28px rgba(7, 20, 38, .35);
    transition: background .2s ease, transform .2s ease;
}
.planpop-fab:hover { background: #0b4a50; transform: translateY(-2px); }
.planpop-fab:focus-visible { outline: 3px solid #6ed5cc; outline-offset: 3px; }
.planpop-fab svg { width: 22px; height: 22px; flex: none; }
[dir="rtl"] .planpop-fab, html[lang="ar"] .planpop-fab { right: auto; left: 18px; }
@media (max-width: 559px) {
    .planpop-fab { right: 14px; top: 84px; padding: 11px 14px; }
    html[lang="ar"] .planpop-fab { right: auto; left: 14px; }
}

/* Availability request dialog (listing cards) */
.availpop__property { margin: 10px 0 0; font-size: 15px; font-weight: 600; color: #0e5960; }
.availpop .planpop__text { margin-top: 8px; }
