/* =====================================================================
   SpaPlus booking popup - "newform2" v2 skin
   Loaded after style_ctrl.php. Uses logical properties only (works for
   both RTL / LTR, NOT passed through the style_ctrl left/right flipper).
   Everything is scoped under .pack-popup.nf2
   ===================================================================== */

.pack-popup.nf2 {
    --nf-ink: #14244b;
    --nf-ink-2: #2b3a63;
    --nf-muted: #6b7489;
    --nf-faint: #a3aabb;
    --nf-line: #e3e6ee;
    --nf-line-2: #d5d9e4;
    --nf-bg: #f4f5f9;
    --nf-card: #ffffff;
    --nf-accent: #e3185f;
    --nf-accent-soft: #fde7ef;
    --nf-blue: #3fa6cc;
    --nf-blue-soft: #e8f5fa;
    --nf-ok: #12805c;
    --nf-radius: 16px;
    --nf-radius-sm: 12px;
    --nf-header-h: 58px;
    --nf-cta-h: 76px;
    font-family: inherit;
    color: var(--nf-ink);
    background: rgba(14, 22, 44, .55);
}
.pack-popup.nf2 * { box-sizing: border-box; }

/* ---------- Modal shell ---------- */
.pack-popup.nf2 .pack-popup-container {
    top: 10px; bottom: 0; left: 0; right: 0;
    border: 0;
    border-radius: 20px 20px 0 0;
    background: var(--nf-bg);
    box-shadow: 0 -10px 40px rgba(10, 20, 50, .18);
}
@media (min-width: 768px) {
    .pack-popup.nf2 .pack-popup-container {
        top: 24px; bottom: 24px;
        max-width: 760px; margin: 0 auto;
        border-radius: 22px;
    }
}

/* header bar */
.pack-popup.nf2 .nf2-header {
    position: absolute; top: 0; left: 0; right: 0;
    height: var(--nf-header-h);
    display: flex; align-items: center;
    padding-inline: 20px 64px;
    background: #fff;
    border-bottom: 1px solid var(--nf-line);
    z-index: 20;
}
.pack-popup.nf2 .nf2-header-title { font-size: 18px; font-weight: 700; color: var(--nf-ink); letter-spacing: -.01em; }
.pack-popup.nf2 .pack-popup-container > .close {
    position: absolute !important; float: none;
    top: 9px; inset-inline-end: 12px; inset-inline-start: auto;
    width: 40px; height: 40px;
    border-radius: 50%;
    background: var(--nf-bg);
    color: var(--nf-ink);
    font-size: 26px; line-height: 1;
    z-index: 21;
    transition: background .15s ease;
}
.pack-popup.nf2 .pack-popup-container > .close:hover { background: var(--nf-line); }

/* scroll area */
.pack-popup.nf2 .pack-popup-content {
    top: var(--nf-header-h);
    margin-bottom: 0;
    bottom: var(--nf-cta-h);
    padding: 14px 14px 24px;
    scroll-behavior: smooth;
}
@media (min-width: 768px) {
    .pack-popup.nf2 .pack-popup-content { padding: 18px 28px 28px; }
}
.pack-popup.nf2 .pack-popup-content::-webkit-scrollbar-thumb { background: var(--nf-line-2); }

/* ---------- Hide old heavy parts ---------- */
.pack-popup.nf2 #top-btns,
.pack-popup.nf2 .pop-top-gallery,
.pack-popup.nf2 .pack-popup-block > .siteName,
.pack-popup.nf2 .pack-popup-block > .title,
.pack-popup.nf2 .pack-popup-block > .pack-desc,
.pack-popup.nf2 .pack-popup-block > .tags,
.pack-popup.nf2 .pack-popup-flex > .before,
.pack-popup.nf2 .inside-block.order-accept-top,
.pack-popup.nf2 .nf2-includes .min-show-l { display: none !important; }

/* one column layout on all sizes */
.pack-popup.nf2 .pack-popup-flex { display: block; }
.pack-popup.nf2 .pack-popup-container .pack-popup-flex > .pack-popup-block {
    width: 100%; max-width: none; position: static;
    padding: 0; color: var(--nf-ink);
}

/* Spa info panel (old side column) -> overlay sheet, opened on demand */
.pack-popup.nf2 .pack-popup-container .pack-popup-flex > .pack-popup-l-wrap {
    display: block !important;
    position: absolute; left: 0; right: 0; bottom: 0;
    top: 100%;
    width: 100%; max-width: none; height: auto;
    border-radius: 20px 20px 0 0;
    background: #fff;
    z-index: 40;
    padding: 0;
    transition: top .25s ease;
    box-shadow: 0 -10px 30px rgba(10, 20, 50, .15);
}
.pack-popup.nf2 .pack-popup-container .pack-popup-flex > .pack-popup-l-wrap.active { top: 0; }
.pack-popup.nf2 .pack-popup-container .pack-popup-flex > .pack-popup-l-wrap:not(.active) { visibility: hidden; }
.pack-popup.nf2 .pack-popup-container .pack-popup-flex > .pack-popup-l-wrap > .top,
.pack-popup.nf2 .pack-popup-container .pack-popup-flex > .pack-popup-l-wrap > .bottom { display: flex !important; }
.pack-popup.nf2 .pack-popup-container .pack-popup-flex > .pack-popup-l-wrap .rSide { height: calc(100% - 120px); padding: 12px 16px; }

/* ---------- Summary card ---------- */
.pack-popup.nf2 .nf2-summary {
    display: grid;
    grid-template-columns: 76px 1fr auto;
    gap: 4px 14px;
    align-items: start;
    background: var(--nf-card);
    border: 1px solid var(--nf-line);
    border-radius: var(--nf-radius);
    padding: 12px;
    margin-bottom: 12px;
}
.pack-popup.nf2 .nf2-thumb {
    position: relative;
    width: 76px; height: 76px;
    border-radius: 12px;
    background: #eef0f5 center / cover no-repeat;
    cursor: pointer;
    overflow: hidden;
}
.pack-popup.nf2 .nf2-thumb-icon {
    position: absolute; inset-inline-end: 5px; bottom: 5px;
    width: 24px; height: 24px; border-radius: 50%;
    background: rgba(255,255,255,.92); color: var(--nf-ink);
    display: flex; align-items: center; justify-content: center;
}
.pack-popup.nf2 .nf2-thumb-icon svg { width: 14px; height: 14px; }
.pack-popup.nf2 .nf2-info { min-width: 0; }
.pack-popup.nf2 .nf2-code { font-size: 11.5px; color: var(--nf-muted); line-height: 1.3; min-height: 0; }
.pack-popup.nf2 .nf2-code:empty { display: none; }
.pack-popup.nf2 .nf2-title { font-size: 15.5px; font-weight: 700; line-height: 1.3; color: var(--nf-ink); margin-top: 1px; }
.pack-popup.nf2 .nf2-site { font-size: 12.5px; color: var(--nf-muted); margin-top: 2px; text-transform: none; }
.pack-popup.nf2 .nf2-meta { display: flex; flex-wrap: wrap; gap: 4px 12px; margin-top: 6px; font-size: 12.5px; color: var(--nf-ink-2); }
.pack-popup.nf2 .nf2-meta-item { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
.pack-popup.nf2 .nf2-meta-item svg { width: 14px; height: 14px; color: var(--nf-muted); }
.pack-popup.nf2 .nf2-links { display: flex; gap: 14px; margin-top: 6px; }
.pack-popup.nf2 .nf2-link {
    background: none; border: 0; padding: 0; cursor: pointer;
    font: inherit; font-size: 13px; font-weight: 600;
    color: var(--nf-blue); text-decoration: underline; text-underline-offset: 2px;
}
.pack-popup.nf2 .nf2-link[aria-expanded="true"]::after { content: " \2013"; text-decoration: none; }
.pack-popup.nf2 .nf2-edit { display: none; }
.pack-popup.nf2.nf2-step2 .nf2-edit { display: inline; }
.pack-popup.nf2.nf2-step2 [data-nf2="details"] { display: none; }
.pack-popup.nf2 .nf2-price { text-align: end; line-height: 1.1; white-space: nowrap; }
.pack-popup.nf2 .nf2-price small { display: block; font-size: 11px; color: var(--nf-muted); font-weight: 500; text-transform: uppercase; letter-spacing: .04em; }
.pack-popup.nf2 .nf2-price b { font-size: 19px; font-weight: 800; color: var(--nf-accent); }
.pack-popup.nf2 .nf2-price.nf2-final small { display: none; }
@media (max-width: 420px) {
    .pack-popup.nf2 .nf2-summary { grid-template-columns: 64px 1fr auto; gap: 2px 10px; padding: 10px; }
    .pack-popup.nf2 .nf2-thumb { width: 64px; height: 64px; }
    .pack-popup.nf2 .nf2-title { font-size: 14.5px; }
    .pack-popup.nf2 .nf2-price b { font-size: 17px; }
}

.pack-popup.nf2 .nf2-details {
    background: var(--nf-card);
    border: 1px solid var(--nf-line);
    border-radius: var(--nf-radius);
    padding: 14px 16px;
    margin: -4px 0 12px;
    font-size: 14px; line-height: 1.55; color: var(--nf-ink-2);
}
.pack-popup.nf2 .nf2-details[hidden] { display: none; }
.pack-popup.nf2 .nf2-about { margin-bottom: 10px; }
.pack-popup.nf2 .nf2-includes ul { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 12px; padding: 0; list-style: none; }
.pack-popup.nf2 .nf2-includes ul li {
    display: inline-flex !important; align-items: center;
    background: var(--nf-blue-soft); color: var(--nf-ink-2);
    border-radius: 999px; padding: 4px 10px; font-size: 12.5px;
}
.pack-popup.nf2 .nf2-includes ul li desc { display: none; }

/* ---------- Tabs (Reservation / Gift voucher) ---------- */
.pack-popup.nf2 .pack-popup-tabs {
    display: flex; gap: 4px;
    background: #e9ebf2; border-radius: 12px; padding: 4px;
    margin: 0 0 12px; border: 0;
}
.pack-popup.nf2 .pack-popup-tabs:has(> .tab:only-child),
.pack-popup.nf2 .pack-popup-tabs.nf2-single { display: none !important; }
.pack-popup.nf2 .pack-popup-tabs .tab {
    flex: 1; text-align: center; border: 0 !important;
    border-radius: 9px; padding: 8px 6px; font-size: 14px; font-weight: 600;
    color: var(--nf-muted); cursor: pointer; margin: 0; width: auto;
}
.pack-popup.nf2 .pack-popup-tabs .tab.active { background: #fff; color: var(--nf-ink); box-shadow: 0 1px 3px rgba(10,20,50,.1); }
.pack-popup.nf2 .pack-popup-tabs .tab::after, .pack-popup.nf2 .pack-popup-tabs .tab::before { display: none !important; }

/* ---------- Cards ---------- */
.pack-popup.nf2 .pack-popup-container .pack-popup-blocks { margin-top: 0; padding-bottom: 8px; }
.pack-popup.nf2 .pack-popup-blocks .inside-block {
    width: 100%; margin: 0 0 12px; margin-inline: 0;
    background: var(--nf-card);
    border: 1px solid var(--nf-line);
    border-radius: var(--nf-radius);
    box-shadow: none;
    padding: 14px 16px 16px;
}
.pack-popup.nf2 .pack-popup-blocks .inside-block > .top {
    width: 100%; margin: 0 0 10px; padding: 0;
    min-height: 0; border: 0;
    flex-wrap: nowrap; gap: 10px; justify-content: space-between; text-align: start;
}
.pack-popup.nf2 .pack-popup-blocks .inside-block .top > .title {
    font-size: 15px; font-weight: 700; color: var(--nf-ink); line-height: 1.35;
    text-align: start !important; justify-content: flex-start;
}
.pack-popup.nf2 .pack-popup-blocks .inside-block > .top > .desc { font-size: 14px; font-weight: 600; color: var(--nf-ink-2); }
.pack-popup.nf2 .pack-popup-blocks .inside-block > .content { padding: 0; }

/* ---------- Guests amount (steppers) ---------- */
.pack-popup.nf2 .inside-block.guests_amount > .top { margin-bottom: 4px; }
.pack-popup.nf2 .inside-block.guests_amount > .top > .desc { color: var(--nf-muted); font-weight: 500; font-size: 13px; }
.pack-popup.nf2 .inside-block.guests_amount > .content { display: flex; flex-wrap: wrap; gap: 0 20px; }
.pack-popup.nf2 .pack-popup-blocks .inside-block > .content .amount-wrap {
    flex: 1 1 140px; min-height: 48px; padding: 0; gap: 8px;
}
.pack-popup.nf2 .pack-popup-blocks .inside-block > .content .amount-wrap > .title { font-size: 15px; font-weight: 600; color: var(--nf-ink-2); }
.pack-popup.nf2 .pack-popup-blocks .inside-block > .content .amount-wrap .amount .inpt {
    width: 34px; height: 32px; margin: 0 2px; border: 0; border-radius: 8px; background: transparent;
}
.pack-popup.nf2 .pack-popup-blocks .inside-block > .content .amount-wrap .amount .inpt input {
    font-size: 17px; font-weight: 700; color: var(--nf-ink); border: 0 !important; height: 100%;
}
.pack-popup.nf2 .pack-popup-blocks .inside-block > .content .amount-wrap .amount .minusone,
.pack-popup.nf2 .pack-popup-blocks .inside-block > .content .amount-wrap .amount .plusone {
    position: relative; width: 32px; height: 32px; padding: 0;
    border-radius: 50%; border: 1.5px solid var(--nf-line-2); background: #fff;
    font-size: 0; color: var(--nf-ink);
}
.pack-popup.nf2 .pack-popup-blocks .inside-block > .content .amount-wrap .amount .minusone::before,
.pack-popup.nf2 .pack-popup-blocks .inside-block > .content .amount-wrap .amount .plusone::before {
    content: ""; position: absolute; inset: 0; margin: auto;
    width: 12px; height: 2px; border: 0; border-radius: 2px; background: currentColor;
}
.pack-popup.nf2 .pack-popup-blocks .inside-block > .content .amount-wrap .amount .plusone::after {
    content: ""; position: absolute; inset: 0; margin: auto;
    width: 2px; height: 12px; border-radius: 2px; background: currentColor;
}
.pack-popup.nf2 .pack-popup-blocks .inside-block > .content .amount-wrap .amount .plusone:not(.disabled) { border-color: var(--nf-accent); color: var(--nf-accent); }

/* ---------- Guest card fields (compact floating labels, 2-col grid) ---------- */
/* guest card = accordion (closed by default, nf2.js adds .nf2-open) */
.pack-popup.nf2 .pack-popup-blocks .inside-block.guest-block { padding: 0; }
.pack-popup.nf2 .pack-popup-blocks .inside-block.guest-block > .top {
    margin: 0; padding: 14px 16px; cursor: pointer; align-items: center; user-select: none;
    border-radius: var(--nf-radius);
}
.pack-popup.nf2 .pack-popup-blocks .inside-block.guest-block > .top:focus-visible { outline: 2px solid var(--nf-blue); outline-offset: -2px; }
.pack-popup.nf2 .pack-popup-blocks .inside-block.guest-block > .top > .title { flex-direction: column; align-items: flex-start; min-width: 0; flex: 1; }
.pack-popup.nf2 .nf2-guest-sum {
    display: block; max-width: 100%; margin-top: 2px;
    font-size: 12.5px; font-weight: 500; color: var(--nf-muted);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.pack-popup.nf2 .nf2-guest-sum:empty { display: none; }
.pack-popup.nf2 .guest-block.nf2-open .nf2-guest-sum { display: none; }
.pack-popup.nf2 .nf2-chev {
    flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--nf-bg);
    position: relative; transition: transform .2s ease;
}
.pack-popup.nf2 .nf2-chev::before {
    content: ""; position: absolute; inset: 0; margin: auto; width: 7px; height: 7px;
    border-inline-end: 2px solid var(--nf-ink); border-bottom: 2px solid var(--nf-ink);
    transform: translateY(-2px) rotate(45deg);
}
.pack-popup.nf2 .guest-block.nf2-open .nf2-chev { transform: rotate(180deg); }
/* collapse only when nf2.js is running (.nf2-js), so the guest fields never disappear if it didn't load */
.pack-popup.nf2.nf2-js .guest-block:not(.nf2-open) > .content { display: none !important; }
.pack-popup.nf2 .guest-block.nf2-open > .content { padding: 0 16px 16px; }

/* "Important information" is shown only on the checkout step (step 2, right before the terms checkboxes) */
.pack-popup.nf2 .block[data-step="1"] .inside-block.important-to-know { display: none !important; }
.pack-popup.nf2 .inside-block.guest-block > .top > .desc { color: var(--nf-accent); font-weight: 700; }
.pack-popup.nf2 .inside-block.guest-block > .content {
    display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
}
.pack-popup.nf2 .inside-block.guest-block > .content > * { grid-column: 1 / -1; min-width: 0; margin: 0 !important; width: auto !important; }
/* order: guest gender, therapist gender, treatment, duration, add-ons, supplementary */
.pack-popup.nf2 .guest-block .content > .inpt:has(select[name^="gender"])          { order: 1; grid-column: span 1; }
.pack-popup.nf2 .guest-block .content > .inpt:has(select[name^="master-gender"])   { order: 2; grid-column: span 1; }
.pack-popup.nf2 .guest-block .content > .inpt:has(select[name^="treat-type"])      { order: 3; }
.pack-popup.nf2 .guest-block .content > .inpt:has(select[name^="treat-length"])    { order: 4; }
.pack-popup.nf2 .guest-block .content > .inpt.extras                               { order: 5; }
.pack-popup.nf2 .guest-block .content > .nf2-supp-add                              { order: 6; }
.pack-popup.nf2 .guest-block .content > .inpt:has(select[name^="supp-treat-type"]) { order: 7; }
.pack-popup.nf2 .guest-block .content > .inpt:has(select[name^="supp-treat-length"]){ order: 8; }
.pack-popup.nf2 .guest-block .content > *:not(.inpt):not(.nf2-supp-add)            { order: 9; }
@media (min-width: 560px) {
    .pack-popup.nf2 .guest-block .content > .inpt:has(select[name^="treat-type"]),
    .pack-popup.nf2 .guest-block .content > .inpt:has(select[name^="treat-length"]),
    .pack-popup.nf2 .guest-block .content > .inpt:has(select[name^="supp-treat-type"]),
    .pack-popup.nf2 .guest-block .content > .inpt:has(select[name^="supp-treat-length"]) { grid-column: span 1; }
}
/* hide add-ons field when the treatment has no add-ons at all */
.pack-popup.nf2 .guest-block .content > .inpt.extras:not(:has(.block-select .option)) { display: none; }
/* supplementary treatment collapsed behind a link until wanted */
.pack-popup.nf2 .guest-block.nf2-supp-closed .content > .inpt:has(select[name^="supp-treat"]) { display: none; }
.pack-popup.nf2 .nf2-supp-add { display: none; }
.pack-popup.nf2 .guest-block.nf2-supp-closed .nf2-supp-add {
    display: inline-flex; align-items: center; gap: 6px;
    background: none; border: 0; padding: 4px 0; cursor: pointer; justify-self: start;
    font: inherit; font-size: 14px; font-weight: 600; color: var(--nf-accent);
}
.pack-popup.nf2 .nf2-supp-add span { font-size: 18px; line-height: 1; }

/* form.php "Add a Supplementary Treatment" block */
.pack-popup.nf2 .guest-block .content > .additionalBlock { order: 6; grid-column: 1 / -1; display: grid; grid-template-columns: 1fr; gap: 10px; padding: 0; margin: 0; border: 0; }
@media (min-width: 560px) {
    .pack-popup.nf2 .guest-block .content > .additionalBlock.activeA { grid-template-columns: 1fr 1fr; }
}
.pack-popup.nf2 .guest-block .content > .additionalBlock.activeA > .inpt.btnA { display: none !important; }
.pack-popup.nf2 .guest-block .content > .additionalBlock:not(.activeA) > .inpt:not(.btnA) { display: none !important; }
.pack-popup.nf2 .guest-block .content > .additionalBlock > .inpt.btnA { height: auto !important; display: block; }
.pack-popup.nf2 .guest-block .content > .additionalBlock > .inpt.btnA::after { display: none !important; }
.pack-popup.nf2 .guest-block .content > .additionalBlock > .inpt.btnA button.plus {
    display: inline-flex; align-items: center; gap: 6px;
    background: #fff; border: 1.5px solid var(--nf-accent); border-radius: 999px;
    padding: 9px 18px; margin: 0; cursor: pointer;
    font: inherit; font-size: 14.5px; font-weight: 600; color: var(--nf-accent);
    transition: background .15s ease;
}
.pack-popup.nf2 .guest-block .content > .additionalBlock > .inpt.btnA button.plus:hover { background: var(--nf-accent-soft); }
.pack-popup.nf2 .guest-block .content > .additionalBlock > .inpt.btnA button.plus::before { content: "+"; font-size: 18px; line-height: 1; }

/* the field box */
.pack-popup.nf2 .pack-popup-blocks .inside-block .content > .inpt.select,
.pack-popup.nf2 .pack-popup-blocks .inside-block .content > .inpt.extras {
    position: relative; height: 54px; display: block;
}
/* select fields: the label covers the whole box because form.js opens the
   custom drop-down (.block-select) on a click on the label */
.pack-popup.nf2 .pack-popup-blocks .inside-block .inpt.select label {
    position: absolute; inset: 0; left: 0; right: 0;
    height: 100% !important; width: 100% !important; margin: 0;
    padding: 8px 0 0; padding-inline: 13px 34px;
    font-size: 11.5px; font-weight: 500; color: var(--nf-muted);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    background: transparent; cursor: pointer;
    pointer-events: auto; z-index: 3; line-height: 1.2;
}
/* add-ons field: form.js listens on .inpt-inside, so the label stays click-through */
.pack-popup.nf2 .pack-popup-blocks .inside-block .inpt.extras > .inner-flex > label {   /* the field label only, not the drop-down options */
    position: absolute; top: 8px; left: auto; right: auto; inset-inline-start: 13px; inset-inline-end: 34px;
    height: auto; width: auto; padding: 0; margin: 0;
    font-size: 11.5px; font-weight: 500; color: var(--nf-muted);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    pointer-events: none; z-index: 3; line-height: 1.2;
}
.pack-popup.nf2 .pack-popup-blocks .inside-block .inpt.select label ~ select,
.pack-popup.nf2 .pack-popup-blocks .inside-block .inpt.select select {
    position: absolute; inset: 0; width: 100%; height: 54px;
    padding: 20px 0 0; padding-inline: 12px 34px;
    border: 1px solid var(--nf-line-2); border-radius: var(--nf-radius-sm);
    background: #fff; font-size: 14.5px; font-weight: 600; color: var(--nf-ink);
    text-overflow: ellipsis; z-index: 1;
}
.pack-popup.nf2 .pack-popup-blocks .inside-block .inpt.extras > .inner-flex {
    position: absolute; inset: 0; display: block; cursor: pointer;
}
.pack-popup.nf2 .pack-popup-blocks .inside-block .inpt.extras .inpt-inside { position: absolute; inset: 0; }
.pack-popup.nf2 .pack-popup-blocks .inside-block .inpt.extras .inpt-inside input[type=text] {
    position: absolute; inset: 0; width: 100%; height: 54px;
    padding: 20px 0 0; padding-inline: 12px 34px;
    border: 1px solid var(--nf-line-2); border-radius: var(--nf-radius-sm);
    background: #fff; font-size: 14.5px; font-weight: 600; color: var(--nf-ink); cursor: pointer;
}
.pack-popup.nf2 .pack-popup-blocks .inside-block .inpt.extras .inpt-inside input::placeholder { color: var(--nf-ink); opacity: .8; }
.pack-popup.nf2 .pack-popup-blocks .inside-block .inpt.extras .inpt-inside .price {
    position: absolute; top: 24px; inset-inline-end: 34px; font-size: 13px; color: var(--nf-muted); z-index: 2;
    line-height: 20px !important; height: auto !important; margin: 0 !important; padding: 0 !important;   /* style.css gives it line-height 44px */
    display: inline-flex; align-items: center; gap: 4px; white-space: nowrap;
}
.pack-popup.nf2 .pack-popup-blocks .inside-block .content > .inpt.select::after,
.pack-popup.nf2 .pack-popup-blocks .inside-block .content > .inpt.extras::after {
    left: auto; right: auto; top: 22px; bottom: auto; inset-inline-end: 15px; inset-inline-start: auto;
    width: 7px; height: 7px; z-index: 4;
    border: 0; border-inline-end: 2px solid var(--nf-ink); border-bottom: 2px solid var(--nf-ink);
    transform: rotate(45deg); opacity: .7;
}
.pack-popup.nf2 .pack-popup-blocks .inside-block .inpt.select label ~ select ~ .selected-price {
    left: auto; right: auto; top: 18px; inset-inline-end: 34px; inset-inline-start: auto;
    line-height: 36px; font-size: 13px; color: var(--nf-muted); z-index: 2; pointer-events: none;
}
.pack-popup.nf2 .pack-popup-blocks .inside-block .inpt.active > select,
.pack-popup.nf2 .pack-popup-blocks .inside-block .inpt.active .inpt-inside input { border-color: var(--nf-blue); box-shadow: 0 0 0 3px var(--nf-blue-soft); }
/* drop-down list */
.pack-popup.nf2 .pack-popup-blocks .inside-block .block-select {
    top: calc(100% + 4px); border-radius: 12px; border-color: var(--nf-line);
    box-shadow: 0 12px 30px rgba(10, 20, 50, .14); padding: 6px; max-height: 320px; overflow: auto; z-index: 30;
}
.pack-popup.nf2 .pack-popup-blocks .inside-block .block-select .option { border-radius: 8px; min-height: 40px; margin-bottom: 2px; }
.pack-popup.nf2 .pack-popup-blocks .inside-block .block-select .option.selected { background: var(--nf-blue-soft); }

/* ---------- Calendar ---------- */
.pack-popup.nf2 .inside-block.arrival-date > .top { margin-bottom: 4px; }
.pack-popup.nf2 .datepicker-inherited.owl-carousel,
.pack-popup.nf2 .datepicker-inherited .owl-stage-outer { height: auto !important; }
.pack-popup.nf2 .datepicker-inherited .month { align-items: stretch; }
.pack-popup.nf2 .datepicker-inherited .month > .month-name {
    font-size: 16px; font-weight: 700; color: var(--nf-ink); line-height: 34px; margin-bottom: 4px;
}
.pack-popup.nf2 .datepicker-inherited .owl-prev,
.pack-popup.nf2 .datepicker-inherited .owl-next { top: 0; width: 34px; height: 34px; border-radius: 50%; background: var(--nf-bg) !important; }
.pack-popup.nf2 .datepicker-inherited .owl-prev::before,
.pack-popup.nf2 .datepicker-inherited .owl-next::before { width: 8px; height: 8px; border-width: 2px !important; }
.pack-popup.nf2 .datepicker-inherited .month > .day { height: 44px; background: none !important; border-radius: 0; }
.pack-popup.nf2 .datepicker-inherited .month > .day::before { display: none; padding: 0; }
.pack-popup.nf2 .datepicker-inherited .month > .day.top { height: 26px; font-size: 11.5px; font-weight: 600; color: var(--nf-faint); }
.pack-popup.nf2 .datepicker-inherited .month > .day > span {
    inset: 3px; margin: auto; max-width: 42px;
    border-radius: 999px; font-size: 14px; font-weight: 700; color: var(--nf-ink);
    flex-direction: column; justify-content: center; flex-wrap: nowrap; line-height: 1.1;
    transition: background .15s ease, color .15s ease;
}
.pack-popup.nf2 .datepicker-inherited .month > .day.top > span { color: var(--nf-faint); font-weight: 600; font-size: 11.5px; }
.pack-popup.nf2 .datepicker-inherited .month > .day > span .plusinfo {
    width: auto; height: auto; top: 0; margin: 1px 0 0; font-size: 9.5px; line-height: 1; gap: 2px;
}
.pack-popup.nf2 .datepicker-inherited .month > .day > span .plusinfo:empty,
.pack-popup.nf2 .datepicker-inherited .month > .day > span .plusval:empty { display: none; }
.pack-popup.nf2 .datepicker-inherited .month > .day .no-enter-icon { width: 8px; height: 8px; margin: 0; }
.pack-popup.nf2 .datepicker-inherited .month > .day .no-enter-icon::after { width: 4px; height: 1.5px; }
.pack-popup.nf2 .datepicker-inherited .month > .day.disabled > span { color: #c6cbd8; font-weight: 500; }
.pack-popup.nf2 .datepicker-inherited .month > .day.noenter > span { color: #c6cbd8; }
.pack-popup.nf2 .datepicker-inherited .month > .day:not(.disabled):not(.top):not(.noenter):hover > span { background: var(--nf-accent-soft); color: var(--nf-accent); }
.pack-popup.nf2 .datepicker-inherited .month > .day.checked > span,
.pack-popup.nf2 .datepicker-inherited .month > .day.checked:hover > span { background: var(--nf-accent) !important; color: #fff !important; }
.pack-popup.nf2 .datepicker-inherited .month > .day:hover .plusinfo { color: inherit; }

/* legend / extra options under the calendar */
.pack-popup.nf2 .arrival-date .qmark-more { margin-top: 6px; font-size: 12.5px; }
.pack-popup.nf2 .arrival-date .datepicker_info { font-size: 12.5px; }
.pack-popup.nf2 .after-date-selected { margin-top: 10px; padding-top: 12px; border-top: 1px solid var(--nf-line); }
.pack-popup.nf2 .after-date-selected .separate-hours > label[for="separate-hours"] { font-size: 13px; color: var(--nf-muted); }

/* ---------- Treatment times ---------- */
.pack-popup.nf2 .pack-popup-blocks .guest-hour > .top { margin: 6px 0 8px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; }
.pack-popup.nf2 .pack-popup-blocks .guest-hour > .top > .title { font-size: 14px; font-weight: 700; color: var(--nf-ink); }
.pack-popup.nf2 .pack-popup-blocks .guest-hour > .top > .title { text-transform: capitalize; }
.pack-popup.nf2 .pack-popup-blocks .guest-hour > .top > .title-guest { font-size: 12.5px; color: var(--nf-muted); }
.pack-popup.nf2 .pack-popup-blocks .guest-hour .guest-hour-block {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px;
    border: 0; box-shadow: none; padding: 0; background: none;
}
@media (min-width: 560px) {
    .pack-popup.nf2 .pack-popup-blocks .guest-hour .guest-hour-block { grid-template-columns: repeat(4, 1fr); }
}
.pack-popup.nf2 .pack-popup-blocks .guest-hour .guest-hour-block > label {
    width: auto; margin: 0; line-height: 42px; height: 42px;
    border-radius: 10px; border: 1px solid var(--nf-line-2);
    font-size: 15px; font-weight: 600; color: var(--nf-ink-2); background: #fff;
}
.pack-popup.nf2 .pack-popup-blocks .guest-hour .guest-hour-block > input:checked + label,
.pack-popup.nf2 .pack-popup-blocks .guest-hour .guest-hour-block > label:hover {
    background: var(--nf-blue); border-color: var(--nf-blue); color: #fff;
}
.pack-popup.nf2 .pack-popup-blocks .guest-hour .guest-hour-block > .more-btn {
    grid-column: 1 / -1; margin: 0; height: 42px; line-height: 40px;
    border-radius: 10px; border: 1px dashed var(--nf-line-2); color: var(--nf-ink-2); font-weight: 600; font-size: 14px;
}

/* ---------- Important info ---------- */
.pack-popup.nf2 .pack-popup-blocks .inside-block.important-to-know .content,
.pack-popup.nf2 .pack-popup-blocks .inside-block.pack-comments .content { padding: 0; font-size: 13px; line-height: 1.55; color: var(--nf-muted); }
.pack-popup.nf2 .pack-popup-blocks .inside-block.important-to-know .content h3 { font-size: 13px; font-weight: 600; color: var(--nf-ink-2); margin: 0 0 2px; }
.pack-popup.nf2 .pack-popup-blocks .inside-block.important-to-know .content p { margin: 0; }

/* ---------- Sticky CTA ---------- */
.pack-popup.nf2 .continue-btn-wrap {
    height: var(--nf-cta-h); padding: 0 14px;
    background: #fff; border-top: 1px solid var(--nf-line);
    border-radius: 0; max-width: none;
}
@media (min-width: 768px) {
    .pack-popup.nf2 .continue-btn-wrap { padding: 0 28px; border-radius: 0 0 22px 22px; }
}
.pack-popup.nf2 .continue-btn-wrap > .continue-btn {
    width: 100%; height: 52px; border-radius: 14px; padding: 0 18px; gap: 12px;
    background: #eceef3; color: #9aa1b2; font-size: 14.5px; line-height: 1.2;
}
.pack-popup.nf2 .continue-btn-wrap > .continue-btn strong { font-weight: 600; overflow: hidden; text-overflow: ellipsis; }
.pack-popup.nf2 .continue-btn-wrap > .continue-btn > div { font-weight: 700; }
.pack-popup.nf2 .continue-btn-wrap > .continue-btn.active { background: var(--nf-accent); color: #fff; box-shadow: 0 6px 16px rgba(227, 24, 95, .28); }
.pack-popup.nf2 .continue-btn-wrap > .continue-btn.active:hover { filter: brightness(1.05); }
.pack-popup.nf2 .continue-btn s { color: currentColor; opacity: .55; margin: 0; margin-inline-start: 6px; font-weight: 500; }
.pack-popup.nf2 .placeclosed { position: absolute; bottom: 100%; left: 0; right: 0; text-align: center; font-size: 13px; background: #fff3f3; color: #b4232f; padding: 6px; }

/* ---------- Step 2: checkout ---------- */
.pack-popup.nf2 .block[data-step="2"][style*="block"] { display: flex !important; flex-direction: column; }
.pack-popup.nf2 .block[data-step="2"] > * { order: 10; }
.pack-popup.nf2 .block[data-step="2"] > .inside-block.passport   { order: 1; }
.pack-popup.nf2 .block[data-step="2"] > .inside-block.register   { order: 2; }
.pack-popup.nf2 .block[data-step="2"] > .inside-block.your-package { order: 3; }
.pack-popup.nf2 .block[data-step="2"] > .inside-block.payment-way  { order: 9; } /* last: right above the "Enter credit card details" button */
.pack-popup.nf2 .block[data-step="2"] > .inside-block.coupon       { order: 4; }
.pack-popup.nf2 .block[data-step="2"] > .inside-block.add-comments { order: 5; }
.pack-popup.nf2 .block[data-step="2"] > .inside-block.important-to-know { order: 6; }
.pack-popup.nf2 .pack-popup-blocks .inside-block.important-to-know { padding: 12px 16px 12px; }
.pack-popup.nf2 .pack-popup-blocks .inside-block.important-to-know > .top { margin: 0 0 4px; min-height: 0; padding: 0; }
.pack-popup.nf2 .pack-popup-blocks .inside-block.important-to-know > .top > .title { font-size: 14px; }
.pack-popup.nf2 .pack-popup-blocks .inside-block.important-to-know .content { padding: 0 !important; margin: 0 !important; }
.pack-popup.nf2 .pack-popup-blocks .inside-block.important-to-know .content :is(h1, h2, h3, h4, p, ul, li) { margin: 0 !important; padding: 0 !important; }
.pack-popup.nf2 .pack-popup-blocks .inside-block.important-to-know .content ul { padding-inline-start: 18px !important; }
.pack-popup.nf2 .block[data-step="2"] > .agree { order: 8; }
/* payment method is shown only after the client accepts the terms (#agree_pt) – class set by nf2.js */
.pack-popup.nf2:not(.nf2-agreed) .block[data-step="2"] > .inside-block.payment-way { display: none !important; }
.pack-popup.nf2.nf2-agreed .block[data-step="2"] > .inside-block.payment-way { margin-top: 10px; }

/* login / guest gate */
.pack-popup.nf2 .nf2-gate-title { font-size: 17px; font-weight: 700; color: var(--nf-ink); margin-bottom: 12px; }
.pack-popup.nf2 .nf2-gate-btns { display: flex; flex-direction: column; gap: 10px; }
.pack-popup.nf2 .nf2-btn {
    display: block; width: 100%; height: 48px; border-radius: 12px;
    font: inherit; font-size: 15px; font-weight: 600; cursor: pointer; transition: all .15s ease;
}
.pack-popup.nf2 .nf2-btn-primary { background: var(--nf-accent); border: 1.5px solid var(--nf-accent); color: #fff; }
.pack-popup.nf2 .nf2-btn-outline { background: #fff; border: 1.5px solid var(--nf-accent); color: var(--nf-accent); }
.pack-popup.nf2 .nf2-gate-note { text-align: center; font-size: 12.5px; color: var(--nf-muted); margin-top: 8px; }
.pack-popup.nf2 .register.nf2-has-gate:not(.nf2-mode-login):not(.nf2-mode-guest) > :not(.nf2-gate) { display: none !important; }
.pack-popup.nf2 .register.nf2-has-gate.nf2-mode-login > .top:not(.top-reg),
.pack-popup.nf2 .register.nf2-has-gate.nf2-mode-login > .form-fill-details,
.pack-popup.nf2 .register.nf2-has-gate.nf2-mode-login > .or,
.pack-popup.nf2 .register.nf2-has-gate.nf2-mode-guest > .top-reg,
.pack-popup.nf2 .register.nf2-has-gate.nf2-mode-guest > .social-login,
.pack-popup.nf2 .register.nf2-has-gate.nf2-mode-guest > .or { display: none !important; }
/* after a choice the gate becomes a compact segmented switch */
.pack-popup.nf2 .register.nf2-mode-login .nf2-gate-title,
.pack-popup.nf2 .register.nf2-mode-guest .nf2-gate-title,
.pack-popup.nf2 .register.nf2-mode-login .nf2-gate-note,
.pack-popup.nf2 .register.nf2-mode-guest .nf2-gate-note { display: none; }
.pack-popup.nf2 .register.nf2-mode-login .nf2-gate-btns,
.pack-popup.nf2 .register.nf2-mode-guest .nf2-gate-btns {
    flex-direction: row; gap: 4px; background: #e9ebf2; border-radius: 12px; padding: 4px; margin-bottom: 14px;
}
.pack-popup.nf2 .register.nf2-mode-login .nf2-btn,
.pack-popup.nf2 .register.nf2-mode-guest .nf2-btn {
    height: 38px; border: 0; border-radius: 9px; background: transparent; color: var(--nf-muted); font-size: 14px;
}
.pack-popup.nf2 .register.nf2-mode-login [data-nf2="login"],
.pack-popup.nf2 .register.nf2-mode-guest [data-nf2="guest"] { background: #fff; color: var(--nf-ink); box-shadow: 0 1px 3px rgba(10,20,50,.1); }

/* inputs on checkout */
.pack-popup.nf2 .pack-popup-blocks .inside-block.register .inputWrap input[type=text],
.pack-popup.nf2 .pack-popup-blocks .inside-block.register .inputWrap input[type=tel],
.pack-popup.nf2 .pack-popup-blocks .inside-block.register .inputWrap input[type=email] {
    border-radius: var(--nf-radius-sm); border-color: var(--nf-line-2);
}
.pack-popup.nf2 .pack-popup-blocks .inside-block.register .inputWrap { margin-bottom: 10px; }

/* price summary */
.pack-popup.nf2 .pack-popup-blocks .inside-block.your-package .top > .title { display: flex; justify-content: space-between; align-items: center; width: 100%; }
.pack-popup.nf2 .pack-popup-blocks .inside-block.your-package .top .title .edit { font-size: 13px; font-weight: 600; color: var(--nf-blue); text-decoration: underline; cursor: pointer; }
.pack-popup.nf2 .pack-popup-blocks .inside-block.your-package > .content { padding: 0 !important; }
.pack-popup.nf2 .pack-popup-blocks .inside-block.your-package brkline { display: none !important; }
.pack-popup.nf2 .pack-popup-blocks .inside-block.your-package .package-top-details .date { margin: 0 !important; padding: 0 0 8px !important; border-bottom: 1px solid var(--nf-line) !important; }
.pack-popup.nf2 .pack-popup-blocks .inside-block.your-package .package-top-details .date .title { display: flex !important; justify-content: space-between !important; width: 100% !important; margin: 0 !important; font-size: 13.5px !important; color: var(--nf-ink-2) !important; }
.pack-popup.nf2 .pack-popup-blocks .inside-block.your-package .package-top-details .date .title > div:last-of-type { font-weight: 700 !important; color: var(--nf-ink) !important; }
.pack-popup.nf2 .pack-popup-blocks .inside-block.your-package > .content > .package-guests { padding: 0 !important; margin: 0 !important; border: 0 !important; }
.pack-popup.nf2 .pack-popup-blocks .inside-block.your-package .guest { margin: 0 !important; padding: 8px 0 !important; gap: 12px !important; align-items: flex-start !important; border-bottom: 1px solid var(--nf-line) !important; font-size: 13.5px; color: var(--nf-ink-2); }
.pack-popup.nf2 .pack-popup-blocks .inside-block.your-package .guest .title { margin: 0 !important; flex: 1 !important; min-width: 0 !important; }
.pack-popup.nf2 .pack-popup-blocks .inside-block.your-package .guest .title div { font-size: 13px !important; line-height: 1.45 !important; color: var(--nf-ink-2) !important; }
.pack-popup.nf2 .pack-popup-blocks .inside-block.your-package .guest .title div b { color: var(--nf-ink) !important; font-weight: 700 !important; }
.pack-popup.nf2 .pack-popup-blocks .inside-block.your-package .guest .l .price { font-size: 14px !important; font-weight: 700 !important; color: var(--nf-ink) !important; }
/* discount lines (package / today / coupon / voucher): same colour as other prices, with a minus sign */
.pack-popup.nf2 .pack-popup-blocks .inside-block.your-package .package-guests:is(.discount, .discounttoday, .cupon, .voucher) .price { color: var(--nf-ink) !important; direction: ltr !important; unicode-bidi: isolate; display: inline-flex !important; flex-direction: row !important; }
.pack-popup.nf2 .pack-popup-blocks .inside-block.your-package .package-guests:is(.discount, .discounttoday, .cupon, .voucher) .price::before { content: "-"; margin-inline-end: 1px; }
.pack-popup.nf2 .pack-popup-blocks .inside-block.your-package .package-guests.totalline:last-of-type .guest { border-top: 1px solid var(--nf-line-2) !important; border-bottom: 0 !important; padding-top: 12px !important; }
.pack-popup.nf2 .pack-popup-blocks .inside-block.your-package .package-guests.totalline:last-of-type .guest .title div { font-size: 17px !important; font-weight: 800 !important; color: var(--nf-ink) !important; }
.pack-popup.nf2 .pack-popup-blocks .inside-block.your-package .package-guests.totalline:last-of-type .price { font-size: 18px !important; font-weight: 800 !important; color: var(--nf-accent) !important; }

/* payment method -> radio cards */
.pack-popup.nf2 .pack-popup-blocks .inside-block.payment-way > .top > .title { text-transform: capitalize; }
.pack-popup.nf2 .pack-popup-blocks .payment-type-options { display: flex !important; flex-direction: column; gap: 8px; padding: 0 !important; margin: 0 !important; }
.pack-popup.nf2 .pack-popup-blocks .payment-type-options > input[type=radio] { position: absolute; opacity: 0; pointer-events: none; }
.pack-popup.nf2 .pack-popup-blocks .payment-type-options > label {
    display: block !important; position: relative; width: 100% !important; margin: 0 !important;
    border: 1.5px solid var(--nf-line-2); border-radius: 12px;
    padding: 12px 14px !important; padding-inline-start: 42px !important;
    font-size: 14.5px !important; font-weight: 700 !important; color: var(--nf-ink) !important;
    text-align: start !important; line-height: 1.35 !important; background: #fff; cursor: pointer;
}
.pack-popup.nf2 .pack-popup-blocks .payment-type-options > label::after { display: none !important; }
.pack-popup.nf2 .pack-popup-blocks .payment-type-options > label::before {
    content: "" !important; position: absolute !important; left: auto; right: auto; inset-inline-start: 14px; top: 14px !important;
    width: 18px !important; height: 18px !important; border-radius: 50% !important;
    border: 2px solid var(--nf-line-2) !important; background: #fff !important;
    margin: 0 !important; transform: none !important; box-sizing: border-box;
}
.pack-popup.nf2 .pack-popup-blocks .payment-type-options > input:checked + label { border-color: var(--nf-accent); background: var(--nf-accent-soft); }
.pack-popup.nf2 .pack-popup-blocks .payment-type-options > input:checked + label::before { border: 5px solid var(--nf-accent) !important; }
.pack-popup.nf2 .pack-popup-blocks .payment-type-options > label small { display: block !important; font-size: 12.5px !important; font-weight: 400 !important; color: var(--nf-muted) !important; margin-top: 3px; line-height: 1.4; }

/* add notes -> a simple link row */
.pack-popup.nf2 .pack-popup-blocks .inside-block.add-comments { padding: 12px 16px; }
.pack-popup.nf2 .pack-popup-blocks .inside-block.add-comments .add-comments-btn {
    display: flex !important; align-items: center; justify-content: flex-start !important; gap: 8px;
    border: 0 !important; padding: 0 !important; margin: 0 !important; height: auto !important; min-height: 0 !important;
    background: none !important; width: auto !important; cursor: pointer;
    font-size: 14px !important; font-weight: 600 !important; color: var(--nf-blue) !important;
}
.pack-popup.nf2 .pack-popup-blocks .inside-block.add-comments .add-comments-btn i { display: inline-flex; width: 18px; height: 18px; margin: 0 !important; position: static !important; }
.pack-popup.nf2 .pack-popup-blocks .inside-block.add-comments .add-comments-btn i svg { width: 18px; height: 18px; fill: var(--nf-blue); }
.pack-popup.nf2 .pack-popup-blocks .inside-block.add-comments .add-comments-btn span { flex: 0 1 auto !important; width: auto !important; margin: 0 !important; text-align: start !important; font-size: 14px !important; color: var(--nf-blue) !important; }
.pack-popup.nf2 .pack-popup-blocks .inside-block.add-comments.active .add-comments-btn { margin-bottom: 8px !important; }
.pack-popup.nf2 .pack-popup-blocks .inside-block.add-comments:not(.active) .textarea { display: none !important; }
.pack-popup.nf2 .pack-popup-blocks .inside-block.add-comments.active textarea { border: 1px solid var(--nf-line-2); border-radius: 12px; padding: 10px; width: 100%; min-height: 80px; font: inherit; font-size: 14px; }
.pack-popup.nf2 .pack-popup-blocks .inside-block.important-to-know .content,
.pack-popup.nf2 .pack-popup-blocks .inside-block.important-to-know .content * { font-size: 13px !important; line-height: 1.55 !important; }

/* coupon collapsed into a link */
.pack-popup.nf2 .inside-block.coupon > .top { margin: 0; cursor: pointer; }
.pack-popup.nf2 .inside-block.coupon > .top .title { font-size: 14px; font-weight: 600; color: var(--nf-blue); width: auto; }
.pack-popup.nf2 .inside-block.coupon > .top::after {
    content: ""; width: 7px; height: 7px; flex: none;
    border-inline-end: 2px solid var(--nf-blue); border-bottom: 2px solid var(--nf-blue);
    transform: rotate(45deg); margin-inline-start: auto;
}
.pack-popup.nf2 .inside-block.coupon:not(.nf2-open) > .content { display: none; }
.pack-popup.nf2 .inside-block.coupon.nf2-open > .top { margin-bottom: 10px; }
.pack-popup.nf2 .inside-block.coupon.nf2-open > .top::after { transform: rotate(-135deg); }

/* add comments + agree */
.pack-popup.nf2 .block[data-step="2"] > .agree { font-size: 13px; color: var(--nf-ink-2); padding: 0 4px; margin-bottom: 6px; }
.pack-popup.nf2 .block[data-step="2"] > .agree a { color: var(--nf-blue); }

/* step 3 (final view) */
.pack-popup.nf2 .finish-order { height: 52px; border-radius: 14px; background: var(--nf-accent); font-size: 16px; }

/* ===== newform2 final screen (after payment) ===== */
.pack-popup.nf2.nf2-finished .nf2-header,
.pack-popup.nf2.nf2-finished .nf2-summary,
.pack-popup.nf2.nf2-finished #top-btns,
.pack-popup.nf2.nf2-finished .continue-btn-wrap { display: none !important; }
.pack-popup.nf2.nf2-finished .pack-popup-container > .close { display: flex !important; z-index: 5; }
.pack-popup.nf2.nf2-finished .pack-popup-content { padding-top: 0 !important; padding-bottom: 0 !important; }
.pack-popup.nf2 .nf2f { padding: 34px 18px 22px; display: flex; flex-direction: column; gap: 14px; color: var(--nf-ink); }
.pack-popup.nf2 .nf2f svg { width: 18px; height: 18px; flex: none; }
.pack-popup.nf2 .nf2f-head { text-align: center; margin-bottom: 6px; }
.pack-popup.nf2 .nf2f-check { display: inline-flex; color: var(--nf-ok); margin-bottom: 10px; }
.pack-popup.nf2 .nf2f-check svg { width: 54px; height: 54px; }
.pack-popup.nf2 .nf2f-title { margin: 0 0 6px; font-size: 24px; line-height: 1.2; font-weight: 800; letter-spacing: -.02em; color: var(--nf-ink); }
.pack-popup.nf2 .nf2f-sub { margin: 0; font-size: 15px; color: var(--nf-muted); }
.pack-popup.nf2 .nf2f-card { background: var(--nf-card); border: 1px solid var(--nf-line); border-radius: var(--nf-radius); padding: 16px; }
.pack-popup.nf2 .nf2f-pack { display: flex; gap: 14px; align-items: center; }
.pack-popup.nf2 .nf2f-pic { width: 76px; height: 76px; flex: none; border-radius: var(--nf-radius-sm); background: var(--nf-bg) center/cover no-repeat; }
.pack-popup.nf2 .nf2f-pack-info { min-width: 0; flex: 1; }
.pack-popup.nf2 .nf2f-pack-title { font-size: 17px; font-weight: 700; line-height: 1.25; }
.pack-popup.nf2 .nf2f-pack-site { font-size: 14px; color: var(--nf-muted); margin-top: 2px; }
.pack-popup.nf2 .nf2f-meta { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 10px; font-size: 13.5px; color: var(--nf-ink-2); }
.pack-popup.nf2 .nf2f-meta-item { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
.pack-popup.nf2 .nf2f-meta-item svg { width: 16px; height: 16px; color: var(--nf-muted); }
.pack-popup.nf2 .nf2f-h { font-size: 16px; font-weight: 700; margin-bottom: 12px; }
.pack-popup.nf2 .nf2f-line { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding: 10px 0; border-top: 1px solid var(--nf-line); }
.pack-popup.nf2 .nf2f-h + .nf2f-line { border-top: 0; padding-top: 0; }
.pack-popup.nf2 .nf2f-line b { display: block; font-size: 15px; font-weight: 700; }
.pack-popup.nf2 .nf2f-line small { display: block; font-size: 13.5px; color: var(--nf-muted); margin-top: 3px; line-height: 1.4; }
.pack-popup.nf2 .nf2f-line > span, .pack-popup.nf2 .nf2f-sum span:last-child, .pack-popup.nf2 .nf2f-total span:last-child { direction: ltr; unicode-bidi: isolate; white-space: nowrap; }
.pack-popup.nf2 .nf2f-line > span { font-size: 15px; font-weight: 600; }
.pack-popup.nf2 .nf2f-sums { border-top: 1px solid var(--nf-line); padding-top: 10px; margin-top: 2px; }
.pack-popup.nf2 .nf2f-sum { display: flex; justify-content: space-between; font-size: 14.5px; color: var(--nf-muted); padding: 3px 0; }
.pack-popup.nf2 .nf2f-total { display: flex; justify-content: space-between; align-items: baseline; border-top: 1px solid var(--nf-line); margin-top: 10px; padding-top: 12px; font-size: 17px; font-weight: 800; }
.pack-popup.nf2 .nf2f-total span:last-child { color: var(--nf-accent); font-size: 19px; }
.pack-popup.nf2 .nf2f-contact { display: flex; align-items: center; gap: 10px; font-size: 15px; padding: 5px 0; overflow-wrap: anywhere; }
.pack-popup.nf2 .nf2f-contact svg { color: var(--nf-muted); }
.pack-popup.nf2 .nf2f-pay { display: flex; gap: 12px; align-items: flex-start; background: var(--nf-accent-soft); border-radius: var(--nf-radius); padding: 14px 16px; }
.pack-popup.nf2 .nf2f-pay-ic { color: var(--nf-accent); display: inline-flex; padding-top: 1px; }
.pack-popup.nf2 .nf2f-pay-ic svg { width: 22px; height: 22px; }
.pack-popup.nf2 .nf2f-pay b { display: block; font-size: 15px; font-weight: 700; color: var(--nf-accent); }
.pack-popup.nf2 .nf2f-pay small { display: block; font-size: 13.5px; color: var(--nf-ink-2); margin-top: 2px; }
.pack-popup.nf2 .nf2f-btn { display: block; width: 100%; margin-top: 4px; border: 0; border-radius: 12px; background: var(--nf-accent); color: #fff; font: inherit; font-size: 17px; font-weight: 700; padding: 16px 20px; cursor: pointer; }
.pack-popup.nf2 .nf2f-btn:hover { filter: brightness(.95); }
@media (max-width: 480px) { .pack-popup.nf2 .nf2f { padding: 28px 14px 18px; } .pack-popup.nf2 .nf2f-pic { width: 64px; height: 64px; } }

/* accompanying guests: drop the duplicate block title, keep only the "+/-" line (and its notes) */
.pack-popup.nf2 .accompanies_amount > .top > .title { display: none !important; }
.pack-popup.nf2 .accompanies_amount > .top { margin: 0 !important; padding: 0 !important; min-height: 0 !important; border: 0 !important; }
.pack-popup.nf2 .accompanies_amount > .top > :not(.title) { margin-bottom: 8px; }

/* drop-down arrows must not swallow the click (the pseudo element sits above the label) */
.pack-popup.nf2 .pack-popup-blocks .inside-block .content > .inpt.select::after,
.pack-popup.nf2 .pack-popup-blocks .inside-block .content > .inpt.extras::after { pointer-events: none; }

/* companion options / guest add-ons drop-down (.inpt.extras .block-select): one clean row per option */
.pack-popup.nf2 .pack-popup-blocks .inside-block .inpt.extras .block-select .option {
    flex-direction: row !important; align-items: center !important; justify-content: flex-start !important;
    gap: 12px; padding: 10px 12px !important; min-height: 48px; cursor: pointer;
}
.pack-popup.nf2 .pack-popup-blocks .inside-block .inpt.extras .block-select .option > span { z-index: 0 !important; border-radius: 8px; }
.pack-popup.nf2 .pack-popup-blocks .inside-block .inpt.extras .block-select .option label.title {
    position: relative !important; inset: auto !important; top: auto !important;
    display: flex !important; flex-direction: column; align-items: flex-start; flex: 1 1 auto;
    width: auto !important; height: auto !important; margin: 0 !important;
    padding: 0 !important; padding-inline-start: 30px !important;
    font-size: 14.5px; font-weight: 600; color: var(--nf-ink); line-height: 1.3;
    white-space: normal; overflow: visible; pointer-events: auto; cursor: pointer; z-index: 1;
}
.pack-popup.nf2 .pack-popup-blocks .inside-block .inpt.extras .block-select .option label.title b { margin: 0 !important; font-size: 14.5px; font-weight: 600; }
.pack-popup.nf2 .pack-popup-blocks .inside-block .inpt.extras .block-select .option label.title .desc { font-size: 12.5px; font-weight: 400; color: var(--nf-muted); margin-top: 2px; }
.pack-popup.nf2 .pack-popup-blocks .inside-block .inpt.extras .block-select .option label.title .desc:empty { display: none; }
/* radio (companions) / checkbox (add-ons) mark */
.pack-popup.nf2 .pack-popup-blocks .inside-block .inpt.extras .block-select .option input ~ label.title::before {
    content: "" !important; position: absolute !important; top: 50% !important; transform: translateY(-50%) !important;
    left: auto !important; right: auto !important; inset-inline-start: 0 !important; margin: 0 !important;
    width: 18px !important; height: 18px !important; box-sizing: border-box;
    border: 1.5px solid var(--nf-line-2) !important; border-radius: 5px !important; background: #fff !important;
}
.pack-popup.nf2 .pack-popup-blocks .inside-block .inpt.extras .block-select .option input[type=radio] ~ label.title::before { border-radius: 50% !important; }
.pack-popup.nf2 .pack-popup-blocks .inside-block .inpt.extras .block-select .option input:checked ~ label.title::before {
    border-color: var(--nf-accent) !important; background: var(--nf-accent) !important;
}
.pack-popup.nf2 .pack-popup-blocks .inside-block .inpt.extras .block-select .option input ~ label.title::after { content: none !important; }
.pack-popup.nf2 .pack-popup-blocks .inside-block .inpt.extras .block-select .option input:checked ~ label.title::after {
    content: "" !important; position: absolute !important; top: 50% !important; left: auto !important; right: auto !important;
    inset-inline-start: 6px !important; width: 6px !important; height: 6px !important; margin: 0 !important;
    transform: translateY(-50%) !important; border: 0 !important; border-radius: 50% !important; background: #fff !important;
}
.pack-popup.nf2 .pack-popup-blocks .inside-block .inpt.extras .block-select .option .price {
    position: relative !important; left: auto !important; right: auto !important; inset: auto !important;
    margin-inline-start: auto; flex: none; z-index: 1;
    font-size: 14px; font-weight: 600; color: var(--nf-ink); line-height: 1.3; white-space: nowrap;
}
