/* Style Caballeros — Premium v2 */
:root {
  --black: #0A0A0A;
  --black-soft: #1C1C1C;
  --black-card: #1C1C1C;
  --accent: #FFFFFF;
  --accent-muted: #E8E8E8;
  --gray: #6B6B6B;
  --gray-dark: #4a4a4a;
  --white: #FFFFFF;
  --white-muted: #E8E8E8;
  --danger: #c45c5c;
  --font-display: 'Playfair Display', Georgia, serif;
  --font-body: 'Inter', system-ui, sans-serif;
  --header-h: 64px;
  --radius: 4px;
  --transition: 0.3s ease;
  --shadow: 0 4px 24px rgba(0,0,0,.4);
}

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; scroll-padding-top:var(--header-h); }
body {
  font-family:var(--font-body);
  font-size:15px;
  line-height:1.6;
  color:var(--white-muted);
  background:var(--black);
  -webkit-font-smoothing:antialiased;
}
img { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }
ul { list-style:none; }
button { font-family:inherit; cursor:pointer; border:none; background:none; }
input,select,textarea { font-family:inherit; font-size:inherit; }
.container { width:100%; max-width:1200px; margin:0 auto; padding:0 20px; }
.hidden { display:none !important; }

/* Buttons */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:12px 24px; font-size:12px; font-weight:500;
  letter-spacing:.08em; text-transform:uppercase;
  border-radius:var(--radius); transition:all var(--transition);
  border:2px solid transparent;
}
.btn--primary { background:var(--white); color:var(--black); border-color:var(--white); }
.btn--primary:hover { background:var(--accent-muted); border-color:var(--accent-muted); transform:translateY(-2px); }
.btn--outline { background:transparent; color:var(--white); border-color:var(--white-muted); }
.btn--outline:hover { border-color:var(--accent); color:var(--accent); }
.btn--full { width:100%; }
.btn--small { padding:8px 14px; font-size:10px; }
.btn:disabled { opacity:.6; cursor:not-allowed; transform:none; }

/* Header */
.header {
  position:fixed; top:0; left:0; right:0; z-index:1000;
  height:var(--header-h);
  background:rgba(10,10,10,.92); backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(255,255,255,.15);
}
.header.scrolled { background:rgba(10,10,10,.98); box-shadow:var(--shadow); }
.nav { display:flex; align-items:center; justify-content:space-between; height:100%; }
.nav__logo { display:flex; align-items:center; gap:10px; }
.nav__logo-icon {
  width:36px; height:36px; display:flex; align-items:center; justify-content:center;
  background:var(--accent); color:var(--black);
  font-family:var(--font-display); font-weight:700; font-size:13px;
}
.nav__logo-text { font-family:var(--font-display); font-size:18px; font-weight:600; color:var(--white); }
.nav__menu {
  position:fixed; top:var(--header-h); left:0; right:0; bottom:0;
  display:flex; flex-direction:column; align-items:center;
  justify-content:flex-start; padding:40px 20px; gap:20px;
  background:rgba(10,10,10,.98); transform:translateX(100%);
  transition:transform var(--transition);
}
.nav__menu.open { transform:translateX(0); }
.nav__link {
  font-size:14px; font-weight:500; letter-spacing:.1em; text-transform:uppercase;
  color:var(--gray); transition:color var(--transition);
}
.nav__link:hover,.nav__link.active { color:var(--accent); }
.nav__cta {
  margin-top:12px; padding:12px 24px; font-size:12px; font-weight:600;
  letter-spacing:.1em; text-transform:uppercase;
  background:var(--accent); color:var(--black); border-radius:var(--radius);
}
.nav__toggle { display:flex; flex-direction:column; gap:5px; padding:8px; }
.nav__toggle span { display:block; width:22px; height:2px; background:var(--white); transition:all var(--transition); }
.nav__toggle.active span:nth-child(1) { transform:rotate(45deg) translate(5px,5px); }
.nav__toggle.active span:nth-child(2) { opacity:0; }
.nav__toggle.active span:nth-child(3) { transform:rotate(-45deg) translate(5px,-5px); }

/* Hero */
.hero {
  position:relative; min-height:100vh; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,rgba(10,10,10,.9),rgba(20,20,20,.75)),
    repeating-linear-gradient(45deg,transparent,transparent 10px,rgba(255,255,255,.03) 10px,rgba(255,255,255,.03) 11px);
}
.hero__overlay { position:absolute; inset:0; background:radial-gradient(ellipse at 30% 50%,rgba(255,255,255,.08),transparent 60%); }
.hero__content { position:relative; z-index:1; text-align:center; padding:calc(var(--header-h) + 32px) 20px 64px; }
.hero__tagline { font-size:11px; letter-spacing:.25em; text-transform:uppercase; color:var(--accent); margin-bottom:16px; }
.hero__title { font-family:var(--font-display); font-size:clamp(48px,14vw,100px); font-weight:700; line-height:.95; color:var(--white); margin-bottom:16px; }
.hero__title span { color:var(--accent); font-style:italic; }
.hero__subtitle { font-size:14px; font-weight:300; line-height:1.8; color:var(--gray); max-width:480px; margin:0 auto 32px; }
.hero__actions { display:flex; flex-direction:column; gap:12px; align-items:center; }
.hero__actions .btn { width:100%; max-width:260px; }
.hero__scroll { display:none; }

/* Page hero */
.page-hero {
  padding:calc(var(--header-h) + 48px) 0 40px;
  text-align:center; background:var(--black-soft);
  border-bottom:1px solid rgba(255,255,255,.1);
}
.page-hero__title { font-family:var(--font-display); font-size:clamp(32px,8vw,48px); color:var(--white); margin-bottom:12px; }
.page-hero__desc { color:var(--gray); max-width:520px; margin:0 auto; font-size:14px; }

/* Sections */
.section { padding:64px 0; }
.section--dark { background:var(--black-soft); }
.section__header { text-align:center; margin-bottom:40px; }
.section__tag { display:inline-block; font-size:10px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--accent); margin-bottom:12px; }
.section__title { font-family:var(--font-display); font-size:clamp(28px,6vw,44px); color:var(--white); margin-bottom:12px; }
.section__desc { font-size:14px; color:var(--gray); max-width:500px; margin:0 auto; }
.section__cta { text-align:center; margin-top:32px; }

/* Features */
.features { padding:48px 0; background:var(--black-soft); border-block:1px solid rgba(255,255,255,.1); }
.features__grid { display:grid; gap:24px; }
.feature { text-align:center; padding:24px 16px; }
.feature__icon { width:40px; height:40px; margin:0 auto 16px; color:var(--accent); }
.feature__icon svg { width:100%; height:100%; }
.feature h3 { font-family:var(--font-display); font-size:20px; color:var(--white); margin-bottom:8px; }
.feature p { font-size:13px; color:var(--gray); }

/* Categories */
.category-block { margin-bottom:48px; }
.category-block__title { font-family:var(--font-display); font-size:clamp(22px,4vw,32px); color:var(--white); margin-bottom:24px; padding-bottom:12px; border-bottom:1px solid rgba(255,255,255,.12); letter-spacing:.05em; }
.service-card__category { font-size:9px; letter-spacing:.15em; text-transform:uppercase; color:var(--gray); }

/* Services */
.services__grid { display:grid; gap:20px; }
.service-card {
  position:relative; padding:28px 22px; background:var(--black-card);
  border:1px solid rgba(255,255,255,.12); border-radius:var(--radius);
  transition:all var(--transition);
}
.service-card:hover { border-color:rgba(255,255,255,.35); transform:translateY(-3px); }
.service-card--featured { border-color:var(--accent); background:linear-gradient(135deg,var(--black-card),rgba(255,255,255,.08)); }
.service-card__badge { position:absolute; top:12px; right:12px; padding:3px 8px; font-size:9px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; background:var(--accent); color:var(--black); }
.service-card__number { font-family:var(--font-display); font-size:40px; font-weight:700; color:rgba(255,255,255,.2); line-height:1; margin-bottom:12px; }
.service-card h3 { font-family:var(--font-display); font-size:22px; color:var(--white); margin-bottom:8px; }
.service-card p { font-size:13px; color:var(--gray); margin-bottom:16px; }
.service-card__footer { display:flex; justify-content:space-between; align-items:center; padding-top:16px; border-top:1px solid rgba(255,255,255,.15); }
.service-card__price { font-family:var(--font-display); font-size:24px; color:var(--accent); }
.service-card__time { font-size:11px; color:var(--gray); }
.service-card__btn { margin-top:16px; width:100%; }

/* Barbers */
.barbers__grid { display:grid; gap:24px; }
.barber-card { background:var(--black-card); border:1px solid rgba(255,255,255,.12); border-radius:var(--radius); overflow:hidden; transition:all var(--transition); }
.barber-card:hover { border-color:rgba(255,255,255,.35); transform:translateY(-3px); }
.barber-card__image { aspect-ratio:4/3; background:linear-gradient(135deg,var(--black-soft),rgba(255,255,255,.15)); display:flex; align-items:center; justify-content:center; }
.barber-card__placeholder { font-family:var(--font-display); font-size:48px; font-weight:700; color:rgba(255,255,255,.3); }
.barber-card__info { padding:22px; }
.barber-card__info h3 { font-family:var(--font-display); font-size:24px; color:var(--white); margin-bottom:4px; }
.barber-card__role { display:block; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--accent); margin-bottom:10px; }
.barber-card__info p { font-size:13px; color:var(--gray); margin-bottom:14px; }
.barber-card__specialties { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:16px; }
.barber-card__specialties span { padding:3px 10px; font-size:10px; text-transform:uppercase; background:rgba(255,255,255,.12); color:var(--accent-muted); border-radius:var(--radius); }
.barber-card__btn { width:100%; }

/* Booking */
.booking { display:grid; gap:28px; }
.booking__form { background:var(--black-card); border:1px solid rgba(255,255,255,.15); border-radius:var(--radius); padding:28px 20px; }
.booking__grid { display:grid; gap:20px; margin-bottom:24px; }
.form-group { display:flex; flex-direction:column; gap:6px; }
.form-group--full { grid-column:1/-1; }
.form-group label { font-size:10px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); }
.form-group input,.form-group select {
  padding:12px 14px; background:var(--black-soft);
  border:1px solid rgba(255,255,255,.2); border-radius:var(--radius); color:var(--white);
  transition:border-color var(--transition); appearance:none;
}
.form-group select {
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23c4a77d' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center; padding-right:36px;
}
.form-group input:focus,.form-group select:focus { outline:none; border-color:var(--accent); }
.form-group input.error,.form-group select.error { border-color:var(--danger); }
.form-error { font-size:11px; color:var(--danger); min-height:14px; }
.form-alert { padding:12px 16px; border-radius:var(--radius); margin-bottom:16px; font-size:13px; }
.form-alert.alert--danger { background:rgba(196,92,92,.15); color:var(--danger); border:1px solid rgba(196,92,92,.3); }
.booking__info { padding:24px; background:linear-gradient(135deg,var(--black-card),rgba(255,255,255,.06)); border:1px solid rgba(255,255,255,.15); border-radius:var(--radius); }
.booking__info h3 { font-family:var(--font-display); font-size:22px; color:var(--white); margin-bottom:20px; }
.booking__details { display:flex; flex-direction:column; gap:16px; margin-bottom:20px; }
.booking__details li { display:flex; gap:12px; align-items:flex-start; }
.booking__details svg { width:18px; height:18px; color:var(--accent); flex-shrink:0; margin-top:2px; }
.booking__details strong { display:block; font-size:11px; text-transform:uppercase; color:var(--white); margin-bottom:2px; }
.booking__details span { font-size:13px; color:var(--gray); }
.booking__note { font-size:12px; color:var(--gray); padding-top:16px; border-top:1px solid rgba(255,255,255,.15); }

/* Confirmation */
.confirmation { text-align:center; max-width:560px; margin:0 auto; padding:40px 24px; background:var(--black-card); border:1px solid rgba(255,255,255,.25); border-radius:var(--radius); }
.confirmation__icon { width:64px; height:64px; margin:0 auto 20px; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,.15); border-radius:50%; color:var(--accent); }
.confirmation__icon svg { width:32px; height:32px; }
.confirmation__title { font-family:var(--font-display); font-size:clamp(28px,6vw,36px); color:var(--white); margin-bottom:10px; }
.confirmation__subtitle { font-size:14px; color:var(--gray); margin-bottom:28px; }
.confirmation__details { text-align:left; background:var(--black-soft); border:1px solid rgba(255,255,255,.15); border-radius:var(--radius); padding:20px; margin-bottom:28px; }
.confirmation__item { display:flex; justify-content:space-between; gap:12px; padding:10px 0; border-bottom:1px solid rgba(255,255,255,.1); }
.confirmation__item:last-child { border-bottom:none; }
.confirmation__label { font-size:11px; text-transform:uppercase; color:var(--gray); }
.confirmation__value { font-size:14px; font-weight:500; color:var(--white); text-align:right; }
.confirmation__actions { display:flex; flex-direction:column; gap:12px; }
.confirmation__actions .btn { width:100%; }

/* Shop */
.shop__grid { display:grid; gap:20px; }
.product-card { background:var(--black-card); border:1px solid rgba(255,255,255,.12); border-radius:var(--radius); overflow:hidden; transition:all var(--transition); }
.product-card:hover { border-color:rgba(255,255,255,.35); transform:translateY(-3px); }
.product-card__image { aspect-ratio:1; background:linear-gradient(160deg,var(--black-soft),rgba(255,255,255,.1)); display:flex; align-items:center; justify-content:center; }
.product-card__placeholder { font-family:var(--font-display); font-size:22px; color:rgba(255,255,255,.35); }
.product-card__info { padding:20px; }
.product-card__category { font-size:9px; letter-spacing:.15em; text-transform:uppercase; color:var(--accent); }
.product-card__info h3 { font-family:var(--font-display); font-size:20px; color:var(--white); margin:6px 0 8px; }
.product-card__info p { font-size:12px; color:var(--gray); margin-bottom:14px; }
.product-card__footer { display:flex; justify-content:space-between; align-items:center; padding-top:14px; border-top:1px solid rgba(255,255,255,.12); }
.product-card__price { font-family:var(--font-display); font-size:22px; color:var(--accent); }

/* CTA Banner */
.cta-banner { display:flex; flex-direction:column; gap:24px; align-items:flex-start; padding:32px 24px; background:var(--black-card); border:1px solid rgba(255,255,255,.2); border-radius:var(--radius); }
.cta-banner h2 { font-family:var(--font-display); font-size:28px; color:var(--white); margin:8px 0; }
.cta-banner p { color:var(--gray); font-size:14px; }

/* Footer */
.footer { background:var(--black); border-top:1px solid rgba(255,255,255,.15); padding-top:48px; }
.footer__grid { display:grid; gap:28px; padding-bottom:32px; }
.footer__brand p { font-size:13px; color:var(--gray); margin-top:12px; }
.footer__links h4,.footer__contact h4,.footer__social h4 { font-family:var(--font-display); font-size:17px; color:var(--white); margin-bottom:14px; }
.footer__links ul,.footer__contact ul { display:flex; flex-direction:column; gap:8px; }
.footer__links a { font-size:13px; color:var(--gray); transition:color var(--transition); }
.footer__links a:hover { color:var(--accent); }
.footer__contact li { font-size:13px; color:var(--gray); }
.footer__social-links { display:flex; gap:10px; margin-bottom:8px; }
.footer__social-links a {
  display:flex; align-items:center; justify-content:center; width:36px; height:36px;
  border:1px solid rgba(255,255,255,.2); font-size:11px; font-weight:600; letter-spacing:.05em;
  transition:all var(--transition);
}
.footer__social-links a:hover { background:var(--white); color:var(--black); border-color:var(--white); }
.footer__bottom { padding:20px 0; border-top:1px solid rgba(255,255,255,.1); text-align:center; }
.footer__bottom p { font-size:12px; color:var(--gray-dark); }

/* Animations */
.fade-in { opacity:1; transform:none; transition:opacity .6s ease, transform .6s ease; }
.js-ready .fade-in { opacity:0; transform:translateY(20px); }
.js-ready .fade-in.visible { opacity:1; transform:translateY(0); }

/* Tablet */
@media (min-width:600px) {
  .features__grid { grid-template-columns:repeat(3,1fr); }
  .services__grid,.shop__grid { grid-template-columns:repeat(2,1fr); }
  .barbers__grid { grid-template-columns:repeat(2,1fr); }
  .booking__grid { grid-template-columns:1fr 1fr; }
  .hero__actions { flex-direction:row; justify-content:center; }
  .hero__actions .btn { width:auto; }
  .confirmation__actions { flex-direction:row; flex-wrap:wrap; justify-content:center; }
  .confirmation__actions .btn { width:auto; }
  .footer__grid { grid-template-columns:repeat(2,1fr); }
  .cta-banner { flex-direction:row; align-items:center; justify-content:space-between; }
}

/* Desktop */
@media (min-width:900px) {
  :root { --header-h:72px; }
  .nav__toggle { display:none; }
  .nav__menu {
    position:static; flex-direction:row; padding:0; gap:24px;
    background:transparent; transform:none;
  }
  .nav__cta { margin-top:0; padding:10px 18px; font-size:11px; }
  .nav__logo-text { font-size:20px; }
  .section { padding:96px 0; }
  .services__grid,.shop__grid { grid-template-columns:repeat(3,1fr); }
  .barbers__grid { grid-template-columns:repeat(3,1fr); }
  .booking { grid-template-columns:1.4fr 1fr; gap:40px; }
  .booking__form { padding:36px; }
  .footer__grid { grid-template-columns:2fr 1fr 1fr 1fr; }
  .hero__scroll { display:flex; position:absolute; bottom:32px; left:50%; transform:translateX(-50%); flex-direction:column; align-items:center; gap:10px; color:var(--gray); font-size:9px; letter-spacing:.2em; text-transform:uppercase; }
  .hero__scroll-line { width:1px; height:36px; background:linear-gradient(to bottom,var(--accent),transparent); animation:scrollPulse 2s ease-in-out infinite; }
}

@keyframes scrollPulse {
  0%,100% { opacity:.3; transform:scaleY(.6); }
  50% { opacity:1; transform:scaleY(1); }
}

/* Catalog — categorías expandibles */
.catalog-categories { display:flex; flex-direction:column; gap:16px; }
.catalog-category { background:var(--black-card); border:1px solid rgba(255,255,255,.12); border-radius:var(--radius); overflow:hidden; transition:border-color var(--transition); }
.catalog-category.is-open { border-color:rgba(255,255,255,.35); }
.catalog-category__toggle {
  width:100%; display:flex; align-items:center; gap:20px; padding:24px;
  background:transparent; border:none; color:var(--white); text-align:left; cursor:pointer;
}
.catalog-category__icon {
  width:56px; height:56px; flex-shrink:0; display:flex; align-items:center; justify-content:center;
  font-size:24px; background:var(--black-soft); border:1px solid rgba(255,255,255,.15); border-radius:var(--radius);
}
.catalog-category__info { flex:1; }
.catalog-category__info h2 { font-family:var(--font-display); font-size:clamp(20px,4vw,28px); margin-bottom:6px; }
.catalog-category__info p { font-size:13px; color:var(--gray); margin-bottom:6px; }
.catalog-category__count { font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--gray-dark); }
.catalog-category__arrow { font-size:18px; color:var(--gray); transition:transform var(--transition); }
.catalog-category.is-open .catalog-category__arrow { transform:rotate(180deg); }
.catalog-category__panel { padding:0 24px 24px; border-top:1px solid rgba(255,255,255,.08); }

/* Booking wizard */
.booking-wizard-section { padding-top:32px; }
.container--narrow { max-width:720px; }
.page-hero--compact { padding:48px 0 24px; }
.wizard-progress {
  display:flex; flex-wrap:wrap; gap:6px; margin-bottom:24px;
  padding:12px; background:var(--black-card); border:1px solid rgba(255,255,255,.1); border-radius:var(--radius);
}
.wizard-progress__step {
  flex:1; min-width:70px; text-align:center; font-size:9px; letter-spacing:.05em;
  text-transform:uppercase; color:var(--gray-dark); padding:8px 4px;
}
.wizard-progress__step span {
  display:block; width:24px; height:24px; margin:0 auto 4px; line-height:24px;
  border-radius:50%; border:1px solid rgba(255,255,255,.2); font-size:11px;
}
.wizard-progress__step.active { color:var(--white); }
.wizard-progress__step.active span { background:var(--white); color:var(--black); border-color:var(--white); }
.wizard-progress__step.done span { background:rgba(255,255,255,.15); color:var(--white); }
.wizard-summary {
  display:none; padding:12px 16px; margin-bottom:20px; font-size:12px; color:var(--gray);
  background:var(--black-soft); border:1px solid rgba(255,255,255,.1); border-radius:var(--radius);
}
.wizard-summary.visible { display:block; }
.wizard-step { display:none; }
.wizard-step.active { display:block; }
.wizard-step__title { font-family:var(--font-display); font-size:clamp(24px,5vw,32px); margin-bottom:8px; }
.wizard-step__subtitle { color:var(--gray); margin-bottom:20px; font-size:14px; }
.wizard-input {
  width:100%; padding:14px 16px; background:var(--black-soft);
  border:1px solid rgba(255,255,255,.2); border-radius:var(--radius); color:var(--white); font-size:15px;
}
.wizard-input:focus { outline:none; border-color:var(--white); }
.wizard-form { display:flex; flex-direction:column; gap:16px; }
.wizard-nav { display:flex; gap:12px; margin-top:32px; flex-wrap:wrap; }
.wizard-nav .btn { flex:1; min-width:140px; }
.loading-text { color:var(--gray); font-size:14px; padding:20px 0; }

.sede-grid, .category-grid, .service-grid, .barbero-grid, .time-grid {
  display:grid; gap:12px;
}
.sede-card, .category-card, .service-card-wizard, .barbero-card-wizard {
  padding:20px; background:var(--black-card); border:1px solid rgba(255,255,255,.12);
  border-radius:var(--radius); text-align:left; cursor:pointer; transition:all var(--transition);
  color:var(--white); width:100%;
}
.sede-card:hover, .category-card:hover, .service-card-wizard:hover, .barbero-card-wizard:hover,
.sede-card.selected, .category-card.selected, .service-card-wizard.selected, .barbero-card-wizard.selected {
  border-color:var(--white); transform:translateY(-2px);
}
.sede-card h3, .category-card h3, .service-card-wizard h3, .barbero-card-wizard h3 {
  font-family:var(--font-display); font-size:20px; margin-bottom:6px;
}
.sede-card p, .category-card p, .service-card-wizard p, .barbero-card-wizard p { font-size:13px; color:var(--gray); }
.category-card__icon { font-size:28px; margin-bottom:12px; display:block; }
.category-card__count { font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--gray-dark); }
.service-card-wizard__head { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:8px; }
.service-card-wizard__price { font-family:var(--font-display); font-size:18px; white-space:nowrap; }
.service-card-wizard__meta { display:flex; justify-content:space-between; align-items:center; margin-top:12px; font-size:12px; color:var(--gray); }
.service-card-wizard__cta { color:var(--white); font-weight:600; letter-spacing:.05em; text-transform:uppercase; font-size:10px; }
.barbero-card-wizard__initial {
  width:40px; height:40px; display:flex; align-items:center; justify-content:center;
  background:var(--black-soft); border:1px solid rgba(255,255,255,.2); border-radius:50%;
  font-family:var(--font-display); font-size:18px; margin-bottom:10px;
}
.time-slot {
  padding:14px; background:var(--black-card); border:1px solid rgba(255,255,255,.15);
  border-radius:var(--radius); color:var(--white); font-size:14px; cursor:pointer; transition:all var(--transition);
}
.time-slot:hover, .time-slot.selected { background:var(--white); color:var(--black); border-color:var(--white); }
.hidden { display:none !important; }

@media (min-width:600px) {
  .sede-grid, .category-grid { grid-template-columns:repeat(2,1fr); }
  .service-grid, .barbero-grid { grid-template-columns:repeat(2,1fr); }
  .time-grid { grid-template-columns:repeat(4,1fr); }
}
@media (min-width:900px) {
  .category-grid { grid-template-columns:repeat(2,1fr); }
  .service-grid { grid-template-columns:1fr; }
}
