/*
 * Autocitas 3A – Frontend app UI
 * Deliberately scoped and slightly defensive against Elementor/theme global button styles.
 */
.c3a-booking{
  --c3a-primary:#0d2d56;
  --c3a-box-bg:#fff;
  --c3a-border:#e6ebf2;
  --c3a-soft:#f6f9fc;
  --c3a-text:#0d2d56;
  --c3a-body:#31445d;
  --c3a-muted:#75849a;
  --c3a-success:#16845b;
  position:relative;
  isolation:isolate;
  width:100%;
  max-width:940px;
  margin:0 auto;
  padding:clamp(16px,3vw,34px);
  overflow:hidden;
  background:var(--c3a-box-bg,#fff)!important;
  border:0!important;
  border-radius:28px;
  color:var(--c3a-body)!important;
  font-family:inherit;
  box-shadow:0 10px 34px rgba(13,45,86,.045);
}
.c3a-booking:before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background-image:var(--c3a-bg-image,none);
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  opacity:var(--c3a-bg-opacity,.1);
  pointer-events:none;
}
.c3a-booking *{box-sizing:border-box}
.c3a-booking button,.c3a-booking input,.c3a-booking select,.c3a-booking textarea{font:inherit}
.c3a-booking button{touch-action:manipulation;text-transform:none!important;letter-spacing:normal!important}

/* Header compacto tipo app */
.c3a-booking__header{display:flex;justify-content:space-between;gap:22px;align-items:flex-start;margin-bottom:20px}
.c3a-booking__eyebrow{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--c3a-primary)!important;margin-bottom:8px}
.c3a-booking h2{font-size:clamp(30px,4vw,42px)!important;line-height:1.04!important;letter-spacing:-.035em!important;margin:0 0 10px!important;color:var(--c3a-text)!important;font-weight:700!important}
.c3a-booking h3{font-size:clamp(22px,2.7vw,28px)!important;line-height:1.15!important;letter-spacing:-.025em!important;margin:0 0 7px!important;color:var(--c3a-text)!important;font-weight:700!important}
.c3a-booking h4{margin:0 0 12px!important;font-size:16px!important;color:var(--c3a-text)!important;font-weight:700!important}
.c3a-booking__header p,.c3a-booking .c3a-muted{margin:0!important;color:var(--c3a-muted)!important;line-height:1.5!important;font-size:14px!important}
.c3a-progress-label{border:1px solid var(--c3a-border);background:#fff!important;border-radius:999px;padding:8px 13px;color:var(--c3a-muted)!important;font-size:12px;white-space:nowrap;box-shadow:none}

/* Stepper app */
.c3a-progress{position:relative;display:grid;grid-template-columns:repeat(4,1fr);align-items:center;margin:6px 0 4px;padding:0 5%}
.c3a-progress:before{content:"";position:absolute;left:12.5%;right:12.5%;top:50%;height:2px;transform:translateY(-50%);background:#e8edf3;z-index:0}
.c3a-progress i{position:relative;z-index:1;justify-self:center;width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#fff;border:2px solid #dfe6ee;color:#8b98a9;font-style:normal;font-size:10px;font-weight:700;transition:.16s}
.c3a-progress i:after{content:'1'}
.c3a-progress i:nth-child(2):after{content:'2'}
.c3a-progress i:nth-child(3):after{content:'3'}
.c3a-progress i:nth-child(4):after{content:'4'}
.c3a-progress i.is-on{background:var(--c3a-primary)!important;border-color:var(--c3a-primary)!important;color:#fff!important;box-shadow:0 0 0 4px color-mix(in srgb,var(--c3a-primary) 7%,transparent)}
.c3a-progress-names{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin:7px 0 30px}
.c3a-progress-names span{text-align:center;font-size:10px;color:#a2adba;font-weight:700}
.c3a-progress-names span.is-on{color:var(--c3a-primary)!important}
.c3a-progress-names span.is-done{color:#64758a}
.c3a-step{animation:c3aFade .18s ease}

/* ETAPAS — tarjetas tipo app, no botones oscuros del tema */
.c3a-booking .c3a-stage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-top:20px}
.c3a-booking button.c3a-stage{
  all:unset;
  box-sizing:border-box;
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  width:100%;
  min-height:158px;
  padding:18px 18px 17px;
  cursor:pointer;
  color:var(--c3a-body)!important;
  background:#fff!important;
  border:1px solid var(--c3a-border)!important;
  border-radius:22px!important;
  box-shadow:0 5px 18px rgba(16,35,63,.035)!important;
  transition:border-color .16s,box-shadow .16s,transform .16s!important;
}
.c3a-booking button.c3a-stage:hover,.c3a-booking button.c3a-stage:focus-visible{background:#fff!important;border-color:color-mix(in srgb,var(--c3a-primary) 45%,#dce4ed)!important;box-shadow:0 12px 30px rgba(13,45,86,.09)!important;transform:translateY(-2px);outline:none!important}
.c3a-booking button.c3a-stage:active{transform:translateY(0)}
.c3a-stage-icon{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#fff1c9!important;color:#bb7a00!important;margin:0 0 20px!important;flex:0 0 auto}
.c3a-stage:nth-child(4n+2) .c3a-stage-icon{background:#e7f3ff!important;color:#2473b6!important}
.c3a-stage:nth-child(4n+3) .c3a-stage-icon{background:#e7f7ee!important;color:#21815b!important}
.c3a-stage:nth-child(4n+4) .c3a-stage-icon{background:#f0ebff!important;color:#7255b5!important}
.c3a-stage:nth-child(4n+5) .c3a-stage-icon{background:#fff0e8!important;color:#a95e31!important}
.c3a-stage-icon svg{width:24px;height:24px;stroke:currentColor!important}
.c3a-stage-copy{display:block!important;min-width:0;margin:auto 42px 0 0!important}
.c3a-stage-copy strong,.c3a-stage-copy small{display:block!important;text-transform:none!important;letter-spacing:normal!important}
.c3a-stage-copy strong{font-size:16px!important;line-height:1.22!important;color:var(--c3a-text)!important;font-weight:700!important}
.c3a-stage-copy small{font-size:12px!important;color:var(--c3a-muted)!important;margin-top:5px!important;line-height:1.35!important;font-weight:500!important}
.c3a-stage-arrow{position:absolute;right:16px;bottom:16px;width:30px;height:30px;border-radius:50%;display:grid!important;place-items:center;background:#eef5fb!important;color:var(--c3a-primary)!important;font-size:21px!important;line-height:1!important;margin:0!important;transition:.16s!important}
.c3a-booking button.c3a-stage:hover .c3a-stage-arrow,.c3a-booking button.c3a-stage:focus-visible .c3a-stage-arrow{background:var(--c3a-primary)!important;color:#fff!important}

.c3a-booking button.c3a-back{appearance:none!important;border:0!important;background:transparent!important;color:var(--c3a-primary)!important;padding:0!important;margin:0 0 16px!important;cursor:pointer;font-weight:700!important;box-shadow:none!important}

/* Calendario */
.c3a-calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0 12px;padding:0 2px}
.c3a-booking button.c3a-month-prev,.c3a-booking button.c3a-month-next{appearance:none!important;width:42px!important;height:42px!important;padding:0!important;border-radius:50%!important;border:1px solid var(--c3a-border)!important;background:#fff!important;color:var(--c3a-primary)!important;cursor:pointer!important;font-size:21px!important;display:grid!important;place-items:center!important;box-shadow:none!important}
.c3a-booking button.c3a-month-prev:hover,.c3a-booking button.c3a-month-next:hover{border-color:var(--c3a-primary)!important;background:#fff!important}
.c3a-month-label{flex:1;text-align:center;font-size:16px;color:var(--c3a-text);font-weight:700}
.c3a-calendar-wrap{border:1px solid var(--c3a-border);border-radius:22px;overflow:hidden;background:#fff!important;box-shadow:none}
.c3a-calendar-head,.c3a-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.c3a-calendar-head{background:#fafbfd;border-bottom:1px solid var(--c3a-border)}
.c3a-calendar-head span{text-align:center;padding:10px 4px;font-size:10px;font-weight:700;color:#8795a8}
.c3a-booking button.c3a-calendar-day{appearance:none!important;min-height:78px!important;border:0!important;border-right:1px solid #eef2f6!important;border-bottom:1px solid #eef2f6!important;border-radius:0!important;background:#fff!important;padding:8px!important;display:flex!important;flex-direction:column!important;gap:4px!important;align-items:center!important;justify-content:flex-start!important;cursor:default!important;color:#a7b1be!important;box-shadow:none!important;text-transform:none!important}
.c3a-booking button.c3a-calendar-day.has-slots{cursor:pointer!important;color:var(--c3a-text)!important;background:#fff!important}
.c3a-calendar-day span{width:33px;height:33px;display:grid;place-items:center;border-radius:50%;font-weight:700}
.c3a-calendar-day.has-slots small{font-size:9px;color:var(--c3a-primary)!important;line-height:1.15;text-align:center;font-weight:700}
.c3a-booking button.c3a-calendar-day.has-slots:hover span,.c3a-booking button.c3a-calendar-day.is-selected span{background:var(--c3a-primary)!important;color:#fff!important;box-shadow:0 4px 12px rgba(13,45,86,.16)}
.c3a-calendar-day.is-muted{opacity:.28}.c3a-calendar-day:disabled{cursor:default!important}
.c3a-calendar-loading,.c3a-no-availability{grid-column:1/-1;padding:28px;text-align:center;color:var(--c3a-muted)}

.c3a-times-panel{margin-top:22px}
.c3a-time-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.c3a-booking button.c3a-time-card{appearance:none!important;position:relative!important;border:1px solid var(--c3a-border)!important;background:#fff!important;border-radius:16px!important;padding:14px 42px 14px 15px!important;text-align:left!important;cursor:pointer!important;color:var(--c3a-text)!important;box-shadow:none!important;text-transform:none!important;letter-spacing:normal!important;transition:.16s!important}
.c3a-booking button.c3a-time-card:hover,.c3a-booking button.c3a-time-card:focus-visible{border-color:var(--c3a-primary)!important;background:#fff!important;outline:0!important;box-shadow:0 8px 22px rgba(13,45,86,.07)!important}
.c3a-time-card:after{content:'›';position:absolute;right:13px;top:50%;transform:translateY(-50%);width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:#eef5fb;color:var(--c3a-primary);font-size:20px}
.c3a-time-card strong,.c3a-time-card span,.c3a-time-card small{display:block!important;text-transform:none!important}
.c3a-time-card strong{font-size:17px!important;color:var(--c3a-text)!important;font-weight:700!important}.c3a-time-card span{font-size:11px!important;color:var(--c3a-success)!important;margin-top:4px!important;font-weight:600!important}.c3a-time-card small{font-size:10px!important;color:#8d99aa!important;margin-top:3px!important}

/* Formulario app */
.c3a-summary{background:#f5f9fd!important;border:1px solid #e5edf6;border-radius:18px;padding:16px 18px;margin:0 0 23px}
.c3a-summary span,.c3a-summary strong,.c3a-summary small{display:block}.c3a-summary span{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--c3a-muted);font-weight:700}.c3a-summary strong{font-size:17px;margin-top:5px;color:var(--c3a-text)}.c3a-summary small{color:var(--c3a-muted);margin-top:3px}
.c3a-form-section{padding:0 0 23px;margin-bottom:23px;border-bottom:1px solid #edf1f5}
.c3a-form-section h3{font-size:19px!important}
.c3a-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-top:15px}
.c3a-booking label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:#31445d!important}
.c3a-booking input,.c3a-booking select,.c3a-booking textarea{appearance:none;width:100%;min-height:47px;border:1px solid #dce4ec!important;border-radius:13px!important;padding:11px 13px!important;background:#fff!important;color:#18314f!important;outline:0!important;box-shadow:none!important}
.c3a-booking input:focus,.c3a-booking select:focus,.c3a-booking textarea:focus{border-color:var(--c3a-primary)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--c3a-primary) 8%,transparent)!important}
.c3a-span-2{grid-column:1/-1}
.c3a-legal-box{background:#fafbfd!important;border:1px solid #edf1f5;border-radius:15px;padding:15px;font-size:11px;line-height:1.6;color:#69778a;margin-bottom:15px}
.c3a-check{display:flex!important;flex-direction:row!important;align-items:flex-start!important;gap:10px!important;margin:11px 0!important;font-weight:500!important;line-height:1.45!important;color:#43536a!important}
.c3a-check input{appearance:auto!important;width:18px!important;min-height:18px!important;height:18px!important;margin:2px 0 0!important;padding:0!important;flex:0 0 auto!important}
.c3a-small{font-size:11px;color:var(--c3a-muted);margin:0 0 17px}
.c3a-booking button.c3a-submit{appearance:none!important;width:100%!important;min-height:51px!important;border:0!important;border-radius:15px!important;background:var(--c3a-primary)!important;color:#fff!important;padding:13px 20px!important;font-weight:700!important;cursor:pointer!important;box-shadow:0 8px 18px rgba(13,45,86,.13)!important;text-transform:none!important}
.c3a-booking button.c3a-submit:hover{background:color-mix(in srgb,var(--c3a-primary) 92%,#fff)!important;color:#fff!important;transform:translateY(-1px)}
.c3a-booking button.c3a-submit:disabled{opacity:.6;cursor:wait!important;transform:none}
.c3a-message{display:none;margin:0 0 16px;padding:12px 14px;border-radius:13px;font-weight:700;font-size:12px}.c3a-message.is-error{display:block;background:#fff3f3;color:#8b1e1e;border:1px solid #f3d1d1}.c3a-message.is-info{display:block;background:#f5f8fb;color:#344054}

/* Confirmación */
.c3a-success{text-align:center;padding:28px 0 8px}.c3a-success-icon{width:70px;height:70px;border-radius:50%;display:grid;place-items:center;margin:0 auto 15px;background:#eaf4ff;color:var(--c3a-primary);font-size:30px;font-weight:700}.c3a-final-summary{max-width:520px;margin:22px auto;text-align:left;background:#f7f9fc;border:1px solid #e9eef4;border-radius:18px;padding:18px}
.c3a-honeypot{position:absolute!important;left:-99999px!important;opacity:0!important;pointer-events:none!important}.cf-turnstile{margin:16px 0}.c3a-booking-unavailable{max-width:940px;margin:0 auto;padding:20px;border:1px solid #e4e7ec;border-radius:18px;background:#fff;color:#667085}

@keyframes c3aFade{from{opacity:.6;transform:translateY(4px)}to{opacity:1;transform:none}}

@media(max-width:800px){
  .c3a-booking{padding:20px 16px;border-radius:24px;box-shadow:0 7px 24px rgba(13,45,86,.04)}
  .c3a-booking__header{display:block}.c3a-progress-label{display:inline-block;margin-top:12px}
  .c3a-booking .c3a-stage-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .c3a-booking button.c3a-stage{min-height:145px;padding:15px;border-radius:19px!important}
  .c3a-stage-icon{width:44px;height:44px;margin-bottom:16px!important}.c3a-stage-icon svg{width:22px;height:22px}
  .c3a-stage-copy strong{font-size:14px!important}.c3a-stage-copy small{font-size:11px!important}
  .c3a-time-grid,.c3a-form-grid{grid-template-columns:1fr}.c3a-span-2{grid-column:auto}
}
@media(max-width:560px){
  .c3a-booking{padding:17px 12px;border-radius:21px}
  .c3a-booking h2{font-size:29px!important}.c3a-booking h3{font-size:22px!important}
  .c3a-progress{padding:0 2%}.c3a-progress:before{left:12%;right:12%}.c3a-progress-names{gap:2px;margin-bottom:25px}.c3a-progress-names span{font-size:8px}
  .c3a-calendar-day{min-height:60px!important;padding:5px!important}.c3a-calendar-day span{width:30px;height:30px;font-size:12px}.c3a-calendar-day small{display:none}.c3a-calendar-head span{font-size:8px;padding:8px 2px}
  .c3a-time-grid{grid-template-columns:1fr}
}
@media(max-width:390px){
  .c3a-booking .c3a-stage-grid{grid-template-columns:1fr}
  .c3a-booking button.c3a-stage{min-height:124px}
}
.c3a-form-section--optional h3 small{font-size:12px;font-weight:600;color:#7b8ba0;margin-left:6px}
.c3a-booking textarea[name="family_notes"]{min-height:112px;resize:vertical;line-height:1.45}
.c3a-booking label small{font-size:12px;color:#8b98aa;font-weight:500}


/* 1.5.7 · Tipografía frontal más ligera */
.c3a-booking__eyebrow,
.c3a-booking h2,
.c3a-booking h3,
.c3a-booking h4,
.c3a-progress i,
.c3a-progress-names span,
.c3a-stage-copy strong,
.c3a-booking button.c3a-back,
.c3a-month-label,
.c3a-calendar-head span,
.c3a-calendar-day span,
.c3a-calendar-day.has-slots small,
.c3a-time-card strong,
.c3a-summary span,
.c3a-booking button.c3a-submit,
.c3a-message,
.c3a-success-icon{font-weight:600!important}
.c3a-booking label{font-weight:500!important}
.c3a-time-card span,.c3a-form-section--optional h3 small{font-weight:500!important}
