@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Inter:wght@400;500;600&display=swap');

.nexa-booking, .nexa-admin{
  --nx-bg:#F5F0EA; --nx-surface:#FFFFFF; --nx-ink:#241C1A; --nx-muted:#8C8078;
  --nx-line:#E7DED4; --nx-wine:#6E1B3B; --nx-wine-dark:#551029; --nx-gold:#B08D57;
  --nx-ok:#2F6F4F; --nx-ok-bg:#EAF3ED; --nx-radius:14px; --nx-shadow:0 10px 30px rgba(60,30,40,.08);
  font-family:"Inter",system-ui,sans-serif;color:var(--nx-ink);line-height:1.55;
}
.nexa-booking *,.nexa-admin *{box-sizing:border-box}
.nexa-booking h2,.nexa-booking h3,.nexa-booking h4,.nexa-booking .serif{
  font-family:"Cormorant Garamond",Georgia,serif;font-weight:600;letter-spacing:.2px;margin:0;
}
.nexa-booking button{font-family:inherit;cursor:pointer}

/* page canvas: cream background + centered 1080 column, matching the mockup */
.nexa-booking{max-width:1080px;margin:0 auto;padding:48px 24px 80px;}
/* the shop theme force-uppercases headings — keep the mockup's sentence case */
.nexa-booking h1,.nexa-booking h2,.nexa-booking h3,.nexa-booking h4{text-transform:none!important}

/* ---- gallery (desktop) + slider (mobile): shared slide internals ---- */
.nexa-slide-bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:blur(26px) brightness(.5);transform:scale(1.25);z-index:0}
.nexa-slide-img{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:contain;display:block}
.nexa-caption{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:46px 30px 26px;background:linear-gradient(to top,rgba(0,0,0,.80) 0%,rgba(0,0,0,.45) 42%,rgba(0,0,0,0) 100%);color:#fff}
.nexa-caption .nexa-k{font-family:"Inter",sans-serif;font-size:11px;letter-spacing:2.5px;text-transform:uppercase;opacity:.9;margin:0 0 6px}
.nexa-caption h3{font-family:"Cormorant Garamond",Georgia,serif;font-weight:600;font-size:clamp(20px,2.6vw,30px);line-height:1.2;color:#fff;margin:0}
/* placeholder look when no image is set */
.nexa-ph{display:flex;align-items:center;justify-content:center}
.nexa-ph::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 120% at 80% 20%,rgba(255,255,255,.14),transparent 55%)}
.nexa-ph-inner{text-align:center;color:#fff;padding:24px;z-index:2}
.nexa-ph-inner .nexa-k{font-size:11px;letter-spacing:3px;text-transform:uppercase;opacity:.85;margin:0 0 10px}
.nexa-ph-inner .nexa-cap{font-family:"Cormorant Garamond",Georgia,serif;font-size:clamp(24px,3.4vw,40px);font-weight:600;line-height:1.12;margin:0;max-width:20ch}
.nexa-ph1{background:linear-gradient(135deg,#5B1330 0%,#8A2B4E 55%,#B4617D 100%)}
.nexa-ph2{background:linear-gradient(135deg,#3A1226 0%,#6E1B3B 60%,#B08D57 130%)}
.nexa-ph3{background:linear-gradient(135deg,#6E1B3B 0%,#A34B67 60%,#E6C9B0 120%)}

/* horizontal gallery (desktop / big tablet) — equal 4:5 tiles */
.nexa-gallery{display:none;grid-template-columns:repeat(3,1fr);gap:16px;margin:0 0 40px}
.nexa-gtile{position:relative;aspect-ratio:4/5;border-radius:16px;overflow:hidden;box-shadow:var(--nx-shadow);background:#1E0C14}
.nexa-gtile .nexa-slide-bg{display:none}
.nexa-gtile .nexa-slide-img{object-fit:cover;object-position:center}
.nexa-gtile.nexa-ph{display:flex;align-items:center;justify-content:center}
.nexa-gtile.nexa-ph .nexa-ph-inner{padding:20px}
.nexa-gtile.nexa-ph .nexa-ph-inner .nexa-cap{font-size:22px;line-height:1.15}
.nexa-gtile .nexa-caption{padding:42px 20px 18px}
.nexa-gtile .nexa-caption h3{font-size:clamp(16px,1.5vw,21px)}
.nexa-gtile .nexa-caption .nexa-k{font-size:10px;margin:0 0 4px}

/* slider frame (mobile / small tablet) */
.nexa-slider{position:relative;border-radius:18px;overflow:hidden;margin:0 0 40px;box-shadow:var(--nx-shadow);background:#1E0C14;aspect-ratio:16/7;touch-action:pan-y}
.nexa-slides{display:flex;height:100%;transition:transform .6s cubic-bezier(.4,0,.2,1)}
.nexa-slide{position:relative;min-width:100%;height:100%;overflow:hidden}
.nexa-sl-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.85);color:var(--nx-wine-dark);font-size:20px;line-height:1;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(0,0,0,.18);transition:.15s}
.nexa-sl-arrow:hover{background:#fff;transform:translateY(-50%) scale(1.06)}
.nexa-sl-prev{left:16px}
.nexa-sl-next{right:16px}
.nexa-sl-dots{position:absolute;left:0;right:0;bottom:14px;z-index:5;display:flex;gap:8px;justify-content:center}
.nexa-sl-dot{width:8px;height:8px;border-radius:50%;border:0;background:rgba(255,255,255,.6);padding:0;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.4)}
.nexa-sl-dot.active{background:#fff;width:22px;border-radius:5px}

@media(min-width:900px){ .nexa-slider{display:none} .nexa-gallery{display:grid} }
@media(max-width:640px){
  .nexa-slider{aspect-ratio:3/4;border-radius:14px;margin-bottom:32px}
  .nexa-sl-arrow{width:38px;height:38px;font-size:17px}
  .nexa-sl-prev{left:10px}
  .nexa-sl-next{right:10px}
}
@media(prefers-reduced-motion:reduce){
  .nexa-slides{transition:none}
}

/* hero */
.nexa-hero .nexa-eyebrow{font-size:12px;letter-spacing:3px;text-transform:uppercase;color:var(--nx-wine);font-weight:600;margin:0 0 14px}
.nexa-h1{font-size:clamp(30px,4.5vw,48px);line-height:1.08;margin:0 0 22px;max-width:none}
.nexa-intro{max-width:none;width:100%;color:#41352F;font-size:16.5px;margin:0}
.nexa-subtitle{font-family:"Cormorant Garamond",Georgia,serif;font-size:clamp(22px,3vw,30px);margin:44px 0 20px;color:var(--nx-wine-dark)}

.nexa-grid{display:grid;grid-template-columns:320px 1fr;gap:24px;align-items:start}
@media(max-width:820px){.nexa-grid{grid-template-columns:1fr}}

.nexa-panel{background:var(--nx-surface);border:1px solid var(--nx-line);border-radius:var(--nx-radius);box-shadow:var(--nx-shadow);padding:26px}
.nexa-ring{width:54px;height:54px;margin-bottom:16px}
.nexa-service-title{font-size:24px;margin:0 0 4px}
.nexa-brand{font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--nx-muted);margin:0 0 20px}
.nexa-meta{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.nexa-meta li{display:flex;gap:10px;align-items:center;font-size:14.5px}
.nexa-ic{width:20px;text-align:center}
.nexa-free{color:var(--nx-ok);font-weight:600}
.nexa-note{margin:22px 0 0;font-size:13.5px;color:var(--nx-muted);border-top:1px solid var(--nx-line);padding-top:18px}

.nexa-interact{min-height:420px}
.nexa-calwrap{display:grid;grid-template-columns:1fr;gap:28px}
.nexa-calwrap.with-slots{grid-template-columns:1.1fr .9fr}
@media(max-width:640px){.nexa-calwrap.with-slots{grid-template-columns:1fr}}

.nexa-calhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.nexa-calhead .m{font-family:"Cormorant Garamond",serif;font-size:21px;font-weight:600}
.nexa-calnav{display:flex;gap:6px}
.nexa-calnav button{width:34px;height:34px;border-radius:8px;border:1px solid var(--nx-line);background:#fff;color:var(--nx-ink);font-size:15px;line-height:1}
.nexa-calnav button:hover:not(:disabled){border-color:var(--nx-wine);color:var(--nx-wine)}
.nexa-calnav button:disabled{opacity:.3;cursor:not-allowed}

.nexa-dow{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:6px}
.nexa-dow span{text-align:center;font-size:11px;letter-spacing:.5px;text-transform:uppercase;color:var(--nx-muted)}
.nexa-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.nexa-day{aspect-ratio:1;border:0;background:transparent;border-radius:50%;font-size:14px;color:var(--nx-ink);position:relative;display:flex;align-items:center;justify-content:center;transition:.12s}
.nexa-day.pad{visibility:hidden}
.nexa-day.avail{background:#F3E9EC;color:var(--nx-wine-dark);font-weight:600}
.nexa-day.avail:hover{background:var(--nx-wine);color:#fff}
.nexa-day.selected{background:var(--nx-wine);color:#fff;box-shadow:0 0 0 3px rgba(110,27,59,.18)}
.nexa-day.disabled{color:#C9BEB4;cursor:not-allowed}
.nexa-day .dot{position:absolute;bottom:6px;width:5px;height:5px;border-radius:50%;background:var(--nx-gold)}
.nexa-day .badge{position:absolute;top:2px;right:2px;background:var(--nx-wine);color:#fff;font-size:9px;min-width:15px;height:15px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 3px;font-weight:600}
.nexa-day.has{background:#F3E9EC}

.nexa-tz{margin-top:16px;font-size:13px;color:var(--nx-muted)}

.nexa-slots-head{font-family:"Cormorant Garamond",serif;font-size:20px;margin:0 0 4px}
.nexa-slots-sub{font-size:13px;color:var(--nx-muted);margin:0 0 16px}
.nexa-slots{display:flex;flex-direction:column;gap:8px;max-height:360px;overflow:auto;padding-right:4px}
.nexa-slot{padding:13px;border:1.5px solid var(--nx-wine);border-radius:10px;background:#fff;color:var(--nx-wine);font-weight:600;font-size:15px;text-align:center;transition:.12s}
.nexa-slot:hover{background:var(--nx-wine);color:#fff}
.nexa-slot.taken{border-color:var(--nx-line);background:#F7F3EE;color:#C0B4A9;cursor:not-allowed;text-decoration:line-through}
.nexa-loading{color:var(--nx-muted);font-size:14px;padding:20px 0}

.nexa-back{background:none;border:0;color:var(--nx-wine);font-size:14px;font-weight:600;padding:0;margin-bottom:18px}
.nexa-summary{background:#FBF7F2;border:1px solid var(--nx-line);border-radius:12px;padding:18px 20px;margin-bottom:24px}
.nexa-summary .t{font-family:"Cormorant Garamond",serif;font-size:20px;margin:0 0 12px;color:var(--nx-wine-dark)}
.nexa-summary ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.nexa-summary li{font-size:14px}
.nexa-summary .free{color:var(--nx-ok);font-weight:600}

.nexa-field{margin-bottom:16px}
.nexa-field label{display:block;font-size:13px;font-weight:600;margin-bottom:6px}
.nexa-field .req{color:var(--nx-wine)}
.nexa-field input,.nexa-field textarea{width:100%;padding:12px 14px;border:1px solid var(--nx-line);border-radius:10px;font-size:15px;font-family:inherit;background:#fff;color:var(--nx-ink)}
.nexa-field input:focus,.nexa-field textarea:focus{outline:0;border-color:var(--nx-wine);box-shadow:0 0 0 3px rgba(110,27,59,.12)}
.nexa-field textarea{resize:vertical;min-height:76px}
.nexa-field.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:520px){.nexa-field.two{grid-template-columns:1fr}}
.nexa-err{color:#B4322F;font-size:12.5px;margin-top:5px;display:none}
.nexa-field.invalid input{border-color:#B4322F}
.nexa-field.invalid .nexa-err{display:block}
.nexa-hp{position:absolute;left:-9999px;top:-9999px}

.nexa-cta{width:100%;padding:15px;border:0;border-radius:10px;background:var(--nx-wine);color:#fff;font-size:15px;font-weight:600;letter-spacing:.3px;transition:.15s}
.nexa-cta:hover{background:var(--nx-wine-dark)}
.nexa-cta:disabled{opacity:.6;cursor:default}
.nexa-formerr{color:#B4322F;font-size:13.5px;margin-top:12px}

.nexa-confirm{text-align:center;padding:26px 8px}
.nexa-check{width:66px;height:66px;border-radius:50%;background:var(--nx-ok-bg);display:flex;align-items:center;justify-content:center;margin:0 auto 20px;color:var(--nx-ok);font-size:30px}
.nexa-confirm h3{font-size:30px;margin:0 0 10px}
.nexa-confirm p{color:#41352F;max-width:46ch;margin:0 auto 8px}
.nexa-confirm .box{background:#FBF7F2;border:1px solid var(--nx-line);border-radius:12px;padding:18px;margin:24px auto;max-width:380px;text-align:left;display:flex;flex-direction:column;gap:8px;font-size:14px}
.nexa-linkbtn{background:none;border:0;color:var(--nx-wine);font-weight:600;text-decoration:underline;font-size:14px;margin-top:8px}

/* admin */
.nexa-admin{margin-top:16px}
.nexa-admin .cols{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}
@media(max-width:900px){.nexa-admin .cols{grid-template-columns:1fr}}
.nexa-admin .aslots{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-height:520px;overflow:auto;padding-right:4px}
.nexa-aslot{padding:11px 12px;border-radius:9px;font-size:13.5px;display:flex;justify-content:space-between;align-items:center;border:1px solid var(--nx-line);background:#fff}
.nexa-aslot .time{font-weight:600}
.nexa-aslot.free .state{color:var(--nx-muted)}
.nexa-aslot.booked{border-color:var(--nx-wine);background:#FBF1F4;cursor:pointer}
.nexa-aslot.booked .state{color:var(--nx-wine);font-weight:600}
.nexa-detail{background:var(--nx-surface);border:1px solid var(--nx-line);border-radius:var(--nx-radius);padding:22px;box-shadow:var(--nx-shadow)}
.nexa-detail .empty{color:var(--nx-muted);text-align:center;padding:40px 10px;font-size:14px}
.nexa-detail dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:12px 16px;font-size:14px}
.nexa-detail dt{color:var(--nx-muted)}
.nexa-detail dd{margin:0;font-weight:500;word-break:break-word}
.nexa-detail .cmt{margin-top:18px;padding-top:16px;border-top:1px solid var(--nx-line);font-size:14px}
.nexa-cancel{margin-top:18px;border:1px solid var(--nx-line);background:#fff;color:#B4322F;border-radius:8px;padding:9px 14px;font-size:13px;cursor:pointer}
