/* ============================================================
   SinDefinir — main.css v2.0
   Paleta de 5 colores:
   --verde:  #63A680  → Acciones principales, botones, activos
   --lima:   #CDD9A0  → Acentos secundarios, badges, hovers
   --arena:  #D9D0A3  → Navbar, fondos cálidos, tarjetas destacadas
   --gris:   #D9D8D7  → Bordes, fondos neutros, separadores
   --topo:   #BFADA3  → Texto secundario, iconos, muted
   ============================================================ */

:root {
  --verde:   #63A680;
  --lima:    #CDD9A0;
  --arena:   #D9D0A3;
  --gris:    #D9D8D7;
  --topo:    #BFADA3;

  /* Derivados */
  --verde-dark:  #4d8a68;
  --verde-light: #dff0e7;
  --arena-dark:  #b8a882;
  --arena-light: #f7f3ea;
  --dark:        #2a2a2a;
  --mid:         #555;

  /* Fondos */
  --bg-page:    #F8F5EF;
  --bg-card:    #FFFFFF;
  --bg-section: #EEF5EC;
  --border:     var(--gris);

  /* Alias para vistas heredadas */
  --c-dark:     #2a2a2a;
  --c-mid:      #4d8a68;
  --c-tierra:   #63A680;
  --c-verde:    #63A680;
  --c-dorado:   #CDD9A0;
  --c-caramelo: #D9D0A3;
  --c-blanco:   #f7f3ea;
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }

body {
  font-family:'Lato', sans-serif;
  background: var(--bg-page);
  color: var(--dark);
  font-size: 16px;
  line-height: 1.6;
}

a { color: var(--verde); text-decoration:none; }
a:hover { color: var(--verde-dark); }
img { max-width:100%; height:auto; }

/* Limitar ancho maximo del container para que no se estire en pantallas grandes */
.container { max-width:1080px !important; }

/* Layout receta — 2 columnas que no se rompen */
.sc-recipe-layout { display:flex; gap:1.5rem; align-items:flex-start; }
.sc-recipe-main { flex:1; min-width:0; overflow:hidden; overflow-wrap:break-word; }
.sc-recipe-main img { max-width:100%; height:auto; }
.sc-recipe-sidebar { width:280px; flex-shrink:0; }
@media(max-width:991px) {
  .sc-recipe-layout { flex-direction:column; }
  .sc-recipe-sidebar { width:100%; }
}

/* ── NAV ───────────────────────────────────────────────────── */
.sc-nav {
  background: var(--arena);
  border-bottom: 3px solid var(--verde);
  position: sticky; top:0; z-index:500;
  box-shadow: 0 2px 12px rgba(0,0,0,.08);
}
.sc-nav .navbar-brand {
  font-family:'Playfair Display',serif;
  font-size:1.5rem; font-weight:900;
  color: var(--dark);
  letter-spacing: -.5px;
}
.sc-nav .navbar-brand span { color: var(--verde); }
.sc-nav .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%234d8a68' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
.sc-nav .nav-link {
  font-weight:700; color: var(--dark) !important;
  font-size:.85rem; letter-spacing:.3px;
  padding:.4rem .75rem !important; transition:color .2s;
  border-radius: 6px;
}
.sc-nav .nav-link:hover { color: var(--verde-dark) !important; background: rgba(99,166,128,.12); }
.btn-nav-contact {
  background: var(--verde); color: white !important;
  border-radius:25px; padding:.4rem 1.4rem !important;
  transition:all .2s; font-weight:900; text-decoration:none;
}
.btn-nav-contact:hover { background:var(--verde-dark) !important; transform:translateY(-1px); box-shadow:0 4px 12px rgba(99,166,128,.3); }

.nav-search { position:relative; display:flex; align-items:center; }
.nav-search input {
  border:2px solid var(--verde); border-radius:25px;
  padding:.38rem 2.4rem .38rem 1rem;
  font-size:.83rem; background:white; outline:none; width:200px;
  transition:width .3s, border-color .2s; font-family:'Lato',sans-serif;
  color:var(--dark);
}
.nav-search input:focus { width:260px; border-color:var(--verde-dark); }
.nav-search input::placeholder { color:var(--topo); }
.sc-search-clear {
  position:absolute; right:36px; top:50%; transform:translateY(-50%);
  border:none; background:none; cursor:pointer; font-size:.75rem;
  color:var(--topo); display:none; padding:0;
}
.sc-search-clear:hover { color:var(--verde); }
.sc-search-btn-nav {
  position:absolute; right:10px; top:50%; transform:translateY(-50%);
  border:none; background:none; cursor:pointer; font-size:.85rem;
  color:var(--verde-dark); padding:0;
}

/* ── HERO ──────────────────────────────────────────────────── */
.sc-hero {
  position:relative; min-height:480px;
  background: linear-gradient(135deg, var(--verde-dark), var(--verde));
  display:flex; align-items:flex-end; overflow:hidden;
}
.sc-hero-img {
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  transform:scale(1);
}
.carousel-item.active .sc-hero-img {
  animation:sc-zoom 15s ease-out forwards;
}
@keyframes sc-zoom {
  from { transform:scale(1); }
  to   { transform:scale(1.12); }
}
/* Paginas sin carousel */
.sc-hero:not(.carousel-item .sc-hero) .sc-hero-img {
  animation:sc-zoom 15s ease-out forwards;
}
.sc-hero-fallback {
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  font-size:14rem; opacity:.08;
}
.sc-hero-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(42,42,42,.88) 0%, rgba(42,42,42,.25) 55%, transparent 100%);
}
.sc-hero-content { position:relative; z-index:2; padding:2.5rem 3rem; width:100%; }

.sc-hero-badge {
  display:inline-flex; align-items:center; gap:.4rem;
  background:var(--arena); color:var(--dark);
  padding:.28rem .9rem; border-radius:20px;
  font-size:.7rem; font-weight:900; letter-spacing:1.5px; text-transform:uppercase;
  margin-bottom:.75rem;
}
.sc-hero h1 {
  font-family:'Playfair Display',serif;
  font-size:clamp(1.9rem,4vw,3rem); font-weight:900;
  color:white; line-height:1.1; margin-bottom:.7rem;
}
.sc-hero h1 em { color:var(--lima); font-style:italic; }
.sc-hero-meta {
  display:flex; gap:1.5rem; flex-wrap:wrap;
  color:rgba(255,255,255,.78); font-size:.84rem; margin-bottom:1.2rem;
}
.btn-hero {
  display:inline-block;
  background:var(--arena); color:var(--dark);
  padding:.72rem 2rem; border-radius:30px;
  font-weight:900; font-size:.92rem;
  transition:all .25s; font-family:'Lato',sans-serif;
}
.btn-hero:hover {
  background:var(--lima); color:var(--dark);
  transform:translateY(-3px); box-shadow:0 10px 28px rgba(0,0,0,.25);
}

/* ── INTRO EDITORIAL ────────────────────────────────────────── */
.sc-intro {
  background: var(--arena-light);
  padding:3.5rem 0 2rem;
  border-bottom:2px solid var(--arena);
}
.sc-intro-lead {
  font-family:'Playfair Display',serif;
  font-size:clamp(1.5rem,3vw,2.1rem);
  color:var(--verde-dark); font-weight:700;
  line-height:1.3; margin-bottom:1rem;
}
.sc-intro-text { font-size:.95rem; color:var(--dark); line-height:1.9; max-width:680px; }

.sc-feature-card {
  background:var(--bg-card); border:2px solid var(--gris);
  border-radius:16px; padding:1.5rem; text-align:center;
  transition:all .3s;
}
.sc-feature-card:hover {
  border-color:var(--lima);
  background:var(--arena-light);
  transform:translateY(-4px);
  box-shadow:0 8px 25px rgba(205,217,160,.3);
}
.sc-feature-icon { font-size:2.2rem; margin-bottom:.75rem; display:block; }
.sc-feature-title { font-weight:900; font-size:.95rem; color:var(--verde-dark); margin-bottom:.4rem; }
.sc-feature-desc  { font-size:.82rem; color:var(--topo); line-height:1.6; }

/* (buscador movido al navbar — ver .nav-search arriba) */

/* ── CATEGORÍAS ────────────────────────────────────────────── */
.sc-cats { overflow-x:auto; padding:.5rem 0; }
.sc-cats-inner { display:flex; gap:.6rem; padding:.25rem .1rem; }
.sc-cat-btn {
  display:inline-flex; align-items:center; gap:.35rem;
  padding:.5rem 1.1rem; border-radius:30px;
  border:2px solid var(--gris); background:var(--bg-card);
  font-weight:800; font-size:.8rem; cursor:pointer;
  transition:all .25s; white-space:nowrap;
  color:var(--dark); font-family:'Lato',sans-serif;
}
.sc-cat-btn:hover {
  border-color:var(--verde); color:var(--verde-dark);
  background:var(--arena-light);
  transform:translateY(-2px);
}
.sc-cat-btn.active {
  background:var(--verde); color:white;
  border-color:var(--verde);
  box-shadow:0 5px 15px rgba(99,166,128,.3);
}
.sc-cat-count {
  background:rgba(0,0,0,.08);
  padding:.05rem .4rem; border-radius:10px; font-size:.65rem;
}
.sc-cat-btn.active .sc-cat-count { background:rgba(255,255,255,.25); }

/* ── CARDS RECETA ──────────────────────────────────────────── */
.sc-recipe-card {
  background:var(--bg-card); border-radius:12px;
  border:1px solid var(--gris); overflow:hidden;
  transition:all .25s ease;
  display:flex; flex-direction:column; height:100%;
  box-shadow:0 2px 8px rgba(0,0,0,.04);
}
.sc-recipe-card:hover {
  transform:translateY(-3px);
  box-shadow:0 10px 30px rgba(0,0,0,.12);
  border-color:var(--verde);
}
.sc-card-img {
  height:120px; display:flex; align-items:center;
  justify-content:center; font-size:2.2rem;
  position:relative; overflow:hidden; background:var(--arena-light);
}
.sc-card-img img { width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.sc-recipe-card:hover .sc-card-img img { transform:scale(1.05); }
.sc-card-cat {
  position:absolute; top:.4rem; left:.4rem;
  padding:.15rem .5rem; border-radius:8px;
  font-size:.58rem; font-weight:800; letter-spacing:.5px; text-transform:uppercase;
}
.sc-card-body { padding:.8rem; display:flex; flex-direction:column; flex:1; }
.sc-card-title {
  font-family:'Playfair Display',serif;
  font-size:.88rem; font-weight:700;
  margin-bottom:.25rem; line-height:1.25;
  color:#2a2a2a; transition:color .2s;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.sc-recipe-card:hover .sc-card-title { color:var(--verde-dark); }
.sc-card-desc { font-size:.72rem; color:#777; line-height:1.5; flex:1; margin-bottom:.6rem; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.sc-card-foot {
  display:flex; align-items:center; justify-content:space-between;
  padding-top:.5rem; border-top:1px solid var(--gris);
  background:#FAFAF8;
  margin:0 -.8rem -.8rem; padding:.5rem .8rem;
  border-radius:0 0 12px 12px;
}
.sc-card-stats { display:flex; gap:.5rem; }
.sc-stat { display:flex; align-items:center; gap:.2rem; font-size:.68rem; font-weight:700; color:#666; }
.sc-diff { display:flex; gap:2px; }
.sc-dot { width:5px; height:5px; border-radius:50%; background:var(--gris); }
.sc-dot.on { background:var(--verde); }

/* ── LOADING ───────────────────────────────────────────────── */
#sc-loading {
  display:none; position:absolute; inset:0;
  align-items:center; justify-content:center;
  background:rgba(248,245,239,.8); border-radius:16px; z-index:10;
}
.sc-spinner {
  width:40px; height:40px;
  border:3px solid var(--gris); border-top-color:var(--verde);
  border-radius:50%; animation:spin .8s linear infinite;
}
@keyframes spin { to { transform:rotate(360deg); } }

/* ── TITULARES SECCIÓN ─────────────────────────────────────── */
.sc-section-ttl {
  font-family:'Playfair Display',serif;
  font-size:1.7rem; font-weight:900;
  display:flex; align-items:center; gap:.7rem; color:var(--dark);
}
.sc-section-ttl::before {
  content:''; display:block;
  width:4px; height:28px;
  background:var(--arena-dark); border-radius:3px;
}

/* ── NEWSLETTER ────────────────────────────────────────────── */
/* ── PAGINACIÓN ────────────────────────────────────────────── */
.pagination .page-link { color:var(--verde); border-color:var(--gris); font-size:.85rem; }
.pagination .page-item.active .page-link {
  background:var(--verde); border-color:var(--verde); color:white;
}

/* ── FOOTER ────────────────────────────────────────────────── */
.sc-footer { background:var(--verde-dark); color:white; padding:3rem 0 1.5rem; }
.sc-footer-logo { font-family:'Playfair Display',serif; font-size:1.9rem; font-weight:900; color:white; }
.sc-footer-logo span { color:var(--lima); }
.sc-footer-tagline { color:var(--gris); font-size:.88rem; line-height:1.8; }
.sc-footer h5 { font-family:'Playfair Display',serif; font-size:1rem; margin-bottom:1rem; color:var(--lima); }
.sc-footer a {
  color:rgba(255,255,255,.65); display:block;
  margin-bottom:.4rem; font-size:.85rem; transition:color .2s;
}
.sc-footer a:hover { color:var(--arena); }
.sc-footer-hr { border-color:rgba(255,255,255,.15); margin:2rem 0 1rem; }
.sc-footer-copy { font-size:.75rem; color:rgba(255,255,255,.45); }
.sc-footer-admin { color:rgba(255,255,255,.15) !important; display:inline !important; }

/* ── COOKIE BANNER ─────────────────────────────────────────── */
#sc-cookie-banner {
  position:fixed; bottom:0; left:0; right:0; z-index:9999;
  background:var(--dark); color:white;
  padding:.9rem 2rem;
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  font-size:.83rem; flex-wrap:wrap;
  border-top:3px solid var(--arena);
}
#sc-cookie-banner a { color:var(--lima); }
.sc-cookie-btn {
  padding:.4rem 1.2rem; border-radius:20px; border:none;
  font-weight:700; cursor:pointer; font-size:.8rem;
  font-family:'Lato',sans-serif; transition:all .2s;
}
.sc-cookie-accept { background:var(--lima); color:var(--dark); }
.sc-cookie-reject { background:transparent; color:rgba(255,255,255,.7); border:1px solid rgba(255,255,255,.3); }
.sc-cookie-accept:hover { background:var(--arena); }

/* ── RECETA — STATS STRIP ──────────────────────────────────── */
.sc-stats-strip {
  display:grid; grid-template-columns:repeat(5,1fr); gap:.75rem; margin:2rem 0;
}
.sc-sstat {
  background:var(--arena-light); border:2px solid var(--gris);
  border-radius:14px; padding:1rem; text-align:center; transition:all .3s;
}
.sc-sstat:hover { transform:translateY(-3px); box-shadow:0 8px 20px rgba(205,217,160,.3); border-color:var(--lima); background:white; }
.sc-sstat-icon  { font-size:1.6rem; margin-bottom:.35rem; }
.sc-sstat-label { font-size:.62rem; text-transform:uppercase; letter-spacing:1.5px; color:var(--topo); font-weight:700; margin-bottom:.2rem; }
.sc-sstat-val   { font-size:1rem; font-weight:900; color:var(--verde-dark); }

/* ── RECETA — SECCIONES ────────────────────────────────────── */
.sc-sec-ttl {
  font-family:'Playfair Display',serif;
  font-size:1.45rem; font-weight:700; color:var(--verde-dark);
  display:flex; align-items:center; gap:.65rem;
  margin-bottom:1.1rem; padding-bottom:.6rem;
  border-bottom:2px solid var(--arena);
}
.sc-sec-icon {
  width:34px; height:34px; border-radius:9px;
  background:var(--verde); color:white;
  display:flex; align-items:center; justify-content:center;
  font-size:.9rem; flex-shrink:0;
}

/* ── RECETA — INGREDIENTES ─────────────────────────────────── */
.sc-srv-ctrl {
  display:flex; align-items:center; gap:.9rem;
  background:var(--arena-light); border-radius:10px;
  padding:.6rem 1.1rem; border:2px solid var(--gris);
  margin-bottom:1.1rem; flex-wrap:wrap;
}
.sc-srv-ctrl label { font-size:.72rem; font-weight:700; color:var(--topo); text-transform:uppercase; letter-spacing:1px; }
.sc-srv-btn {
  width:28px; height:28px; border-radius:50%;
  background:var(--verde); color:white; border:none;
  font-size:1rem; cursor:pointer; font-weight:700;
  display:flex; align-items:center; justify-content:center;
  transition:all .2s; line-height:1;
}
.sc-srv-btn:hover { background:var(--verde-dark); transform:scale(1.12); }
#sc-srv-n { font-size:1.15rem; font-weight:900; color:var(--verde-dark); min-width:24px; text-align:center; }

.sc-ing-grid { display:grid; grid-template-columns:1fr 1fr; gap:.45rem; }
.sc-ing-item {
  display:flex; align-items:center; gap:.6rem;
  background:var(--bg-card); border-radius:11px;
  padding:.6rem .85rem; border:1.5px solid var(--gris);
  transition:all .2s; cursor:pointer;
}
.sc-ing-item:hover { border-color:var(--verde); background:var(--arena-light); transform:translateX(3px); }
.sc-ing-item.done { opacity:.4; text-decoration:line-through; }
.sc-ing-ico { width:30px; height:30px; border-radius:8px; background:var(--lima); display:flex; align-items:center; justify-content:center; font-size:1.05rem; flex-shrink:0; }
.sc-ing-amount { font-size:.88rem; font-weight:900; color:var(--verde-dark); }
.sc-ing-name   { font-size:.75rem; color:var(--topo); }

/* ── RECETA — UTENSILIOS ───────────────────────────────────── */
.sc-ut-grid { display:flex; flex-wrap:wrap; gap:.45rem; margin-bottom:2rem; }
.sc-ut-tag {
  display:flex; align-items:center; gap:.4rem;
  background:var(--arena-light); border:2px solid var(--arena);
  border-radius:25px; padding:.38rem .95rem;
  font-size:.78rem; font-weight:700; color:var(--dark); transition:all .2s;
}
.sc-ut-tag:hover { background:var(--lima); border-color:var(--lima); transform:translateY(-2px); }

/* ── RECETA — PASOS ────────────────────────────────────────── */
.sc-step { display:flex; gap:1rem; margin-bottom:1.2rem; position:relative; }
.sc-step:not(:last-child)::after {
  content:''; position:absolute;
  left:20px; top:42px; bottom:-1.2rem;
  width:2px; background:var(--lima);
}
.sc-step-num {
  width:42px; height:42px; border-radius:50%;
  background:var(--verde); color:white;
  display:flex; align-items:center; justify-content:center;
  font-family:'Playfair Display',serif; font-size:1rem; font-weight:900;
  flex-shrink:0; position:relative; z-index:1;
  box-shadow:0 4px 14px rgba(99,166,128,.35);
}
.sc-step-card {
  background:var(--bg-card); border-radius:12px;
  padding:1rem 1.2rem; flex:1; border:1.5px solid var(--gris); transition:all .25s;
}
.sc-step-card:hover { border-color:var(--arena); box-shadow:0 4px 14px rgba(217,208,163,.3); background:var(--arena-light); }
.sc-step-title { font-weight:900; font-size:.82rem; color:var(--verde-dark); margin-bottom:.3rem; text-transform:uppercase; letter-spacing:.5px; }
.sc-step-text  { font-size:.87rem; line-height:1.75; color:#555; }
.sc-step-time  {
  display:inline-flex; align-items:center; gap:.3rem;
  background:var(--lima); color:var(--dark);
  border-radius:14px; padding:.13rem .6rem;
  font-size:.68rem; font-weight:700; margin-top:.5rem;
}

/* ── TIPS ──────────────────────────────────────────────────── */
.sc-tips {
  background:var(--arena-light);
  border-left:4px solid var(--arena-dark);
  padding:1.2rem 1.5rem; border-radius:0 12px 12px 0;
  color:#555; font-style:italic; line-height:1.85; margin-bottom:2rem;
}

/* ── SIDEBAR RECETA ────────────────────────────────────────── */
.sc-sb-card {
  background:var(--bg-card); border-radius:16px;
  padding:1.3rem; border:2px solid var(--gris); margin-bottom:1.2rem;
}
.sc-sb-ttl {
  font-family:'Playfair Display',serif; font-size:1rem; font-weight:700;
  color:var(--verde-dark); margin-bottom:.9rem; padding-bottom:.6rem;
  border-bottom:2px solid var(--arena);
}

/* ── SHARE ─────────────────────────────────────────────────── */
.sc-share { display:flex; gap:.4rem; }
.sc-sh-btn {
  flex:1; padding:.5rem; border-radius:9px; border:none;
  cursor:pointer; font-weight:700; font-family:'Lato',sans-serif;
  font-size:.72rem; transition:all .2s;
  display:flex; align-items:center; justify-content:center; gap:.3rem;
}
.sc-sh-btn:hover { opacity:.85; transform:translateY(-2px); }

/* ── COMENTARIOS ───────────────────────────────────────────── */
.sc-comment {
  background:var(--bg-card); border-radius:13px;
  padding:1.2rem; margin-bottom:.7rem; border:1.5px solid var(--gris);
}
.sc-cm-avatar {
  width:38px; height:38px; border-radius:50%;
  background:var(--topo); display:flex; align-items:center; justify-content:center;
  font-size:1rem; font-weight:900; color:white; flex-shrink:0;
}
.sc-cm-stars { color:var(--arena-dark); font-size:.78rem; }
.sc-cm-text  { font-size:.86rem; line-height:1.7; color:#666; }

/* ── FORMULARIOS ───────────────────────────────────────────── */
.sc-form-label {
  font-size:.72rem; text-transform:uppercase; letter-spacing:1px;
  color:var(--topo); font-weight:700; display:block; margin-bottom:.35rem;
}
.sc-form-ctrl {
  border:2px solid var(--gris); border-radius:10px;
  padding:.7rem .95rem; font-family:'Lato',sans-serif;
  font-size:.88rem; background:white; width:100%;
  outline:none; transition:border-color .2s; color:var(--dark);
}
.sc-form-ctrl:focus { border-color:var(--verde); box-shadow:0 0 0 3px rgba(99,166,128,.1); }
.sc-btn-primary {
  background:var(--verde); color:white; border:none;
  padding:.78rem 2rem; border-radius:10px;
  font-family:'Lato',sans-serif; font-size:.92rem; font-weight:900;
  cursor:pointer; transition:all .25s;
}
.sc-btn-primary:hover { background:var(--verde-dark); transform:translateY(-2px); box-shadow:0 8px 20px rgba(99,166,128,.3); }

/* ── BOTÓN GENERAL ─────────────────────────────────────────── */
.btn-sc {
  background:var(--verde); color:white; border:none;
  padding:.65rem 2rem; border-radius:25px;
  font-weight:900; font-family:'Lato',sans-serif;
  cursor:pointer; transition:all .3s; display:inline-block;
  text-decoration:none; font-size:.92rem;
}
.btn-sc:hover { background:var(--verde-dark); color:white; transform:translateY(-2px); box-shadow:0 8px 20px rgba(99,166,128,.3); }

/* ── PROGRESS BAR ──────────────────────────────────────────── */
.sc-progress { position:fixed; top:62px; left:0; right:0; height:3px; background:rgba(0,0,0,.05); z-index:200; }
.sc-progress-fill { height:100%; background:var(--arena-dark); width:0; transition:width .1s linear; }

/* ── ADMIN — Elementos básicos ─────────────────────────────── */
.admin-form-card { background:white; border-radius:16px; padding:2rem; border:2px solid var(--gris); }
.form-section-title {
  font-weight:900; font-size:.8rem; text-transform:uppercase;
  letter-spacing:1.5px; color:var(--verde-dark);
  padding:.5rem 0; border-bottom:2px solid var(--lima);
  margin-bottom:1.2rem; margin-top:1.5rem;
}
.form-section-title:first-child { margin-top:0; }
.form-label { font-size:.78rem; text-transform:uppercase; letter-spacing:1px; color:var(--topo); font-weight:700; }
.form-control, .form-select { border:2px solid var(--gris); border-radius:10px; font-family:'Lato',sans-serif; background:white; }
.form-control:focus, .form-select:focus { border-color:var(--verde); box-shadow:0 0 0 3px rgba(99,166,128,.1); background:white; }
.btn-save { background:var(--verde); color:white; border:none; padding:.75rem 2rem; border-radius:10px; font-weight:900; font-family:'Lato',sans-serif; cursor:pointer; transition:all .25s; }
.btn-save:hover { background:var(--verde-dark); transform:translateY(-1px); }
.btn-cancel { background:transparent; color:var(--topo); border:2px solid var(--gris); padding:.75rem 1.5rem; border-radius:10px; font-weight:700; font-family:'Lato',sans-serif; text-decoration:none; display:inline-block; transition:all .25s; }
.btn-cancel:hover { border-color:var(--topo); color:var(--dark); }
.btn-danger { background:#C0392B; color:white; border:none; padding:.4rem .9rem; border-radius:8px; font-size:.78rem; font-weight:700; cursor:pointer; font-family:'Lato',sans-serif; transition:all .2s; }
.btn-danger:hover { background:#A93226; }
.dynamic-row input:focus { border-color:var(--verde) !important; outline:none; }
.btn-row-remove { width:30px; height:30px; border-radius:50%; background:#FDEDEC; border:none; color:#C0392B; font-size:1rem; cursor:pointer; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.btn-add-row { background:transparent; border:2px dashed var(--lima); color:var(--verde-dark); border-radius:8px; padding:.45rem 1rem; font-size:.82rem; font-weight:700; cursor:pointer; font-family:'Lato',sans-serif; transition:all .2s; margin-top:.3rem; }
.btn-add-row:hover { background:var(--verde-light); }

/* ── ADMIN — Sidebar ───────────────────────────────────────── */
.admin-sidebar { position:fixed; top:0; left:0; bottom:0; width:240px; background:#1e1e1e; z-index:200; display:flex; flex-direction:column; overflow-y:auto; }
.sidebar-logo { padding:1.5rem 1.2rem; border-bottom:1px solid rgba(255,255,255,.08); }
.sidebar-logo a { font-family:'Playfair Display',serif; font-size:1.3rem; font-weight:900; color:white; text-decoration:none; }
.sidebar-logo span { color:var(--lima); }
.sidebar-logo small { display:block; color:rgba(255,255,255,.35); font-size:.68rem; letter-spacing:1px; text-transform:uppercase; margin-top:.1rem; }
.sidebar-nav { flex:1; padding:1rem 0; }
.nav-group-label { font-size:.62rem; text-transform:uppercase; letter-spacing:2px; color:rgba(255,255,255,.25); padding:.75rem 1.2rem .3rem; font-weight:700; }
.sidebar-nav a { display:flex; align-items:center; gap:.7rem; padding:.65rem 1.2rem; color:rgba(255,255,255,.6); text-decoration:none; font-size:.85rem; font-weight:700; transition:all .2s; border-left:3px solid transparent; }
.sidebar-nav a:hover { color:white; background:rgba(255,255,255,.05); }
.sidebar-nav a.active { color:var(--lima); border-left-color:var(--lima); background:rgba(205,217,160,.08); }
.nav-badge { background:var(--verde); color:white; border-radius:10px; padding:.1rem .45rem; font-size:.65rem; margin-left:auto; }
.sidebar-footer { padding:1rem 1.2rem; border-top:1px solid rgba(255,255,255,.06); }
.sidebar-user { display:flex; align-items:center; gap:.6rem; margin-bottom:.75rem; }
.sidebar-avatar { width:34px; height:34px; border-radius:50%; background:var(--verde); display:flex; align-items:center; justify-content:center; font-size:.9rem; font-weight:900; color:white; flex-shrink:0; }
.sidebar-uname { font-size:.8rem; font-weight:700; color:white; }
.sidebar-role  { font-size:.65rem; color:rgba(255,255,255,.35); text-transform:uppercase; letter-spacing:1px; }
.btn-logout { width:100%; background:rgba(255,255,255,.06); color:rgba(255,255,255,.55); border:1px solid rgba(255,255,255,.08); border-radius:8px; padding:.45rem; font-size:.78rem; font-weight:700; cursor:pointer; transition:all .2s; font-family:'Lato',sans-serif; }
.btn-logout:hover { background:rgba(255,255,255,.1); color:white; }

/* ── ADMIN — Main area ─────────────────────────────────────── */
.admin-main { margin-left:240px; min-height:100vh; display:flex; flex-direction:column; }
.admin-topbar { background:white; border-bottom:2px solid var(--gris); padding:.75rem 2rem; display:flex; align-items:center; justify-content:space-between; position:sticky; top:0; z-index:100; }
.page-title-bar { font-family:'Playfair Display',serif; font-size:1.3rem; font-weight:700; color:var(--dark); }
.admin-content { flex:1; padding:2rem; }

/* ── ADMIN — Tabla ─────────────────────────────────────────── */
.admin-table { background:white; border-radius:16px; overflow:hidden; border:2px solid var(--gris); }
.admin-table table { margin:0; }
.admin-table thead th { background:#1e1e1e; color:white; font-size:.75rem; text-transform:uppercase; letter-spacing:1px; font-weight:700; border:none; padding:.85rem 1rem; }
.admin-table tbody td { padding:.85rem 1rem; vertical-align:middle; font-size:.88rem; border-color:var(--gris); }
.admin-table tbody tr:hover td { background:var(--arena-light); }

/* ── ADMIN — Badges ────────────────────────────────────────── */
.status-badge { display:inline-block; padding:.2rem .7rem; border-radius:15px; font-size:.7rem; font-weight:900; text-transform:uppercase; letter-spacing:.5px; }
.sb-published { background:var(--verde-light); color:var(--verde-dark); }
.sb-draft     { background:#FEF9E7; color:#B7950B; }
.sb-archived  { background:var(--arena-light); color:var(--topo); }
.sb-pending   { background:#EBF5FB; color:#1A5276; }
.sb-approved  { background:var(--verde-light); color:var(--verde-dark); }
.sb-spam      { background:#FDEDEC; color:#C0392B; }

/* ── ADMIN — Stats cards ───────────────────────────────────── */
.stat-card-admin { background:white; border-radius:16px; padding:1.5rem; border:2px solid var(--gris); transition:all .25s; }
.stat-card-admin:hover { transform:translateY(-3px); box-shadow:0 10px 30px rgba(0,0,0,.07); border-color:var(--lima); }
.stat-num { font-size:2rem; font-weight:900; color:var(--verde-dark); }
.stat-lbl { font-size:.75rem; text-transform:uppercase; letter-spacing:1px; color:var(--topo); font-weight:700; }
.stat-icon-bg { width:48px; height:48px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:1.4rem; }

/* ── ADMIN — Flash ─────────────────────────────────────────── */
.flash { padding:.85rem 1.2rem; border-radius:10px; margin-bottom:1.5rem; font-size:.88rem; font-weight:700; }
.flash-ok  { background:var(--verde-light); border:2px solid var(--lima); color:var(--verde-dark); }
.flash-err { background:#FDEDEC; border:2px solid #F1948A; color:#C0392B; }

/* ── PÁGINAS LEGALES ───────────────────────────────────────── */
.legal-hero { background:linear-gradient(135deg, var(--verde), var(--verde-dark)); padding:3rem 0; text-align:center; }
.legal-hero h1 { font-family:'Playfair Display',serif; font-size:2.2rem; color:white; font-weight:900; }
.legal-hero p { color:rgba(255,255,255,.85); font-size:.9rem; }
.legal-body { background:white; border-radius:20px; padding:3rem; box-shadow:0 4px 20px rgba(0,0,0,.06); border:2px solid var(--gris); }
.legal-body h2 { font-family:'Playfair Display',serif; font-size:1.3rem; color:var(--verde-dark); margin:2rem 0 .75rem; border-left:4px solid var(--arena-dark); padding-left:1rem; }
.legal-body h3 { font-size:1rem; font-weight:900; color:var(--mid); margin:1.2rem 0 .5rem; }
.legal-body p, .legal-body li { font-size:.9rem; line-height:1.8; color:#555; }
.legal-body ul { padding-left:1.5rem; }
.legal-body a { color:var(--verde); }
.legal-updated { background:var(--arena-light); border-radius:10px; padding:.75rem 1.2rem; font-size:.78rem; color:var(--topo); margin-bottom:2rem; border:1px solid var(--arena); }

/* ── AUTH ──────────────────────────────────────────────────── */
.auth-header { background:var(--verde); padding:2.5rem 2rem; text-align:center; }
.btn-auth { width:100%; background:var(--verde); color:white; border:none; padding:1rem; border-radius:12px; font-family:'Lato',sans-serif; font-size:1rem; font-weight:900; cursor:pointer; transition:all .3s; margin-top:1.5rem; }
.btn-auth:hover { background:var(--verde-dark); transform:translateY(-2px); box-shadow:0 10px 30px rgba(99,166,128,.35); }
.otp-digit:focus { border-color:var(--verde) !important; box-shadow:0 0 0 4px rgba(99,166,128,.1); }

/* ── RESPONSIVE ────────────────────────────────────────────── */
@media(max-width:992px) {
  .sc-stats-strip { grid-template-columns:repeat(3,1fr); }
  .sc-ing-grid    { grid-template-columns:1fr; }
  .sc-hero-content { padding:2rem; }
  .admin-sidebar  { transform:translateX(-100%); }
  .admin-main     { margin-left:0; }
}
@media(max-width:576px) {
  .sc-stats-strip { grid-template-columns:repeat(2,1fr); }
  .sc-hero        { min-height:300px; }
  .sc-hero h1     { font-size:1.4rem; }
  .sc-hero-content { padding:1.5rem; }
  .sc-card-img    { height:100px; }
  .sc-card-title  { font-size:.78rem; }
  .sc-card-desc   { font-size:.68rem; }
  .container      { max-width:100% !important; }
}

/* ── CARRUSEL ──────────────────────────────────────────────── */
#sc-carousel.carousel-fade .carousel-item {
  transition-duration:1.2s;
}
#sc-carousel .carousel-indicators { z-index:5; margin-bottom:1.2rem; }
#sc-carousel .carousel-indicators button {
  width:14px; height:14px; border-radius:50%;
  border:2px solid rgba(255,255,255,.8); background:transparent;
  opacity:.6; transition:all .3s; margin:0 4px;
}
#sc-carousel .carousel-indicators button.active {
  background:var(--arena); border-color:var(--arena); opacity:1;
  transform:scale(1.2);
}
#sc-carousel .carousel-control-prev,
#sc-carousel .carousel-control-next {
  width:60px; z-index:5; opacity:.5;
}
#sc-carousel .carousel-control-prev:hover,
#sc-carousel .carousel-control-next:hover { opacity:1; }
#sc-carousel .carousel-control-prev-icon,
#sc-carousel .carousel-control-next-icon {
  width:2.5rem; height:2.5rem;
  background-color:rgba(0,0,0,.4); border-radius:50%; padding:.5rem;
}
.sc-hero-sub {
  color:rgba(255,255,255,.85); font-size:1rem;
  margin-bottom:.75rem; max-width:600px; line-height:1.5;
}

/* ── PRINT ─────────────────────────────────────────────────── */
/* ── IMPRESION — formato tipo libro de cocina ─────────────── */
@media print {
  /* Ocultar todo lo que no es la receta */
  nav, footer, .sc-nav, .sc-footer, .sc-progress,
  .sc-recipe-sidebar, .sc-comments-wrap, .sc-related-wrap,
  .sc-share, .sc-btn-primary, .sc-srv-ctrl, #sc-cookie-banner,
  .btn-hero, .sc-hero-badge, .sc-hero-meta,
  .admin-sidebar, .admin-topbar, .sc-search-btn-nav,
  .sc-search-clear, .nav-search, .btn-nav-contact,
  #sc-video-section { display:none !important; }

  /* Reset general */
  * { box-shadow:none !important; }
  body { background:white !important; font-size:11pt; color:#222 !important; line-height:1.6; }
  a { color:#222 !important; text-decoration:none !important; }
  .container { max-width:100% !important; padding:0 !important; margin:0 !important; }

  /* Cabecera de la receta */
  .sc-hero { min-height:auto !important; background:none !important; page-break-after:avoid; }
  .sc-hero-overlay { display:none !important; }
  .sc-hero-img { display:none !important; }
  .sc-hero-content { padding:0 !important; position:static !important; color:#222 !important; }
  .sc-hero h1 { color:#222 !important; font-size:22pt !important; margin-bottom:8pt; border-bottom:2pt solid #63A680; padding-bottom:6pt; }

  /* Foto principal — opcion con clase .print-no-img la oculta */
  .sc-hero-img.print-show { display:block !important; position:static !important; width:100%; height:200px; border-radius:0; }

  /* Layout — una sola columna */
  .sc-recipe-layout { display:block !important; }
  .sc-recipe-main { overflow:visible !important; }

  /* Stats strip */
  .sc-stats-strip { display:flex !important; gap:0 !important; border:1.5pt solid #ddd; border-radius:0; margin:12pt 0; page-break-inside:avoid; }
  .sc-sstat { border:none !important; border-right:1pt solid #eee; padding:8pt; background:none !important; flex:1; }
  .sc-sstat:last-child { border-right:none; }
  .sc-sstat-icon { font-size:14pt; }
  .sc-sstat-label { font-size:7pt; }
  .sc-sstat-val { font-size:11pt; }

  /* Descripcion */
  .sc-tips { background:#f8f8f8 !important; border-left:3pt solid #63A680 !important; padding:8pt 12pt !important; font-style:italic; page-break-inside:avoid; }

  /* Ingredientes */
  .sc-ing-grid { display:grid !important; grid-template-columns:1fr 1fr !important; gap:4pt !important; }
  .sc-ing-card { border:1pt solid #eee !important; padding:4pt 8pt !important; font-size:10pt; page-break-inside:avoid; }

  /* Utensilios */
  .sc-ut-grid { display:flex !important; flex-wrap:wrap !important; gap:4pt !important; }
  .sc-ut-tag { border:1pt solid #ddd !important; padding:2pt 8pt !important; font-size:9pt; background:none !important; }

  /* Titulos de seccion */
  .sc-sec-ttl { font-size:14pt !important; color:#63A680 !important; border-bottom:1pt solid #63A680; padding-bottom:4pt; margin:16pt 0 8pt; page-break-after:avoid; }
  .sc-sec-icon { display:inline !important; }

  /* Pasos */
  .sc-steps-wrap { margin:0 !important; }
  .sc-step { page-break-inside:avoid; margin-bottom:10pt; }
  .sc-step-num { background:#63A680 !important; color:white !important; border:none !important; width:24pt; height:24pt; font-size:11pt; line-height:24pt; }
  .sc-step-card { border:1pt solid #eee !important; padding:8pt 10pt !important; }
  .sc-step-title { font-size:11pt !important; font-weight:bold; }
  .sc-step-text { font-size:10pt; }
  .sc-step-time { font-size:8pt; color:#888 !important; }
  .sc-step-card img { max-width:250px !important; max-height:150px !important; border-radius:4pt; }

  /* Consejos */
  [id="sc-video-section"] ~ div { page-break-inside:avoid; }

  /* Pie de impresion */
  .sc-recipe-layout::after {
    content:'Impreso desde SaborEC — sindefinir.es';
    display:block; text-align:center; font-size:8pt; color:#aaa;
    margin-top:20pt; padding-top:8pt; border-top:1pt solid #ddd;
  }
}
