/* Nasma Booking — front-end components (listings, cards, booking widget, confirmation).
   Coastal light theme; inherits the theme's design tokens with safe fallbacks. */
:root{
  --nz-blue: var(--c-blue, #0e6ba8);
  --nz-blue-d: var(--c-blue-d, #0a4d74);
  --nz-teal: var(--c-teal, #10b59f);
  --nz-teal-d: var(--c-teal-d, #0c8f7e);
  --nz-grad: var(--grad, linear-gradient(135deg,#0e6ba8,#10b59f));
  --nz-bg: var(--bg, #ffffff);
  --nz-surface: var(--surface, #f1f8fc);
  --nz-surface-2: var(--surface-2, #e6f2f8);
  --nz-text: var(--text, #0f3950);
  --nz-mut: var(--muted, #5d7a8c);
  --nz-line: var(--line, rgba(15,57,80,.12));
  --nz-line-2: var(--line-2, rgba(15,57,80,.20));
  --nz-shadow: var(--shadow-sm, 0 10px 30px -16px rgba(8,46,68,.35));
  --nz-radius: 18px;
}

/* ---- Filter bar ---- */
.nasma-listings{max-width:1200px;margin:0 auto;padding:0 24px}
.nasma-filter{display:flex;gap:18px;align-items:flex-end;flex-wrap:wrap;background:#fff;border:1px solid var(--nz-line);
  border-radius:var(--nz-radius);padding:18px 22px;margin:0 0 28px;box-shadow:var(--nz-shadow)}
.nasma-filter__group{display:flex;flex-direction:column;gap:6px}
.nasma-filter__group label{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--nz-mut);font-weight:600}
.nasma-filter select{background:#fff;color:var(--nz-text);border:1px solid var(--nz-line-2);border-radius:12px;padding:11px 14px;min-width:170px;font-size:.95rem}
.nasma-filter select:focus{outline:none;border-color:var(--nz-teal)}
.nasma-filter__count{margin-left:auto;color:var(--nz-teal-d);font-weight:700;letter-spacing:.02em}

/* ---- Grid + cards ---- */
.nasma-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:26px}
@media(max-width:560px){.nasma-listings{padding:0 18px}}
@media(max-width:360px){.nasma-grid{grid-template-columns:1fr}}
.nasma-empty{grid-column:1/-1;color:var(--nz-mut);text-align:center;padding:40px}
.nasma-card{background:#fff;border:1px solid var(--nz-line);border-radius:var(--nz-radius);overflow:hidden;display:flex;flex-direction:column;
  box-shadow:var(--nz-shadow);transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease}
.nasma-card:hover{transform:translateY(-6px);border-color:rgba(16,181,159,.5);box-shadow:0 26px 50px -26px rgba(8,46,68,.5)}
.nasma-card__media{position:relative;display:block;aspect-ratio:4/3;overflow:hidden}
.nasma-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}
.nasma-card:hover .nasma-card__media img{transform:scale(1.07)}
.nasma-card__ph{position:absolute;inset:0;background:linear-gradient(135deg,#cfe6f1,#e7f2f8 60%,#d6f0ea)}
.nasma-card__city{position:absolute;left:14px;bottom:12px;color:#fff;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;text-shadow:0 2px 10px rgba(0,0,0,.6)}
.nasma-badge{position:absolute;top:12px;right:12px;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;padding:5px 11px;border-radius:999px;
  background:rgba(255,255,255,.92);color:var(--nz-teal-d);border:1px solid rgba(255,255,255,.6);backdrop-filter:blur(6px);box-shadow:var(--nz-shadow)}
.nasma-badge.is-booked{color:#d6452f}
.nasma-badge.is-maint{color:#b5791b}
.nasma-card__body{padding:18px 20px 20px;display:flex;flex-direction:column;gap:8px;flex:1}
.nasma-card__title{font-size:1.18rem;margin:0;line-height:1.25;font-family:'Fraunces',Georgia,serif}
.nasma-card__title a{color:var(--nz-text);text-decoration:none}
.nasma-card__title a:hover{color:var(--nz-teal-d)}
.nasma-card__meta{color:var(--nz-mut);font-size:.9rem;margin:0}
.nasma-card__rates{margin-top:auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:6px 12px;padding-top:14px;border-top:1px solid var(--nz-line)}
.nasma-card__rates .rate{display:flex;flex-direction:column;gap:2px;text-align:left}
.nasma-card__rates .rate+.rate{border-left:1px solid var(--nz-line);padding-left:12px}
.nasma-card__rates .rate span{font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--nz-mut)}
.nasma-card__rates .rate strong{color:var(--nz-blue-d);font-size:1rem;white-space:nowrap;font-weight:700}
.nasma-card__rates .rate--req{grid-column:1/-1}
.nasma-card__rates .rate--req strong{color:var(--nz-text)}
.nasma-card__foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:14px}
.nasma-card__memtag{margin-top:auto;font-size:.72rem;font-weight:700;color:var(--nz-teal-d);letter-spacing:.04em}
.nasma-card__memtag + .nasma-card__rates{margin-top:6px;border-top:none;padding-top:0}
.rate__was{display:block;font-size:.72rem;color:var(--nz-mut);text-decoration:line-through;font-weight:400}
.nasma-book__was{color:var(--nz-mut);text-decoration:line-through;font-weight:400;font-size:1rem;margin-left:6px}
.nasma-book__memnote{color:var(--nz-teal-d);font-weight:700}

/* ---- Buttons ---- */
.nasma-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;background:var(--nz-grad);color:#fff;border:none;
  font-weight:700;letter-spacing:.01em;padding:13px 22px;border-radius:999px;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease;font-size:.95rem}
.nasma-btn:hover{transform:translateY(-2px);box-shadow:0 14px 28px -12px rgba(16,181,159,.6);color:#fff}
.nasma-btn--sm{padding:9px 16px;font-size:.85rem}
.nasma-btn--block{width:100%}
.nasma-btn[disabled]{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}
/* keep button text white even inside .prose / page content (which styles links dark+underline) */
a.nasma-btn,.prose a.nasma-btn,.nasma-confirm a.nasma-btn{color:#fff;text-decoration:none}
a.nasma-btn:hover,.prose a.nasma-btn:hover,.nasma-confirm a.nasma-btn:hover{color:#fff;text-decoration:none}

/* ---- Booking widget ---- */
.nasma-book{background:#fff;border:1px solid var(--nz-line);border-radius:var(--nz-radius);padding:24px;position:sticky;top:100px;box-shadow:var(--shadow,0 24px 50px -28px rgba(8,46,68,.45))}
.nasma-book__price{display:flex;flex-direction:column;gap:3px;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--nz-line)}
.nasma-book__price strong{font-size:1.8rem;color:var(--nz-blue-d)}
.nasma-book__alt{color:var(--nz-mut);font-size:.85rem}
.nasma-book__row{display:flex;gap:12px;margin-bottom:12px}
.nasma-book__row label{flex:1;display:flex;flex-direction:column;gap:6px;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--nz-mut);font-weight:600}
.nasma-book input,.nasma-book select{background:#fff;color:var(--nz-text);border:1px solid var(--nz-line-2);border-radius:10px;padding:11px 12px;font-size:.95rem;width:100%}
.nasma-book input:focus,.nasma-book select:focus{outline:none;border-color:var(--nz-teal)}
.nasma-book hr{border:none;border-top:1px solid var(--nz-line);margin:16px 0}
.nasma-book__estimate{background:var(--nz-surface);border:1px dashed var(--nz-teal);border-radius:12px;padding:14px;color:var(--nz-blue-d);font-weight:600;text-align:center;font-size:.95rem;display:flex;flex-direction:column;gap:3px}
.nasma-est__tier{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--nz-teal-d)}
.nasma-est__total{font-size:1.4rem;color:var(--nz-blue-d)}
.nasma-est__calc{font-size:.8rem;font-weight:500;color:var(--nz-mut)}
.nasma-book__rateinfo{color:var(--nz-mut);font-size:.76rem;line-height:1.5;margin:10px 0 0}
.nasma-book__rateinfo strong{color:var(--nz-text)}
.nasma-book__note{color:var(--nz-mut);font-size:.78rem;text-align:center;margin:10px 0 0}
.nasma-confirm__calc{color:var(--nz-mut);font-size:.88rem;background:var(--nz-surface);border-radius:10px;padding:10px 14px;margin:0 0 22px}
.nasma-est__member{color:var(--nz-teal-d);font-weight:700;font-size:.82rem;margin-top:2px}
.nasma-book__member{margin:8px 0 0;font-size:.8rem;background:var(--nz-surface);border:1px solid rgba(16,181,159,.35);border-radius:10px;padding:9px 12px;color:var(--nz-text)}
.nasma-book__member a{color:var(--nz-teal-d);font-weight:600}

/* ---- Account & auth ---- */
.nasma-auth,.nasma-account{max-width:920px;margin:0 auto;padding:0 24px}
.nasma-auth__grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
@media(max-width:680px){.nasma-auth__grid{grid-template-columns:1fr}}
.nasma-auth__card{background:#fff;border:1px solid var(--nz-line);border-radius:16px;padding:28px;box-shadow:var(--nz-shadow)}
.nasma-auth__card h3{font-family:'Fraunces',Georgia,serif;font-size:1.4rem;margin:0 0 14px}
.nasma-auth__note{color:var(--nz-mut);font-size:.9rem;margin:0 0 14px}
.nasma-auth__card form{display:flex;flex-direction:column;gap:14px}
.nasma-auth__card label{display:flex;flex-direction:column;gap:6px;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--nz-mut);font-weight:600}
.nasma-auth__card input{background:#fff;color:var(--nz-text);border:1px solid var(--nz-line-2);border-radius:10px;padding:12px 13px;font:inherit;text-transform:none;letter-spacing:normal}
.nasma-auth__card input:focus{outline:none;border-color:var(--nz-teal)}
.nasma-auth__err{background:#fbe9e9;border:1px solid #e3b7b7;color:#a32626;border-radius:10px;padding:12px 14px;max-width:920px;margin:0 auto 18px}
.nasma-auth__ok{background:var(--nz-surface);border:1px solid var(--nz-teal);color:var(--nz-teal-d);border-radius:10px;padding:12px 14px;max-width:920px;margin:0 auto 18px}
.nasma-account__head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;flex-wrap:wrap;margin-bottom:26px}
.nasma-account h2{font-family:'Fraunces',Georgia,serif;margin:0 0 8px}
.nasma-account h3{font-family:'Fraunces',Georgia,serif;font-size:1.3rem;margin:24px 0 14px}
.nasma-badge-ok{color:var(--nz-teal-d);font-weight:600;margin:0}
.nasma-badge-pending{color:#8a6d1a;background:#fff7e6;border:1px solid #f0d999;border-radius:10px;padding:8px 12px;margin:0;display:inline-block}
.nasma-mybookings{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--nz-line);border-radius:14px;overflow:hidden}
.nasma-mybookings th,.nasma-mybookings td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--nz-line);font-size:.92rem}
.nasma-mybookings th{background:var(--nz-surface);color:var(--nz-mut);text-transform:uppercase;font-size:.72rem;letter-spacing:.08em}
.nasma-mybookings tr:last-child td{border-bottom:none}

/* ---- Confirmation ---- */
.nasma-confirm{max-width:640px;margin:60px auto;background:#fff;border:1px solid var(--nz-line);border-radius:22px;padding:46px 40px;text-align:center;box-shadow:var(--shadow,0 24px 50px -28px rgba(8,46,68,.45))}
.nasma-confirm__icon{width:64px;height:64px;border-radius:50%;margin:0 auto 18px;display:grid;place-items:center;font-size:1.8rem;color:#fff;background:var(--nz-grad)}
.nasma-confirm h2{margin:0 0 10px;font-size:1.8rem;font-family:'Fraunces',Georgia,serif}
.nasma-confirm__lead{color:var(--nz-mut);margin-bottom:22px}
.nasma-confirm__details{list-style:none;margin:0 0 22px;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--nz-line);border:1px solid var(--nz-line);border-radius:14px;overflow:hidden}
.nasma-confirm__details li{background:#fff;padding:14px 16px;display:flex;flex-direction:column;gap:4px}
.nasma-confirm__details span{color:var(--nz-mut);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}
.nasma-confirm__rt{background:var(--nz-surface);border:1px solid var(--nz-line-2);border-radius:14px;padding:18px 20px;margin-bottom:24px;text-align:left;color:var(--nz-text)}
.nasma-confirm__rt p{margin:0 0 8px}
.nasma-confirm__note{color:var(--nz-teal-d);margin-bottom:22px}

@media(max-width:600px){.nasma-book__row{flex-direction:column}.nasma-confirm__details{grid-template-columns:1fr}}

/* ---- Checkout / payment ---- */
.nasma-checkout{max-width:920px;margin:0 auto;display:grid;grid-template-columns:1.1fr 1fr;gap:28px;align-items:start}
@media(max-width:820px){.nasma-checkout{grid-template-columns:1fr}}
.nasma-checkout__summary,.nasma-checkout__pay{background:#fff;border:1px solid var(--nz-line);border-radius:18px;padding:26px;box-shadow:var(--nz-shadow)}
.nasma-checkout h2{font-family:'Fraunces',Georgia,serif;margin:0 0 6px}
.nasma-checkout__lead{color:var(--nz-mut);margin:0 0 18px}
.nasma-checkout__total{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--nz-line);margin-top:14px;padding-top:16px}
.nasma-checkout__total span{color:var(--nz-mut);text-transform:uppercase;font-size:.74rem;letter-spacing:.08em}
.nasma-checkout__total strong{font-size:1.6rem;color:var(--nz-blue-d)}
.nasma-checkout__pay h3{font-family:'Fraunces',Georgia,serif;font-size:1.3rem;margin:0 0 14px}
.nasma-pay{min-height:60px}
.nasma-pay__pending{background:var(--nz-surface);border:1px solid var(--nz-line-2);border-radius:12px;padding:16px 18px;color:var(--nz-text)}
.nasma-pay__pending p{margin:0 0 8px}.nasma-pay__pending p:last-child{margin:0}
.nasma-pay__adminnote{margin-top:14px;font-size:.8rem;color:#8a6d1a;background:#fff8e6;border:1px dashed #e3c878;border-radius:10px;padding:10px 12px}
.nasma-pay__adminnote code{background:rgba(0,0,0,.06);padding:1px 5px;border-radius:4px}

/* ---- Reviews ---- */
.nasma-stars{display:inline-flex;gap:2px;color:#d7dee5;font-size:1.05rem;letter-spacing:1px}
.nasma-stars .on{color:#ffb347}
.nasma-reviews{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px}
.nasma-review{margin:0;background:#fff;border:1px solid var(--nz-line);border-radius:16px;padding:24px;box-shadow:var(--nz-shadow);display:flex;flex-direction:column;gap:12px}
.nasma-review blockquote{margin:0;color:#3c5e70;font-size:.98rem;line-height:1.6}
.nasma-review blockquote::before{content:"“";color:var(--nz-teal);font-size:1.4rem;font-weight:700;margin-right:2px}
.nasma-review figcaption{display:flex;flex-direction:column;gap:2px;margin-top:auto}
.nasma-review figcaption strong{color:var(--nz-text)}
.nasma-review figcaption span{color:var(--nz-mut);font-size:.82rem}
.nasma-review__unit{color:var(--nz-teal-d)!important;font-weight:600}

/* ---- Review form ---- */
.rvform-wrap{max-width:760px;margin:36px auto 0;background:var(--nz-surface);border:1px solid var(--nz-line);border-radius:18px;padding:28px}
.rvform-wrap h3{font-family:'Fraunces',Georgia,serif;font-size:1.4rem;margin:0 0 16px}
.nasma-rvform{display:flex;flex-direction:column;gap:14px}
.nasma-rvform__row{display:flex;gap:14px;align-items:flex-end}
.nasma-rvform__row>label{flex:1}
.nasma-rvform .rv-lbl{display:block;min-height:1.05em}
.nasma-rvform label,.nasma-rvform__full{display:flex;flex-direction:column;gap:6px;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--nz-mut);font-weight:600}
.nasma-rvform input,.nasma-rvform select,.nasma-rvform textarea{background:#fff;color:var(--nz-text);border:1px solid var(--nz-line-2);border-radius:10px;padding:12px 13px;font:inherit;text-transform:none;letter-spacing:normal}
.nasma-rvform input:focus,.nasma-rvform select:focus,.nasma-rvform textarea:focus{outline:none;border-color:var(--nz-teal)}
.nasma-rvform .nasma-btn{align-self:flex-start}
.nasma-rvform__thanks{background:#fff;border:1px solid var(--nz-teal);color:var(--nz-teal-d);border-radius:10px;padding:12px 14px;font-weight:600}
@media(max-width:560px){.nasma-rvform__row{flex-direction:column}}

/* ---- Testimonials slider ---- */
.nasma-rvslider{position:relative;padding:0 58px}
@media(max-width:640px){.nasma-rvslider{padding:0}}
.nasma-rvslider__track{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;
  -ms-overflow-style:none;scrollbar-width:none;padding:6px 2px 14px}
.nasma-rvslider__track::-webkit-scrollbar{display:none}
.nasma-review--slide{scroll-snap-align:start;flex:0 0 calc(33.333% - 15px);min-width:300px}
@media(max-width:980px){.nasma-review--slide{flex:0 0 calc(50% - 11px)}}
@media(max-width:640px){.nasma-review--slide{flex:0 0 88%}}
.rvslider-arrow{position:absolute;top:42%;transform:translateY(-50%);z-index:3;width:46px;height:46px;border-radius:50%;border:none;
  background:#fff;color:var(--nz-blue-d);font-size:1.4rem;cursor:pointer;box-shadow:var(--nz-shadow);display:grid;place-items:center;transition:transform .2s,background .2s}
.rvslider-arrow:hover{transform:translateY(-50%) scale(1.08)}
.rvslider-arrow--prev{left:4px}
.rvslider-arrow--next{right:4px}
@media(max-width:640px){.rvslider-arrow{display:none}}

/* Live availability note in the booking widget */
.nasma-book__avail{font-size:.86rem;margin:.35rem 0 0;min-height:1.1em;color:#5a6b7b}
.nasma-book__avail.is-ok{color:#1a7a45;font-weight:600}
.nasma-book__avail.is-full{color:#c0392b;font-weight:700}

/* Checkout: breathing room under the Pay button */
#nasma-geidea-pay{margin-bottom:1rem}
.nasma-pay__secure{margin-top:.9rem}
.nasma-checkout__pay .nasma-book__note{margin-top:1.1rem}
