:root {
  --bg: #fdfaf8;
  --bg-2: #f7f0eb;
  --surface: #ffffff;
  --text: #4a423d;
  --muted: #a39387;
  --line: #ede4de;
  --primary: #a33f4e; /* Vinho/Bordô Sofisticado */
  --primary-dark: #802f3b;
  --primary-soft: #fceef0;
  --ok: #2f8e63;
  --danger: #b42323;
  --font-heading: "Cormorant Garamond", serif;
  --font-body: "Karla", sans-serif;
  --shadow: 0 12px 30px rgba(163, 63, 78, 0.15);
  --radius: 24px;
  --transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
}

@keyframes slideUp {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

*{box-sizing:border-box; transition: var(--transition);}
body{margin:0;background: linear-gradient(180deg, #fff 0%, var(--bg-2) 100%); color:var(--text);font-family:var(--font-body); min-height: 100vh; -webkit-font-smoothing: antialiased;}
.hidden{display:none!important}
button, .day-btn, .slot-btn, .chip-btn { cursor: pointer; touch-action: manipulation; user-select: none; }

.header{padding:100px 20px 60px; text-align:center; position:relative; background: linear-gradient(180deg, rgba(255, 255, 255, 0.3) 0%, var(--bg) 100%), url('assets/20260411_104318.jpg'); background-size: cover; background-position: center; border-bottom: 1px solid var(--line); display: flex; flex-direction: column; align-items: center; justify-content: center; overflow: hidden;}
.logo{height:130px; margin-bottom: 20px; filter: drop-shadow(0 15px 30px rgba(163, 63, 78, 0.2)); animation: fadeIn 1.2s ease-out; position: relative; z-index: 2;}
.logo:hover{transform: scale(1.05);}
.subtitle{margin:0; color:var(--primary); letter-spacing:.6em; text-transform:uppercase; font-size:11px; font-weight: 700; opacity: 0.9; animation: slideUp 1s ease-out; position: relative; z-index: 2; text-shadow: 0 1px 2px rgba(255,255,255,0.5);}
.header::after{content:""; position:absolute; bottom:0; left:50%; transform:translateX(-50%); width:60px; height:2px; background:var(--primary); opacity:0.2;}
.admin-link{position:absolute;top:15px;right:15px;text-decoration:none;color:var(--muted);border: 1px solid var(--line); padding: 5px 12px; border-radius: 99px; font-size:9px; letter-spacing: 0.1em; text-transform: uppercase; background: #fff; z-index: 10;}
.container{max-width:1000px;margin:0 auto;padding:10px 20px 60px}
#messages{min-height:56px}
.message{border-radius:var(--radius);border:1px solid;padding:16px;font-size:14px; text-align: center; font-family: var(--font-heading); box-shadow: var(--shadow);}
.message.success{background:#e8f8f0;border-color:#b9e8d2;color:var(--ok)}
.message.error{background:#ffecec;border-color:#f7c1c1;color:var(--danger)}
.step-indicator{display:flex;justify-content:center;gap:12px;margin:10px 0 40px}
.step-bubble{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:600;color:var(--muted);border:1px solid var(--line);background:var(--surface); box-shadow: 0 2px 8px rgba(0,0,0,0.05);}
.step-bubble.done{color:var(--ok);border-color:#b9e8d2;background:#e8f8f0}
.step-bubble.active{background:var(--primary);border-color:var(--primary);color:#fff; box-shadow: 0 4px 15px rgba(163, 63, 78, 0.4);}
.step-section{margin-top:16px}
.step-section h2{font-size:42px; color: var(--text); letter-spacing: -0.02em; margin-bottom: 25px; font-weight: 400; font-style: italic; animation: fadeIn 0.8s ease-out;}
.step-section h3{font-size:28px; color: var(--text); margin-bottom: 20px; font-weight: 400;}
.mt{margin-top:14px}

/* Painel de Busca */
.search-wrapper { max-width: 600px; margin: 0 auto 50px; position: relative; }
.search-input { width: 100%; border: 1px solid var(--line); border-radius: var(--radius); padding: 15px 25px; font-size: 16px; font-family: var(--font-body); background: var(--surface); text-align: left; box-shadow: 0 4px 10px rgba(0,0,0,0.03); }
.search-input:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-soft); }

.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px;min-height:400px}
.service-btn{border:1px solid var(--line); border-radius:var(--radius);background:var(--surface);padding:30px 20px;text-align:center; cursor: pointer; position: relative; display: flex; flex-direction: column; justify-content: center; align-items: center; box-shadow: var(--shadow);}
@media (hover: hover) {
  .service-btn:hover{transform: translateY(-8px); box-shadow: 0 20px 40px rgba(163, 63, 78, 0.2); border-color: var(--primary);}
}

.service-btn:active{transform: scale(0.95);}
.service-btn.active{background:var(--primary);color:#fff; border-color: var(--primary); transform: translateY(-2px); box-shadow: 0 15px 35px rgba(163, 63, 78, 0.35);}
.service-icon-wrapper{display:block; font-size: 38px; margin-bottom: 15px; color: var(--primary); opacity: 0.8;}
.service-btn.active .service-icon-wrapper{color: #fff;}
.service-name{display:block;font-weight:600;font-size:14px;line-height:1.4; letter-spacing: 0.02em;}
.service-price{display:block;font-size:12px;color:var(--muted);margin-top:5px;}
.service-availability-indicator {
  position: absolute;
  top: 10px;
  right: 10px;
  font-size: 10px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 999px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.service-availability-indicator.has-vaga { background: var(--ok); color: #fff; }
.service-availability-indicator.no-vaga { background: var(--danger); color: #fff; }
.service-btn.active .service-availability-indicator {
  background: rgba(255, 255, 255, 0.2); /* Mais sutil quando o serviço está ativo */
  color: #fff;
}
.service-btn.active .service-price{color:#fff;opacity:0.9;}

/* Tabs para Categorias */
.category-tabs, .category-tabs-client { display: flex; gap: 10px; margin: 15px 0; justify-content: center; flex-wrap: wrap; }
.tab-btn { 
  padding: 8px 20px; border-radius: 99px; border: 1px solid var(--line); background: #fff; 
  cursor: pointer; font-size: 13px; font-weight: 600; color: var(--muted);
}
.tab-btn.active { background: var(--primary); color: #fff; border-color: var(--primary); }

.service-item small { font-size: 11px; opacity: 0.7; }

.selected-chip-row{margin-bottom:10px}
.chip-btn{border:1px solid var(--line);background:var(--surface);color:var(--primary);border-radius:12px;padding:8px 16px; font-weight: 700; font-size: 13px; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; box-shadow: 0 2px 5px rgba(0,0,0,0.02);}
.chip-btn strong { color: var(--text); }
.chip-btn:hover{background: var(--primary-soft); }

.calendar-strip{display:flex;overflow-x:auto;gap:12px;padding-bottom:10px}

.day-btn{min-width:90px;border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);padding:15px 10px;text-align:center; box-shadow: 0 4px 10px rgba(0,0,0,0.02);}
.day-btn.active{background:var(--primary);color:#fff; border-color: var(--primary); transform: translateY(-2px); box-shadow: 0 8px 18px rgba(163, 63, 78, 0.3);}
.day-wk,.day-month{font-size:10px;text-transform:uppercase;opacity:.8;letter-spacing:.08em}
.day-num{font-size:24px;font-family:var(--font-heading);line-height:1.1}
.day-badge{margin-top:4px;display:inline-block;font-size:10px;padding:2px 6px;border-radius:999px;background:#e8f8f0;color:var(--ok)}

.time-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}
.slot-btn{border:1px solid var(--line);border-radius:16px;background:var(--surface);padding:16px 4px;font-weight:600; font-size: 15px; letter-spacing: 0.05em; box-shadow: 0 2px 8px rgba(0,0,0,0.03);}
.slot-btn.active{background:var(--primary);color:#fff; border-color: var(--primary); transform: translateY(-2px); box-shadow: 0 4px 12px rgba(163, 63, 78, 0.3);}
.slot-btn.busy{color:#98a2b3;background:#f9fafb;text-decoration:line-through}

.booking-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:30px; box-shadow: var(--shadow);}
.booking-notice { background: var(--bg-2); border-radius: 16px; padding: 15px; margin: 15px 0; font-size: 13px; line-height: 1.5; border-left: 4px solid var(--primary); color: var(--text); }
.booking-notice p { margin: 0; }
.booking-head{display:flex;justify-content:space-between;align-items:center}
.icon-btn{border:1px solid var(--line);background:#fff;border-radius:12px;min-width:38px;height:38px; padding: 0 12px; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; color: var(--primary); cursor: pointer; text-decoration: none;}
.icon-btn:hover{background: var(--primary-soft);}

.summary-chips{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:15px 0 12px}
.summary-chip{border:1px solid var(--line);border-radius:16px;padding:12px 14px;background:var(--primary-soft);color:var(--primary);font-weight:600;min-width:0;}
.summary-chip small{display:block;margin-bottom:3px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);}
.summary-chip strong{display:block;font-size:14px;line-height:1.25;color:var(--text);overflow-wrap:anywhere;}
form label{display:block;margin:15px 0 8px;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em; font-weight: 500;}
form input{width:100%;border:1px solid var(--line); border-radius:12px;padding:14px 18px;font-size:16px; background: var(--bg-2);}
form input:focus{border-color: var(--primary); outline: none; box-shadow: 0 0 0 3px var(--primary-soft);}
#submit-booking{width:100%;border:0;border-radius:16px;margin-top:30px;background:var(--primary);color:#fff;padding:18px;font-weight:700; font-size: 15px; text-transform: uppercase; letter-spacing: 0.15em; cursor: pointer; box-shadow: 0 8px 20px rgba(163, 63, 78, 0.4);}
#submit-booking:hover{background: var(--primary-dark); transform: translateY(-2px); box-shadow: 0 12px 25px rgba(163, 63, 78, 0.5);}

@media (min-width:768px){
  .service-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .time-slots{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:767px){ /* Mobile-first adjustments */
  .header{padding:60px 16px 30px;}
  .logo{height:90px; margin-bottom: 10px;}
  .subtitle{font-size:9px; letter-spacing: 0.3em;}
  .admin-link{top:15px; right:15px; padding: 4px 10px; font-size: 9px;}
  .container{padding:10px 16px 40px;}
  .step-indicator{gap:8px; margin:20px 0 30px;}
  .step-bubble{width:30px; height:30px; font-size: 11px;}
  .step-section h2{font-size:32px; margin-bottom: 20px;}
  .step-section h3{font-size:24px; margin-bottom: 15px;}
  .search-wrapper{margin-bottom: 15px;}
  .search-input{padding:12px 20px; font-size: 15px;}
  .service-grid{grid-template-columns:1fr; gap:15px;}
  .service-btn{padding:25px 15px; border-radius: 18px;}
  .service-icon-wrapper{font-size: 32px; margin-bottom: 10px;}
  .service-name{font-size: 13px;}
  .calendar-strip{gap:8px; padding-bottom: 5px;}
  .day-btn{min-width:75px; padding:12px 8px; border-radius: 16px;}
  .day-num{font-size: 20px;}
  .time-slots{grid-template-columns:repeat(3,1fr); gap:10px;}
  .slot-btn{padding:14px 4px; font-size: 14px; border-radius: 12px;}
  .booking-card{padding:20px; border-radius: 20px;}
  .booking-head h3{font-size: 20px; margin: 0;}
  .icon-btn{min-width: 34px; height: 34px; font-size: 12px; padding: 0 8px;}
  .selected-chip-row { margin-bottom: 15px; }
  .chip-btn { width: 100%; justify-content: center; font-size: 12px; padding: 10px; }
  .booking-card #booking-summary { grid-template-columns:1fr; margin-top: 18px; margin-bottom: 18px; gap: 10px; }
  .summary-chip { padding: 12px 14px; }
  .summary-chip strong { font-size: 16px; }
  form label{margin:10px 0 6px; font-size: 11px;}
  form input{padding:12px 15px; font-size: 15px; border-radius: 10px;}
  #submit-booking{margin-top:25px; padding:15px; font-size: 14px; border-radius: 14px;}
}

/* Loading Overlay */
.loading-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: radial-gradient(circle at top, #fff 0%, var(--bg) 42%, var(--bg-2) 100%); display: flex; align-items: center; justify-content: center; z-index: 9999; transition: opacity 0.5s ease; }
.loading-overlay.hidden { opacity: 0; pointer-events: none; }
.loading-content { text-align: center; padding: 28px 24px; width:min(360px,92vw); }
.agenda-loader{position:relative;width:112px;height:112px;margin:0 auto 20px;display:grid;place-items:center;}
.agenda-loader-ring{position:absolute;inset:0;border-radius:50%;border:1px solid var(--line);background:conic-gradient(from 20deg,var(--primary),#e293a3,#f4c8d0,var(--primary));animation:spin 2.8s linear infinite;}
.agenda-loader-ring::after{content:"";position:absolute;inset:8px;border-radius:50%;background:var(--bg);}
.agenda-loader-card{position:relative;width:74px;height:82px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--shadow);display:grid;gap:7px;padding:18px 14px;}
.agenda-loader-card span{height:8px;border-radius:999px;background:var(--primary-soft);position:relative;overflow:hidden;}
.agenda-loader-card span::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(163,63,78,.28),transparent);animation:loadingSweep 1.5s ease-in-out infinite;}
.agenda-loader-card span:nth-child(2){width:78%;}
.agenda-loader-card span:nth-child(3){width:58%;}
.loading-kicker{margin:0 0 8px;color:var(--primary);text-transform:uppercase;letter-spacing:.14em;font-size:11px;font-weight:800;}
.loading-phrase { font-family: var(--font-heading); font-size: 25px; color: var(--text); margin:0 auto 18px; line-height: 1.25; font-weight: 700; max-width:310px; }
.loading-tip-button{border:1px solid var(--line);background:#fff;color:var(--primary);border-radius:999px;padding:10px 16px;font-size:13px;font-weight:700;box-shadow:0 4px 12px rgba(0,0,0,.04);}
.loading-tip-button:active{transform:scale(.97);}
.loading-progress{height:4px;background:#fff;border-radius:999px;overflow:hidden;margin:20px auto 0;max-width:260px;border:1px solid var(--line);}
.loading-progress span{display:block;width:42%;height:100%;border-radius:999px;background:var(--primary);animation:progressDrift 1.4s ease-in-out infinite;}
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes pulseText { 0%, 100% { opacity: 0.6; } 50% { opacity: 1; } }
@keyframes loadingSweep { 0% { transform:translateX(-100%); } 100% { transform:translateX(100%); } }
@keyframes progressDrift { 0% { transform:translateX(-105%); } 100% { transform:translateX(250%); } }

/* Botão Flutuante de Suporte WhatsApp */
.whatsapp-support {
  position: fixed;
  bottom: 30px;
  right: 30px;
  background-color: #25d366;
  color: white;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 10px 25px rgba(37, 211, 102, 0.3);
  z-index: 999;
  transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.whatsapp-support:hover {
  transform: scale(1.1) translateY(-5px);
  background-color: #128c7e;
  box-shadow: 0 15px 30px rgba(18, 140, 126, 0.4);
}
.whatsapp-support svg { width: 34px; height: 34px; }

@media (max-width: 767px) {
  .whatsapp-support { bottom: 20px; right: 20px; width: 55px; height: 55px; }
  .whatsapp-support svg { width: 30px; height: 30px; }
}
