/* ══════════════════════════════════════
   PUBLIC PAGE — Premium redesign
   Design: clean · modern · mobile-first
   Inspired by Stripe, Linear, Apple
══════════════════════════════════════ */

.pub-page{
  min-height:100vh;
  --bg:#f5f5f9;--bg2:#ffffff;--bg3:#f2f2f7;--bg4:#e8e8f0;
  --border:rgba(0,0,0,.07);--border2:rgba(0,0,0,.10);--border3:rgba(0,0,0,.18);
  --text:#0d0d18;--text2:#52526e;--text3:#9898b2;
  --accent:#4f46e5;--accent2:#6366f1;--accent3:#818cf8;
  --abg:rgba(79,70,229,.07);--abg2:rgba(79,70,229,.13);
  --green:#16a34a;--gbg:rgba(22,163,74,.08);
  --red:#dc2626;--rbg:rgba(220,38,38,.07);
  --amber:#b45309;
  --shadow:0 1px 2px rgba(0,0,0,.05),0 4px 16px rgba(0,0,0,.06);
  --shadow2:0 0 0 1px rgba(0,0,0,.06),0 4px 24px rgba(0,0,0,.08);
  background:var(--bg);color:var(--text);
  -webkit-font-smoothing:antialiased;
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}

/* ══════════════════════════════════════
   HERO — integrated card
══════════════════════════════════════ */

/* Centering wrapper */
.pub-hero-wrap{
  max-width:860px;margin:0 auto;
  padding:20px 20px 0;
}

/* Hero card */
.pub-hero{
  background:var(--bg2);
  border:1px solid var(--border2);
  border-radius:20px;
  overflow:hidden;
  position:relative;
  box-shadow:0 2px 8px rgba(0,0,0,.05),0 8px 32px rgba(0,0,0,.05);
}

/* Subtle ambient gradient (no cover) */
.pub-hero:not(.pub-hero--cover)::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(ellipse 70% 80% at 110% -10%,rgba(99,102,241,.07) 0%,transparent 60%),
    radial-gradient(ellipse 40% 60% at -10% 110%,rgba(99,102,241,.04) 0%,transparent 60%);
}

/* Hero with cover image */
.pub-hero--cover{
  min-height:300px;
  display:flex;flex-direction:column;justify-content:flex-end;
}

/* Cover image — absolute fill */
.pub-cover-bg{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;object-position:center;
  display:block;opacity:0;
  transition:opacity .65s cubic-bezier(.4,0,.2,1);
}
.pub-cover-bg.loaded{opacity:1;}

/* Gradient overlay for readability */
.pub-cover-grad{
  position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,
    rgba(0,0,0,.04) 0%,
    rgba(0,0,0,.22) 45%,
    rgba(0,0,0,.76) 100%);
}

/* Skeleton shimmer */
.pub-cover-sk{
  position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,
    var(--bg3) 25%,var(--bg4) 50%,var(--bg3) 75%);
  background-size:200% 100%;
  animation:coverShimmer 1.5s ease-in-out infinite;
}
@keyframes coverShimmer{
  0%{background-position:200% 0}
  100%{background-position:-200% 0}
}

/* Hero inner */
.pub-hero-inner{
  padding:36px 32px 32px;
  position:relative;z-index:1;
  animation:pubFadeUp .32s ease both;
}

/* Content pushed down when cover is present */
.pub-hero--cover .pub-hero-inner{padding-top:110px;}

/* White text on cover */
.pub-hero--cover .pub-biz-name{color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.4);}
.pub-hero--cover .pub-biz-desc{color:rgba(255,255,255,.8);}
.pub-hero--cover .pub-meta-item{color:rgba(255,255,255,.68);}
.pub-hero--cover .pub-meta-item:hover{color:#fff;}
.pub-hero--cover .pub-logo{border-color:rgba(255,255,255,.22);box-shadow:0 4px 20px rgba(0,0,0,.4);}
.pub-hero--cover .pub-logo-placeholder{box-shadow:0 4px 20px rgba(0,0,0,.4);}
.pub-hero--cover .pub-status-open{background:rgba(22,163,74,.22);border-color:rgba(22,163,74,.42);color:#86efac;}
.pub-hero--cover .pub-status-closed{background:rgba(220,38,38,.18);border-color:rgba(220,38,38,.3);color:#fca5a5;}

.pub-hero-brand{display:flex;gap:20px;align-items:flex-start;margin-bottom:24px;}

/* Logo */
.pub-logo{
  width:76px;height:76px;border-radius:20px;flex-shrink:0;
  object-fit:cover;border:1px solid var(--border2);
  box-shadow:0 2px 16px rgba(0,0,0,.10);
}
.pub-logo-placeholder{
  width:76px;height:76px;border-radius:20px;flex-shrink:0;
  background:linear-gradient(145deg,#4f46e5 0%,#818cf8 100%);
  display:flex;align-items:center;justify-content:center;
  font-size:28px;font-weight:900;color:#fff;letter-spacing:-1px;
  box-shadow:0 4px 20px rgba(79,70,229,.28);
}

/* Business info */
.pub-biz-info{flex:1;min-width:0;padding-top:2px;}
.pub-biz-name-row{display:flex;align-items:flex-start;flex-wrap:wrap;gap:10px;margin-bottom:7px;}
.pub-biz-name{
  font-size:26px;font-weight:800;letter-spacing:-.6px;
  color:var(--text);line-height:1.15;margin:0;
}

/* Status badge */
.pub-status-badge{
  display:inline-flex;align-items:center;gap:5px;
  font-size:11px;font-weight:600;padding:4px 11px;
  border-radius:999px;border:1px solid transparent;
  margin-top:5px;white-space:nowrap;flex-shrink:0;
}
.pub-status-open{background:rgba(22,163,74,.09);border-color:rgba(22,163,74,.22);color:#16a34a;}
.pub-status-closed{background:rgba(220,38,38,.07);border-color:rgba(220,38,38,.18);color:#dc2626;}

/* Description */
.pub-biz-desc{
  font-size:14px;color:var(--text2);line-height:1.65;
  margin-bottom:0;max-width:480px;
}

/* Meta row — address, phone, hours hint */
.pub-hero-meta{
  display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:14px;
}
.pub-meta-item{
  display:inline-flex;align-items:center;gap:5px;
  font-size:13px;color:var(--text2);text-decoration:none;
  transition:color .15s;line-height:1;
}
.pub-meta-item:hover{color:var(--accent);}
.pub-meta-icon{font-size:14px;flex-shrink:0;line-height:1;}

/* Hero CTA */
.pub-hero-cta{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
}
.pub-book-btn{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--accent);color:#fff;border:none;
  border-radius:13px;padding:13px 26px;
  font-size:14px;font-weight:600;letter-spacing:-.1px;
  cursor:pointer;text-decoration:none;transition:all .18s cubic-bezier(.4,0,.2,1);
  box-shadow:0 1px 2px rgba(79,70,229,.2),0 4px 16px rgba(79,70,229,.22);
  font-family:inherit;-webkit-tap-highlight-color:transparent;touch-action:manipulation;
}
.pub-book-btn:hover{
  background:#4338ca;transform:translateY(-2px);
  box-shadow:0 1px 2px rgba(79,70,229,.2),0 8px 24px rgba(79,70,229,.32);
}
.pub-book-btn:active{transform:scale(.97);}


/* ══════════════════════════════════════
   GALLERY (pronto para quando imagens forem adicionadas)
══════════════════════════════════════ */

.pub-gallery{
  max-width:860px;margin:0 auto;
  padding:20px 28px 0;
}
.pub-gallery-grid{
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  grid-template-rows:auto auto;
  gap:6px;border-radius:16px;overflow:hidden;
}
.pub-gallery-img{
  width:100%;height:180px;object-fit:cover;
  display:block;cursor:pointer;
  transition:opacity .2s, transform .2s;
}
.pub-gallery-img:first-child{
  grid-row:1/3;height:100%;
}
.pub-gallery-img:hover{opacity:.88;}
.pub-gallery-more{
  display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,.45);color:#fff;font-size:14px;font-weight:700;
  cursor:pointer;height:180px;letter-spacing:-.2px;
}

/* ══════════════════════════════════════
   MAIN LAYOUT — flow + sidebar
══════════════════════════════════════ */

.pub-main{
  max-width:860px;margin:0 auto;
  padding:28px 28px 80px;
  display:grid;
  grid-template-columns:1fr;
  gap:24px;
  align-items:start;
}
@media(min-width:768px){
  .pub-main{
    grid-template-columns:1fr 268px;
    gap:28px;
  }
}

.pub-flow{min-width:0;}

/* ══════════════════════════════════════
   STEPPER
══════════════════════════════════════ */

.pub-stepper{display:flex;align-items:center;margin-bottom:18px;}
.pub-step-item{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1;}
.pub-step-circle{
  width:28px;height:28px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:700;
  background:var(--bg3);border:1.5px solid var(--border2);color:var(--text3);
  transition:all .22s cubic-bezier(.4,0,.2,1);flex-shrink:0;z-index:1;
}
.pub-step-item.active .pub-step-circle{background:var(--accent);border-color:var(--accent);color:#fff;}
.pub-step-item.done .pub-step-circle{background:rgba(22,163,74,.12);border-color:rgba(22,163,74,.28);color:var(--green);}
.pub-step-label{font-size:11px;font-weight:600;color:var(--text3);letter-spacing:.2px;white-space:nowrap;transition:color .2s;text-transform:uppercase;}
.pub-step-item.active .pub-step-label{color:var(--accent2);}
.pub-step-item.done .pub-step-label{color:var(--green);}
.pub-step-line{flex:1;height:1px;background:var(--border2);margin-bottom:26px;transition:background .3s;min-width:6px;}
.pub-step-line.done{background:rgba(22,163,74,.3);}

/* ══════════════════════════════════════
   STEP CARD
══════════════════════════════════════ */

.pub-card{
  background:var(--bg2);
  border:1px solid var(--border);
  border-radius:20px;
  padding:26px 28px;
  box-shadow:var(--shadow2);
  animation:pubFadeUp .28s ease both;
}
.pub-card-title{font-size:18px;font-weight:700;letter-spacing:-.4px;margin-bottom:4px;color:var(--text);}
.pub-card-sub{font-size:14px;color:var(--text2);margin-bottom:22px;line-height:1.55;}

/* ══════════════════════════════════════
   SERVICE CARDS — Step 1
══════════════════════════════════════ */

.svc-list{display:flex;flex-direction:column;gap:8px;}

.svc-card{
  display:flex;align-items:center;gap:14px;
  padding:14px 16px;
  background:var(--bg);
  border:1.5px solid var(--border);
  border-radius:14px;
  cursor:pointer;
  transition:border-color .15s,background .15s,transform .15s,box-shadow .15s;
}
.svc-card:hover{
  border-color:var(--border3);background:var(--bg3);
  transform:translateY(-1px);box-shadow:var(--shadow);
}
.svc-card.sel{
  border-color:var(--accent);background:var(--abg);
  box-shadow:0 0 0 3px var(--abg);
}

.svc-card-icon{
  width:44px;height:44px;border-radius:12px;flex-shrink:0;
  background:var(--bg3);border:1px solid var(--border2);
  display:flex;align-items:center;justify-content:center;
  font-size:17px;font-weight:800;color:var(--text3);
  letter-spacing:-.5px;
  transition:background .15s,color .15s,border-color .15s;
}
.svc-card.sel .svc-card-icon{background:var(--abg2);color:var(--accent);border-color:rgba(79,70,229,.2);}

.svc-card-info{flex:1;min-width:0;}
.svc-card-name{font-size:14px;font-weight:600;color:var(--text);margin-bottom:2px;letter-spacing:-.1px;}
.svc-card-desc{font-size:12px;color:var(--text3);margin-bottom:3px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.svc-card-meta{display:flex;align-items:center;gap:8px;}
.svc-card-dur{font-size:12px;color:var(--text3);display:inline-flex;align-items:center;gap:3px;}
.svc-card-price{font-size:15px;font-weight:700;color:var(--text2);white-space:nowrap;flex-shrink:0;letter-spacing:-.2px;}
.svc-card.sel .svc-card-price{color:var(--accent);}

/* ── Selected service summary bar (step 2/3) ── */
.pub-svc-summary{
  display:flex;align-items:center;gap:10px;
  padding:10px 14px;margin-bottom:16px;
  background:var(--abg);border:1px solid rgba(79,70,229,.15);
  border-radius:10px;font-size:13px;
}
.pub-svc-summary-name{font-weight:600;color:var(--accent2);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pub-svc-summary-meta{font-size:12px;color:var(--text3);white-space:nowrap;flex-shrink:0;}

/* ══════════════════════════════════════
   TIME GRID — Step 2
══════════════════════════════════════ */

.time-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:12px;}

/* ── Base: horário disponível ── */
.tslot{
  padding:11px 4px;border:1.5px solid var(--border2);
  border-radius:10px;text-align:center;
  font-size:13px;font-weight:600;cursor:pointer;
  transition:all .15s cubic-bezier(.4,0,.2,1);
  color:var(--text);background:var(--bg2);
  letter-spacing:-.1px;line-height:1.2;
  user-select:none;-webkit-tap-highlight-color:transparent;
  position:relative;
}
.tslot:hover{border-color:var(--accent);color:var(--accent);background:var(--abg);transform:translateY(-1px);box-shadow:0 2px 10px rgba(79,70,229,.14);}
.tslot:active{transform:scale(.96);}

/* ── Selecionado ── */
.tslot.sel{
  border-color:var(--accent);background:var(--accent);color:#fff;
  transform:translateY(-1px);box-shadow:0 3px 14px rgba(79,70,229,.28);cursor:default;
}
.tslot.sel::after{content:'✓';position:absolute;top:2px;right:4px;font-size:8px;opacity:.7;font-weight:800;}

/* ── Ocupado ── */
.tslot.taken{
  background:rgba(220,38,38,.04);border-color:rgba(220,38,38,.14);
  color:rgba(140,30,30,.45);cursor:not-allowed;pointer-events:none;
  font-size:11.5px;font-weight:500;
}
.tslot.taken::after{content:'';position:absolute;top:50%;left:12%;width:76%;height:1.5px;background:rgba(220,38,38,.25);border-radius:2px;}

/* ── Fora do horário ── */
.tslot.off-hours{display:none;}

/* ── Mensagens no grid ── */
.tslot-loading,.tslot-empty-msg{grid-column:1/-1;padding:12px 8px;font-size:12px;color:var(--text3);text-align:center;line-height:1.5;}

/* ── Slots section (container atômico) ── */
.pub-slots-loading{padding:14px 0 6px;font-size:12px;color:var(--text3);text-align:center;}
.pub-slots-msg{padding:16px 14px;font-size:13px;color:var(--text3);text-align:center;border:1px dashed var(--border2);border-radius:10px;margin-top:10px;line-height:1.6;}
.pub-slots-label{font-size:12px;font-weight:500;color:var(--text2);margin-bottom:8px;margin-top:4px;display:block;}
.pub-all-taken-bar{display:flex;align-items:center;gap:9px;margin-top:16px;padding:11px 14px;background:rgba(220,38,38,.05);border:1px solid rgba(220,38,38,.12);border-radius:10px;}
.pub-all-taken-icon{font-size:16px;flex-shrink:0;line-height:1;}
.pub-all-taken-text{font-size:13px;font-weight:500;color:var(--red);line-height:1.4;}

/* ══════════════════════════════════════
   SUMMARY BOX — Step 3
══════════════════════════════════════ */

.summary-box{background:var(--bg3);border:1px solid var(--border);border-radius:13px;padding:16px 18px;font-size:13px;margin:16px 0;}
.summary-row{display:flex;justify-content:space-between;align-items:center;padding:7px 0;color:var(--text2);}
.summary-row:not(:last-child){border-bottom:1px solid var(--border);}
.summary-row:last-child{font-size:14px;font-weight:700;color:var(--text);padding-top:11px;}
.summary-row span:last-child{color:var(--text);font-weight:500;}
.summary-row:last-child span:last-child{color:var(--accent);}

/* ── Payment tags ── */
.pub-payment-section{margin-top:14px;padding-top:14px;border-top:1px solid var(--border);}
.pub-payment-title{font-size:12px;font-weight:500;color:var(--text3);margin-bottom:8px;}
.pub-payment-tags{display:flex;flex-wrap:wrap;gap:5px;}
.pub-payment-tag{font-size:11.5px;font-weight:500;color:var(--text2);background:var(--bg3);border:1px solid var(--border2);border-radius:6px;padding:3px 9px;}

/* ══════════════════════════════════════
   STEP 4 — Confirmation
══════════════════════════════════════ */

.pub-confirm-icon{
  width:72px;height:72px;border-radius:50%;margin:0 auto 22px;
  background:var(--gbg);border:2px solid rgba(22,163,74,.25);
  display:flex;align-items:center;justify-content:center;
  font-size:30px;color:var(--green);
  box-shadow:0 4px 24px rgba(22,163,74,.15);
  animation:pubPopIn .4s cubic-bezier(.34,1.56,.64,1) both;
}

/* ══════════════════════════════════════
   SIDEBAR
══════════════════════════════════════ */

.pub-sidebar{display:flex;flex-direction:column;gap:12px;}

@media(min-width:768px){
  .pub-sidebar{position:sticky;top:24px;}
}

.pub-sidebar-card{
  background:var(--bg2);border:1px solid var(--border);
  border-radius:16px;padding:18px 20px;
  box-shadow:var(--shadow);
}
.pub-sidebar-title{
  font-size:11px;font-weight:700;color:var(--text3);
  letter-spacing:.5px;text-transform:uppercase;margin-bottom:13px;
}

/* Hours */
.pub-hours-list{display:flex;flex-direction:column;gap:4px;}
.pub-hours-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:4px 0;font-size:12.5px;
}
.pub-hours-day{color:var(--text2);font-weight:500;text-transform:capitalize;}
.pub-hours-time{color:var(--text3);}
.pub-hours-time.pub-time-open{color:var(--accent2);font-weight:500;}
.pub-hours-row.is-today .pub-hours-day{color:var(--text);font-weight:700;}
.pub-hours-row.is-today .pub-hours-time{color:var(--accent2);font-weight:600;}

/* Payment methods */
.pub-pm-grid{display:flex;flex-wrap:wrap;gap:5px;}
.pub-pm-tag{font-size:11.5px;font-weight:500;color:var(--text2);background:var(--bg3);border:1px solid var(--border);border-radius:6px;padding:4px 10px;}

/* Contact */
.pub-contact-list{display:flex;flex-direction:column;gap:9px;}
.pub-contact-link{
  display:flex;align-items:center;gap:9px;
  font-size:12.5px;color:var(--text2);text-decoration:none;
  transition:color .15s;line-height:1.3;
}
.pub-contact-link:hover{color:var(--accent);}
.pub-contact-icon{font-size:15px;flex-shrink:0;width:20px;text-align:center;line-height:1;}

/* ══════════════════════════════════════
   WAITLIST
══════════════════════════════════════ */

.pub-wl-cta-card{
  background:var(--bg3);border:1px solid var(--border2);
  border-radius:14px;padding:20px 20px;margin-top:16px;text-align:center;
}
.pub-wl-cta-icon{font-size:30px;margin-bottom:10px;line-height:1;}
.pub-wl-cta-title{font-size:15px;font-weight:700;color:var(--text);margin-bottom:5px;letter-spacing:-.2px;}
.pub-wl-cta-desc{font-size:13px;color:var(--text2);margin-bottom:14px;line-height:1.55;}

.pub-wl-form-card{background:var(--bg3);border:1px solid var(--border2);border-radius:14px;padding:18px 20px;margin-top:16px;}
.pub-wl-form-title{font-size:15px;font-weight:700;color:var(--text);margin-bottom:4px;}
.pub-wl-form-desc{font-size:13px;color:var(--text2);margin-bottom:14px;line-height:1.5;}

.pub-wl-success-card{
  background:rgba(22,163,74,.07);border:1px solid rgba(22,163,74,.18);
  border-radius:14px;padding:22px 20px;margin-top:16px;text-align:center;
}
.pub-wl-success-icon{font-size:28px;margin-bottom:8px;line-height:1;}
.pub-wl-success-title{font-size:15px;font-weight:700;color:var(--green);margin-bottom:5px;}
.pub-wl-success-desc{font-size:13px;color:var(--text2);line-height:1.55;}

/* ══════════════════════════════════════
   NOT FOUND / PAGE DISABLED
══════════════════════════════════════ */

.not-found{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 20px;}
.not-found-code{font-size:72px;font-weight:800;letter-spacing:-4px;color:var(--border3);margin-bottom:14px;}
.pub-disabled-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f5f5f9;padding:40px 20px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;-webkit-font-smoothing:antialiased;}
.pub-disabled-card{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:20px;padding:48px 36px;text-align:center;max-width:360px;width:100%;box-shadow:0 4px 24px rgba(0,0,0,.07),0 1px 4px rgba(0,0,0,.04);animation:pubFadeUp .3s cubic-bezier(.4,0,.2,1) both;}

/* ══════════════════════════════════════
   PAGE FOOTER
══════════════════════════════════════ */

/* ── Brand footer ── */
.pub-brand-footer{
  text-align:center;
  padding:36px 20px 40px;
  margin-top:8px;
  border-top:1px solid var(--border);
}
.pub-brand-link{
  display:inline-flex;align-items:center;gap:6px;
  text-decoration:none;
  opacity:.4;
  transition:opacity .3s ease, transform .3s ease;
  cursor:pointer;
}
.pub-brand-link:hover{
  opacity:.75;
  transform:translateY(-1px);
}
.pub-brand-pre{
  font-size:11px;color:var(--text3);
  letter-spacing:.01em;font-weight:400;
  white-space:nowrap;
}
.pub-brand-name{
  font-size:11.5px;font-weight:700;
  letter-spacing:-.1px;
  background:linear-gradient(130deg,#4f46e5,#7c3aed);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  background-clip:text;
  white-space:nowrap;
}

/* ══════════════════════════════════════
   ANIMATIONS
══════════════════════════════════════ */

@keyframes pubFadeUp{
  from{opacity:0;transform:translateY(12px);}
  to{opacity:1;transform:translateY(0);}
}
@keyframes pubPopIn{
  from{opacity:0;transform:scale(.6);}
  to{opacity:1;transform:scale(1);}
}

/* Staggered children */
.pub-card{animation:pubFadeUp .28s ease both;}
.pub-sidebar-card:nth-child(1){animation:pubFadeUp .3s .05s ease both;}
.pub-sidebar-card:nth-child(2){animation:pubFadeUp .3s .1s ease both;}
.pub-sidebar-card:nth-child(3){animation:pubFadeUp .3s .15s ease both;}

/* ══════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════ */

@media(max-width:767px){
  .pub-hero-wrap{padding:12px 12px 0;}
  .pub-hero{border-radius:16px;}
  .pub-hero--cover{min-height:240px;}
  .pub-hero--cover .pub-hero-inner{padding-top:80px;}
  .pub-hero-inner{padding:28px 18px 26px;}
  .pub-logo,.pub-logo-placeholder{width:64px;height:64px;border-radius:17px;font-size:24px;}
  .pub-biz-name{font-size:22px;}
  .pub-main{padding:20px 16px 72px;gap:20px;}
  .pub-card{padding:20px 18px;border-radius:16px;}
  .time-grid{grid-template-columns:repeat(3,1fr);}
  .pub-step-label{display:none;}
  .pub-gallery-grid{grid-template-columns:1fr 1fr;}
  .pub-gallery-img:first-child{grid-row:auto;height:180px;}
  /* Sidebar goes below flow */
  .pub-main{grid-template-columns:1fr;}
  .pub-sidebar{flex-direction:row;flex-wrap:wrap;gap:10px;}
  .pub-sidebar-card{flex:1;min-width:180px;}
}

@media(max-width:420px){
  .pub-sidebar{flex-direction:column;}
  .pub-sidebar-card{min-width:unset;}
  .pub-book-btn{width:100%;justify-content:center;}
  .time-grid{grid-template-columns:repeat(3,1fr);gap:5px;}
}
