:root{--forest:#082c21;--forest-2:#0d4030;--lime:#b8e23d;--sand:#f3efe5;--ink:#17211d;--muted:#68736e;--white:#fff;--line:#dfe5e1}
*{box-sizing:border-box}body{font-family:Montserrat,Arial,sans-serif;color:var(--ink);background:#fff}.event-strip{background:#061d16;color:#fff;font-size:.79rem}.event-strip strong{color:var(--lime);letter-spacing:.08em}.event-pill{color:#fff;text-decoration:none;white-space:nowrap;border:1px solid #ffffff2e;border-radius:999px;padding:.3rem .75rem}.main-nav{background:linear-gradient(90deg,#082c21,#0b382a);box-shadow:0 5px 22px #0003}.navbar-brand img{height:38px;width:auto;filter:brightness(0) invert(1)}.navbar .nav-link{font-size:.84rem;font-weight:600}.btn-brand,.btn-brand:hover{background:var(--lime);border-color:var(--lime);color:#102318;font-weight:800}.hero-classic{min-height:680px;background:linear-gradient(90deg,#061d16ed 0%,#082c21cc 50%,#082c2166),radial-gradient(circle at 80% 35%,#b8e23d33,transparent 33%),linear-gradient(135deg,#153d30,#071c15);display:flex;align-items:center;position:relative;overflow:hidden}.hero-classic:after{content:"";position:absolute;inset:auto -7% -28% auto;width:540px;height:540px;border:70px solid #b8e23d19;border-radius:50%}.eyebrow{display:inline-block;color:var(--lime);font-weight:800;letter-spacing:.16em;font-size:.78rem}.hero-classic h1{font-family:'Playfair Display',serif;color:#fff;font-size:clamp(3rem,7vw,6.1rem);line-height:.96;max-width:850px}.hero-classic h1 span{color:var(--lime)}.hero-classic .lead{max-width:720px;color:#dae6df}.hero-logo-panel{background:#ffffff0d;border:1px solid #ffffff24;border-radius:28px;backdrop-filter:blur(12px);padding:2rem}.hero-logo-panel img{filter:brightness(0) invert(1);width:100%}.section-title span{color:#638b2c;font-size:.76rem;font-weight:800;letter-spacing:.14em}.section-title h2{font-family:'Playfair Display',serif;font-size:clamp(2rem,4vw,3.2rem);margin:.35rem 0}.feature-card,.content-card,.form-card,.admin-card{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 14px 38px #133c2b0f}.feature-card{padding:1.7rem;height:100%}.feature-icon{width:52px;height:52px;border-radius:15px;background:#eaf4d4;display:grid;place-items:center;font-weight:900;color:#335a18}.dark-band{background:linear-gradient(135deg,#061d16,#0e4634);color:#fff}.stat-number{font-size:2.6rem;font-weight:800;color:var(--lime)}.event-card{border:0;border-radius:20px;overflow:hidden;box-shadow:0 12px 35px #102b2018;height:100%}.event-card img{height:230px;object-fit:cover}.event-card .card-body{padding:1.5rem}.event-type{color:#557d24;font-size:.75rem;font-weight:800;letter-spacing:.1em}.brands-section{background:var(--sand)}.brand-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem}.brand-item{background:#fff;border:1px solid #e0ded5;border-radius:16px;padding:1rem;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:130px;text-decoration:none;color:var(--ink)}.brand-item img{max-width:100%;max-height:65px;object-fit:contain}.brand-item small{margin-top:.6rem;font-weight:600}.site-footer{background:#061d16;color:#d5dfda}.site-footer a{display:block;color:#d5dfda;text-decoration:none;margin:.45rem 0}.site-footer h6{color:var(--lime);font-weight:800}.footer-logo{width:260px;max-width:100%;filter:brightness(0) invert(1)}.page-hero{background:linear-gradient(110deg,#061d16,#0d4533);color:#fff;padding:5rem 0}.page-hero h1{font-family:'Playfair Display',serif;font-size:clamp(2.6rem,6vw,4.8rem)}.form-card{padding:clamp(1.25rem,4vw,2.5rem)}.table-modern{border-radius:16px;overflow:hidden;border:1px solid var(--line)}.table-modern thead th{background:#0c382a;color:#fff;border:0}.gallery-grid{columns:3 280px;column-gap:1rem}.gallery-item{break-inside:avoid;margin-bottom:1rem;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 10px 28px #0001}.gallery-item img,.gallery-item video{width:100%;display:block}.product-card{border:1px solid var(--line);border-radius:18px;overflow:hidden;height:100%;background:#fff}.product-card img{width:100%;height:220px;object-fit:cover}.product-card .p-body{padding:1.2rem}.price{font-size:1.35rem;font-weight:800;color:#315e1c}.whatsapp-float{position:fixed;right:20px;bottom:20px;width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:#25d366;color:#fff;text-decoration:none;font-weight:900;box-shadow:0 10px 28px #0004;z-index:1050}.popup-card{border-radius:24px;border:0}.admin-shell{background:#eef2ef;min-height:100vh}.admin-sidebar{background:#061d16;color:#fff;min-height:100vh}.admin-sidebar a{display:block;color:#dce6e1;text-decoration:none;padding:.7rem .85rem;border-radius:10px;margin:.15rem 0}.admin-sidebar a:hover,.admin-sidebar a.active{background:#ffffff17;color:var(--lime)}.admin-top{background:#fff;border-bottom:1px solid var(--line)}.badge-soft{background:#eaf3e7;color:#356123}.empty-box{padding:3rem;border:2px dashed #d4ddd8;border-radius:18px;text-align:center;color:var(--muted)}
@media(max-width:991px){.hero-classic{min-height:auto;padding:5rem 0}.hero-logo-panel{margin-top:2rem}.admin-sidebar{min-height:auto}.gallery-grid{columns:2 220px}}@media(max-width:575px){.gallery-grid{columns:1}.hero-classic h1{font-size:3rem}.event-strip{display:none}}

/* Logo unificado 2026-08-06: el SVG enviado por el propietario se usa en todo el sitio */
.navbar-brand{
  display:flex;
  align-items:center;
  padding:.18rem 0;
  background:transparent;
  border:0;
  box-shadow:none;
  overflow:visible;
}
.navbar-brand img{
  display:block;
  width:auto;
  height:50px;
  max-width:min(330px,45vw);
  object-fit:contain;
  filter:none;
}
.hero-logo-panel{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:190px;
  background:linear-gradient(135deg,#ffffff0c,#ffffff05);
  border:1px solid #ffffff22;
  border-radius:24px;
  box-shadow:0 22px 55px #0003;
  padding:1.4rem;
  overflow:hidden;
}
.hero-logo-panel img{
  display:block;
  width:100%;
  height:auto;
  max-height:230px;
  object-fit:contain;
  filter:none;
}
.footer-logo{
  display:block;
  width:390px;
  max-width:100%;
  height:auto;
  object-fit:contain;
  filter:none;
  background:transparent;
  border:0;
  border-radius:0;
  padding:0;
}
.admin-brand-logo{
  display:block;
  width:100%;
  max-width:290px;
  height:auto;
  object-fit:contain;
  filter:none;
  background:transparent;
  border:0;
  border-radius:0;
  padding:.2rem 0;
}
@media(max-width:575px){
  .navbar-brand{padding:.12rem 0}
  .navbar-brand img{height:41px;max-width:225px}
  .hero-logo-panel{min-height:140px;padding:.85rem}
}

/* Carrito flotante: versión compacta y elegante */
.cart-button{
  right:20px;
  bottom:88px;
  z-index:1040;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.48rem;
  min-height:44px;
  padding:.5rem .68rem .5rem .72rem;
  border-radius:999px;
  border:1px solid rgba(16,35,24,.14);
  box-shadow:0 9px 24px rgba(6,29,22,.22);
  font-size:.86rem;
  line-height:1;
  letter-spacing:.01em;
  transition:transform .18s ease,box-shadow .18s ease;
}
.cart-button:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 28px rgba(6,29,22,.28);
}
.cart-button:focus-visible{
  outline:3px solid rgba(184,226,61,.35);
  outline-offset:3px;
}
.cart-button-icon{
  width:18px;
  height:18px;
  flex:0 0 18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.cart-button-icon circle{
  fill:currentColor;
  stroke:none;
}
.cart-button-label{
  font-weight:800;
  white-space:nowrap;
}
.cart-button-count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:21px;
  height:21px;
  padding:0 .34rem;
  border-radius:999px;
  background:#102318;
  color:#fff;
  font-size:.69rem;
  font-weight:800;
  line-height:1;
}
@media(max-width:575px){
  .cart-button{
    right:14px;
    bottom:82px;
    min-height:42px;
    padding:.46rem .62rem .46rem .66rem;
    font-size:.82rem;
  }
  .cart-button-icon{width:17px;height:17px;flex-basis:17px}
  .cart-button-count{min-width:20px;height:20px;font-size:.66rem}
}


/* Logo exclusivo del menú — SVG blanco transparente enviado por el propietario */
.main-nav .navbar-brand{
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  flex:0 0 auto;
  line-height:0;
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
  padding:0;
  margin-right:1.35rem;
  overflow:visible;
}
.main-nav .navbar-brand img{
  display:block;
  width:auto;
  height:48px;
  max-width:190px;
  object-fit:contain;
  filter:none;
}
@media(max-width:1199.98px){
  .main-nav .navbar-brand img{height:46px;max-width:178px}
}
@media(max-width:575.98px){
  .main-nav .navbar-brand{margin-right:.65rem;padding:0}
  .main-nav .navbar-brand img{height:40px;max-width:150px}
}

/* Botón flotante de WhatsApp — ícono clásico de teléfono */
.whatsapp-float{
  overflow:hidden;
  transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.whatsapp-float img{
  display:block;
  width:23.2px;
  height:23.2px;
  object-fit:contain;
}
.whatsapp-float:hover{
  color:#fff;
  background:#20bd5a;
  transform:translateY(-2px) scale(1.035);
  box-shadow:0 14px 32px #0005;
}
.whatsapp-float:focus-visible{
  outline:3px solid #fff;
  outline-offset:3px;
}
@media(max-width:575.98px){
  .whatsapp-float{width:52px;height:52px;right:16px;bottom:16px}
  .whatsapp-float img{width:21.6px;height:21.6px}
}

/* Logo de portada sin recuadro, fondo, borde ni sombra */
.hero-logo-panel{
  min-height:auto;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  padding:0 !important;
  overflow:visible;
}
.hero-logo-panel img{
  width:100%;
  max-width:540px;
  max-height:none;
  margin:0 auto;
}
@media(max-width:991.98px){
  .hero-logo-panel{margin-top:2rem}
  .hero-logo-panel img{max-width:460px}
}
@media(max-width:575.98px){
  .hero-logo-panel{min-height:auto;padding:0 !important}
  .hero-logo-panel img{max-width:330px}
}

/* Ajuste 2026-08-06: logo del menú 20% más grande que el tamaño actual */
.main-nav .navbar-brand img{
  height:66.2px;
  max-width:262px;
}
@media(max-width:1199.98px){
  .main-nav .navbar-brand img{height:63.5px;max-width:245.6px}
}
@media(max-width:575.98px){
  .main-nav .navbar-brand img{height:55.2px;max-width:207px}
}
