/* ================================================
   NUTRARY — Páginas públicas · blanco + Montserrat
   ================================================ */

@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800;900&display=swap');

:root {
  --bg:       #ffffff;
  --surface:  #ffffff;
  --surface2: #f4f7f4;
  --text:     #0a0f0b;
  --muted:    #2b2b2b;
  --primary:  #1a7a3c;
  --primary-d:#146030;
  --accent:   rgba(26,122,60,0.07);
  --border:   rgba(26,122,60,0.14);
  --shadow:   0 4px 24px rgba(17,28,20,0.08);
  --font:     'Montserrat', system-ui, sans-serif;
  --r:        1rem;
  --rf:       9999px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body.public-page{
  font-family:var(--font);
  background:var(--bg);
  color:var(--text);
  min-height:100vh;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}

/* ── Bootstrap overrides ── */
.btn-primary{background:var(--primary);border-color:var(--primary)}
.btn-primary:hover,.btn-primary:focus{background:var(--primary-d);border-color:var(--primary-d)}
.btn-outline-primary{color:var(--primary);border-color:var(--primary)}
.btn-outline-primary:hover{background:var(--primary);border-color:var(--primary);color:#fff}
.form-control:focus,.form-select:focus{border-color:var(--primary);box-shadow:0 0 0 .2rem rgba(26,122,60,.12)}
.form-check-input:checked{background-color:var(--primary);border-color:var(--primary)}

/* ── Header / nav ── */
.pub-header{
  background:#fff;
  border-bottom:1px solid #e8ede8;
  position:sticky;top:0;z-index:100;
}
.pub-brand{
  font-family:var(--font);
  font-size:1.5rem;
  font-weight:800;
  color:var(--primary);
  display:flex;align-items:center;
}
.pub-link{
  color:var(--muted);
  font-size:.88rem;
  font-weight:600;
  padding:.4rem .8rem;
  border-radius:var(--rf);
  transition:.15s;
}
.pub-link:hover{color:var(--primary);background:var(--accent)}
.btn-pub{display:inline-flex;align-items:center;justify-content:center;padding:.55rem 1.3rem;border-radius:var(--rf);font-size:.85rem;font-weight:700;transition:.15s;text-decoration:none}
.btn-pub-primary{background:var(--primary);color:#fff}
.btn-pub-primary:hover{background:var(--primary-d);color:#fff}
.btn-pub-outline{background:transparent;color:var(--primary);border:1.5px solid var(--border)}
.btn-pub-outline:hover{background:var(--accent);color:var(--primary)}

/* ── Eyebrow tag ── */
.eyebrow{display:inline-flex;align-items:center;gap:.5rem;padding:.42rem .9rem;background:var(--accent);color:var(--primary);border-radius:var(--rf);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--border)}
.eyebrow::before{content:'';width:.38rem;height:.38rem;border-radius:50%;background:currentColor;flex-shrink:0}

/* ── Hero ── */
.pub-hero{padding:clamp(4rem,8vw,7rem) 0}
.hero-title{font-family:var(--font);font-size:clamp(2.4rem,5vw,4.5rem);font-weight:900;line-height:1.06;color:var(--text);margin-bottom:1.2rem;letter-spacing:-.02em}
.hero-lead{font-size:clamp(.93rem,2vw,1.1rem);color:var(--muted);line-height:1.7;max-width:52ch;margin-bottom:2rem;font-weight:500}
.hero-benefits{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.6rem}
.hero-benefits li{display:flex;align-items:center;gap:.75rem;font-size:.92rem;color:var(--muted);font-weight:500}
.hero-benefits li::before{content:'✓';width:1.4rem;height:1.4rem;background:var(--primary);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:900;flex-shrink:0}

/* ── Cards ── */
.pub-card{background:#fff;border:1px solid #e8ede8;border-radius:var(--r);box-shadow:var(--shadow);padding:1.75rem}

/* ── Sections ── */
.pub-section{padding:clamp(3rem,6vw,5rem) 0}
.pub-section-soft{padding:clamp(3rem,6vw,5rem) 0;background:#f6f8f6}
.section-title{font-family:var(--font);font-size:clamp(1.7rem,3.5vw,2.6rem);font-weight:800;color:var(--text);margin-bottom:.6rem;letter-spacing:-.02em}
.section-lead{color:var(--muted);font-size:1rem;line-height:1.65;max-width:58ch;font-weight:500}

/* ── Feature grid items ── */
.feature-item-icon{width:2.6rem;height:2.6rem;background:var(--accent);border-radius:.75rem;display:flex;align-items:center;justify-content:center;font-size:1.2rem;margin-bottom:.9rem;border:1px solid var(--border)}

/* ── Agenda ── */
.agenda-row{background:#fff;border:1px solid #e8ede8;border-radius:var(--r);padding:1.2rem 1.5rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;transition:.2s}
.agenda-row:hover{box-shadow:var(--shadow);transform:translateY(-2px)}
.agenda-date-tag{font-weight:800;color:var(--primary);font-size:.82rem;text-transform:uppercase;letter-spacing:.06em}
.agenda-time{background:var(--accent);color:var(--primary);border-radius:var(--rf);padding:.3rem .85rem;font-size:.82rem;font-weight:700;white-space:nowrap;border:1px solid var(--border)}

/* ── Extra service ── */
.extra-service{background:var(--surface2);border:1px solid #e8ede8;border-radius:1.5rem;padding:2.5rem}

/* ── CTA ── */
.pub-cta{background:var(--primary);border-radius:1.5rem;padding:3rem 2.5rem;color:#fff}
.pub-cta .section-title{color:#fff}
.pub-cta .section-lead{color:rgba(255,255,255,.78)}
.btn-cta-white{background:#fff;color:var(--primary);border-radius:var(--rf);padding:.7rem 1.6rem;font-weight:700;transition:.15s;display:inline-block}
.btn-cta-white:hover{background:rgba(255,255,255,.9);color:var(--primary)}

/* ── Auth pages ── */
.auth-wrap{min-height:78vh;display:flex;align-items:center;padding:3rem 0}
.auth-card{max-width:480px;width:100%;margin:0 auto}
.auth-card-wide{max-width:640px}
.auth-divider{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.2rem;font-size:.87rem}
.auth-divider a{color:var(--primary);text-decoration:none;font-weight:600}

/* ── Forms ── */
.form-label{font-weight:700;font-size:.85rem;color:var(--text);margin-bottom:.35rem}
.form-control,.form-select{border-color:#dde6dd;border-radius:.75rem;padding:.75rem 1rem;background:#fff;font-size:.92rem;font-weight:500}
.form-control:focus,.form-select:focus{background:#fff;border-color:var(--primary)}
.alert{border-radius:.75rem;font-size:.9rem;font-weight:500}
.alert-success{background:#edf7f0;border-color:#b2d9c0;color:#1a5f35}
.alert-danger{background:#fdeaea;border-color:#f0bcbc;color:#7b2f2f}

/* ── Checkout ── */
.provider-btn{width:100%;padding:1.3rem 1.5rem;border:2px solid #e8ede8;border-radius:var(--r);background:#fff;cursor:pointer;text-align:left;transition:.2s}
.provider-btn:hover{border-color:var(--primary);background:var(--accent)}
.provider-btn .provider-name{font-weight:800;font-size:1.1rem;color:var(--text);display:block;margin-bottom:.3rem}
.provider-btn .provider-desc{font-size:.85rem;color:var(--muted)}

/* ── Footer ── */
.pub-footer{background:#111c14;color:rgba(255,255,255,.55);padding:2.2rem 0;font-size:.85rem}
.pub-footer a{color:rgba(255,255,255,.55)}
.pub-footer a:hover{color:#fff}

/* ── Responsive ── */
@media(max-width:768px){
  .d-none-sm{display:none!important}
  .hero-title{font-size:2.2rem}
  .agenda-row{flex-direction:column;align-items:flex-start}
  .pub-cta{padding:2rem 1.5rem}
  .pub-card{padding:1.25rem}
  .auth-wrap{min-height:auto;padding:2rem 0}
}
