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

:root { --vino:#6f0d25; --vino-oscuro:#4b0718; --coral:#ff6b4a; --dorado:#f5b942; --verde:#16a864; --tinta:#19161a; --texto:#4f4850; --fondo:#f6f5f3; --borde:#e7e3df; --blanco:#fff; --sombra:0 14px 40px rgba(47,16,24,.09); --radio:18px; }
* { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body { font-family:'DM Sans',sans-serif; color:var(--tinta); background:var(--fondo); line-height:1.55; }
img { max-width:100%; }
button,input,select,textarea { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
a { color:inherit; }
.topbar { background:var(--vino-oscuro); color:#fff; text-align:center; padding:7px 16px; font-size:13px; }
.topbar strong { color:#ffd57a; }
.header { background:var(--vino); color:#fff; position:sticky; top:0; z-index:1000; box-shadow:0 5px 18px rgba(55,5,17,.18); }
.header-main { max-width:1440px; margin:auto; min-height:78px; padding:12px 28px; display:grid; grid-template-columns:220px minmax(280px,1fr) auto; align-items:center; gap:28px; }
.logo { text-decoration:none; display:flex; align-items:center; gap:11px; }
.logo-marca { width:44px; height:44px; border-radius:13px; display:grid; place-items:center; background:#fff; color:var(--vino); font-family:Manrope,sans-serif; font-weight:800; font-size:22px; }
.logo-texto { display:flex; flex-direction:column; font-family:Manrope,sans-serif; font-size:22px; font-weight:800; line-height:1; }
.logo-texto small { margin-top:5px; font:600 9px 'DM Sans'; letter-spacing:1.6px; opacity:.75; }
.logo.logo-text-only .logo-texto { color:#fff; font-size:25px; }
.logo.logo-text-only .logo-texto small { color:#f5dfe6; opacity:1; font-size:10px; letter-spacing:1.2px; text-transform:none; }
.busqueda { position:relative; }
.busqueda input { width:100%; height:48px; border:0; border-radius:12px; padding:0 52px 0 18px; outline:none; box-shadow:0 0 0 3px transparent; transition:.2s; }
.busqueda input:focus { box-shadow:0 0 0 3px rgba(255,213,122,.55); }
.busqueda::after { content:'⌕'; position:absolute; right:17px; top:6px; font-size:26px; color:var(--vino); }
.menu { display:flex; align-items:center; gap:8px; }
.menu a { text-decoration:none; padding:10px 12px; border-radius:9px; font-weight:700; font-size:14px; white-space:nowrap; }
.menu a:hover,.menu a.activo { background:rgba(255,255,255,.14); }
.menu .menu-whatsapp { background:#fff; color:var(--vino); }
.menu-toggle { display:none; border:0; background:rgba(255,255,255,.12); color:#fff; width:44px; height:44px; border-radius:10px; font-size:22px; cursor:pointer; }
.category-nav { background:#fff; border-bottom:1px solid var(--borde); }
.category-nav-inner { max-width:1440px; margin:auto; padding:0 28px; display:flex; overflow-x:auto; scrollbar-width:none; }
.category-nav a { text-decoration:none; white-space:nowrap; padding:13px 17px; font-size:14px; font-weight:600; color:var(--texto); border-bottom:2px solid transparent; }
.category-nav a:hover { color:var(--vino); border-color:var(--vino); }
.category-trigger { border:0; border-right:1px solid var(--borde); background:#fff; padding:0 18px; min-height:48px; color:var(--tinta); font-weight:800; white-space:nowrap; cursor:pointer; }
.category-trigger:hover,.category-trigger[aria-expanded="true"] { color:var(--vino); background:#faf5f6; }
.category-drawer-overlay { position:fixed; inset:0; z-index:1900; background:rgba(25,14,18,.46); opacity:0; visibility:hidden; transition:opacity .22s,visibility .22s; }
.category-drawer-overlay.abierto { opacity:1; visibility:visible; }
.category-drawer { position:absolute; top:0; left:0; width:min(380px,92vw); height:100%; background:#fff; box-shadow:18px 0 45px rgba(28,12,18,.2); transform:translateX(-102%); transition:transform .3s ease; overflow:hidden; }
.category-drawer-overlay.abierto .category-drawer { transform:translateX(0); }
.category-drawer-header { height:76px; padding:0 20px 0 24px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--borde); }
.category-drawer-header small { display:block; color:var(--vino); font-size:10px; font-weight:800; letter-spacing:1.4px; }
.category-drawer-header h2 { font:800 21px Manrope,sans-serif; }
.category-close { border:0; width:42px; height:42px; border-radius:50%; background:#f4f1ef; font-size:25px; cursor:pointer; }
.category-panels { display:flex; width:200%; height:calc(100% - 76px); transition:transform .28s ease; }
.category-panels.mostrando-subcategorias { transform:translateX(-50%); }
.category-panel { width:50%; flex:0 0 50%; overflow-y:auto; background:#fff; padding:10px 0 30px; }
.category-main-panel h3 { padding:18px 23px 8px; font-size:16px; }
.category-home-link { display:block; padding:13px 23px; border-bottom:1px solid var(--borde); color:var(--vino); font-size:14px; font-weight:800; text-decoration:none; }
.category-option { width:100%; display:flex; align-items:center; gap:12px; border:0; background:transparent; padding:12px 23px; text-align:left; color:var(--tinta); cursor:pointer; font-size:14px; font-weight:500; }
.category-option:hover,.category-option:focus-visible { background:#f7f3f4; color:var(--vino); outline:0; }
.category-option-arrow { margin-left:auto; color:#9d9195; font-size:18px; }
.category-sub-panel { padding-top:0; }
.subcategory-back { width:100%; display:block; border:0; border-bottom:1px solid var(--borde); background:#faf8f7; color:var(--tinta); padding:14px 23px; text-align:left; text-transform:uppercase; font-size:11px; font-weight:800; cursor:pointer; }
.subcategory-panel-header { padding:20px 23px 14px; }
.subcategory-panel-header h3 { font:800 23px Manrope,sans-serif; margin-bottom:6px; }
.subcategory-all-link { color:var(--vino); text-decoration:none; font-size:13px; font-weight:800; }
.category-link-group { padding:15px 23px; border-top:1px solid var(--borde); }
.category-link-group h4 { margin-bottom:6px; font-size:15px; }
.category-link-group a { display:block; padding:6px 0; color:var(--texto); font-size:13px; text-decoration:none; }
.category-link-group a:hover { color:var(--vino); text-decoration:underline; }
.category-link-group .category-group-all { color:var(--vino); font-weight:700; }
.category-direct-links { padding-top:8px; }
.category-direct-links a { padding:10px 0; color:var(--tinta); font-size:14px; }
.btn-principal,.btn-secundario { display:inline-flex; justify-content:center; align-items:center; gap:8px; border:0; border-radius:12px; padding:14px 24px; text-decoration:none; font-weight:800; cursor:pointer; transition:transform .18s,box-shadow .18s; }
.btn-principal { background:var(--vino); color:#fff; box-shadow:0 8px 20px rgba(111,13,37,.2); }
.btn-secundario { background:#fff; color:var(--vino); border:1px solid var(--borde); }
.btn-principal:hover,.btn-secundario:hover { transform:translateY(-2px); }
.footer { margin-top:72px; background:#21171b; color:#fff; }
.footer-grid { max-width:1200px; margin:auto; padding:52px 24px; display:grid; grid-template-columns:1.5fr repeat(3,1fr); gap:50px; }
.footer h3 { margin-bottom:14px; }
.footer p,.footer a { color:#cfc6ca; font-size:14px; }
.footer a { display:block; text-decoration:none; margin:8px 0; }
.footer a:hover { color:#fff; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.1); padding:18px 24px; text-align:center; color:#a99da2; font-size:13px; }
.floating-whatsapp { position:fixed; right:22px; bottom:22px; z-index:900; width:58px; height:58px; display:grid; place-items:center; border-radius:50%; background:#20bd69; color:#fff; text-decoration:none; font-size:27px; box-shadow:0 10px 28px rgba(20,130,72,.35); }
.empty-state,.error-state { grid-column:1/-1; text-align:center; padding:55px 20px; background:#fff; border-radius:var(--radio); border:1px dashed #d7d0ca; }
.empty-state h3 { margin-bottom:8px; }
.empty-state p { color:var(--texto); }
.contact-hero { background:linear-gradient(135deg,var(--vino),#9a2640); color:#fff; padding:72px 24px; text-align:center; }
.contact-hero h1 { font:800 clamp(36px,5vw,58px) Manrope,sans-serif; letter-spacing:-1.5px; }
.contact-hero p { max-width:650px; margin:14px auto 0; color:#f1dfe5; font-size:18px; }
.contact-layout { max-width:1100px; margin:55px auto; padding:0 24px; display:grid; grid-template-columns:.8fr 1.2fr; gap:28px; }
.contact-card { background:#fff; border:1px solid var(--borde); border-radius:var(--radio); padding:28px; }
.contact-card h2 { font:800 26px Manrope,sans-serif; margin-bottom:8px; }.contact-card>p { color:var(--texto); margin-bottom:22px; }
.contact-method { display:flex; gap:13px; padding:16px 0; border-bottom:1px solid var(--borde); }.contact-method:last-child{border:0}.contact-method span{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:#f7eaee}.contact-method strong,.contact-method a,.contact-method small{display:block}.contact-method a,.contact-method small{color:var(--texto);text-decoration:none}.contact-method a{margin-top:4px;color:var(--vino);font-weight:700}
.contact-form { display:grid; gap:17px; }.contact-form label{font-weight:700;font-size:14px}.contact-form input,.contact-form select,.contact-form textarea{width:100%;margin-top:6px;padding:12px;border:1px solid #d8d3cf;border-radius:10px;outline:none}.contact-form textarea{min-height:125px;resize:vertical}.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{border-color:var(--vino);box-shadow:0 0 0 3px #f5e8eb}
.faq-section { max-width:900px; margin:70px auto; padding:0 24px; }.faq-section h2{text-align:center;font:800 34px Manrope,sans-serif;margin-bottom:28px}.faq-item{background:#fff;border:1px solid var(--borde);border-radius:13px;margin:10px 0;padding:0 20px}.faq-item summary{padding:18px 0;font-weight:800;cursor:pointer}.faq-item p{padding:0 0 18px;color:var(--texto)}
.policy-page { max-width:1000px; margin:0 auto; padding:48px 24px 10px; }
.policy-hero { text-align:center; max-width:720px; margin:0 auto 28px; }
.policy-hero>p { color:var(--vino); font-weight:800; text-transform:uppercase; letter-spacing:1px; font-size:12px; }
.policy-hero h1 { margin:7px 0; font:800 clamp(36px,6vw,56px) Manrope,sans-serif; letter-spacing:-1.5px; }
.policy-hero span { color:var(--texto); }
.policy-index { position:sticky; top:104px; z-index:20; display:flex; justify-content:center; flex-wrap:wrap; gap:8px; margin-bottom:30px; padding:10px; border:1px solid var(--borde); border-radius:14px; background:rgba(246,245,243,.94); backdrop-filter:blur(10px); }
.policy-index a { padding:8px 12px; border-radius:9px; color:var(--vino); text-decoration:none; font-size:13px; font-weight:800; }
.policy-index a:hover { background:#f4e5e9; }
.policy-layout { display:grid; gap:16px; }
.policy-layout article { scroll-margin-top:180px; padding:28px; border:1px solid var(--borde); border-radius:var(--radio); background:#fff; }
.policy-layout h2 { margin-bottom:10px; font:800 24px Manrope,sans-serif; }
.policy-layout p { margin:9px 0; color:var(--texto); }
.policy-layout ul { margin:12px 0 0 22px; color:var(--texto); }
.policy-layout li+li { margin-top:7px; }
.policy-layout a { color:var(--vino); font-weight:800; }
.not-found { min-height:100vh; display:grid; place-content:center; justify-items:center; padding:30px; text-align:center; }
.not-found>span { color:#ead6dc; font:800 clamp(90px,25vw,220px) Manrope,sans-serif; line-height:.8; }
.not-found h1 { margin:20px 0 8px; font:800 clamp(30px,5vw,48px) Manrope,sans-serif; }
.not-found p { max-width:570px; color:var(--texto); }
.not-found>div { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:24px; }
.preview-grid-admin { display:grid; grid-template-columns:repeat(auto-fill,minmax(110px,1fr)); gap:15px; margin-top:15px; }
.preview-item { display:flex; flex-direction:column; gap:7px; }
.preview-item img { width:100%; aspect-ratio:1; object-fit:cover; border-radius:12px; }
.btn-portada,.btn-eliminar-imagen { border:0; border-radius:8px; padding:8px; color:#fff; cursor:pointer; font-size:12px; font-weight:700; }
.btn-portada { background:var(--vino); }
.btn-eliminar-imagen { background:#a71d36; }
@media(max-width:960px){.header-main{grid-template-columns:1fr auto;padding:12px 18px;gap:12px}.busqueda{grid-row:2;grid-column:1/-1}.menu-toggle{display:block}.menu{display:none;position:absolute;left:0;right:0;top:78px;padding:16px;flex-direction:column;align-items:stretch;background:var(--vino)}.menu.abierto{display:flex}.menu a{text-align:center}.footer-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.topbar{font-size:11px}.header-main{min-height:68px}.logo-marca{width:38px;height:38px}.logo-texto{font-size:19px}.menu{top:68px}.category-nav-inner{padding:0 8px}.footer-grid{grid-template-columns:1fr;gap:28px}.floating-whatsapp{right:15px;bottom:15px;width:52px;height:52px}}
@media(max-width:760px){.contact-layout{grid-template-columns:1fr;margin:35px auto}.contact-hero{padding:52px 20px}}
@media(max-width:760px){.policy-page{padding:35px 16px 0}.policy-index{top:154px;justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto}.policy-layout article{padding:22px}.policy-layout article{scroll-margin-top:230px}}
@media(max-width:680px){.category-drawer{width:100vw}.category-drawer-header{height:68px}.category-panels{height:calc(100% - 68px)}.category-panel{padding:10px 0 30px}.category-sub-panel{padding-top:0}.category-trigger{padding:0 14px}}

/* Encabezado limpio del marketplace */
.header:has(.marketplace-header) { background:#fff; color:var(--tinta); box-shadow:0 2px 12px rgba(35,20,25,.09); }
.marketplace-header { grid-template-columns:190px auto minmax(320px,760px); justify-content:start; }
.marketplace-header .logo-marca { background:var(--vino); color:#fff; }
.marketplace-header .logo-texto { color:var(--vino); }
.marketplace-header .header-category-trigger { min-height:42px; border:0; border-radius:10px; background:transparent; color:var(--tinta); padding:0 13px; }
.marketplace-header .header-category-trigger:hover,.marketplace-header .header-category-trigger[aria-expanded="true"] { background:#f5e8ec; color:var(--vino); }
.marketplace-header .busqueda input { border:1.5px solid #332b2e; box-shadow:none; }
.marketplace-header .busqueda input:focus { border-color:var(--vino); box-shadow:0 0 0 3px #f3e1e6; }

@media(max-width:760px){.marketplace-header{grid-template-columns:1fr auto;padding:10px 14px}.marketplace-header .header-category-trigger{grid-column:2}.marketplace-header .busqueda{grid-column:1/-1;grid-row:2}}

/* Encabezado JEYCE: colores originales y accesos visibles */
.header:has(.marketplace-header) { background:var(--vino); color:#fff; box-shadow:0 5px 18px rgba(55,5,17,.18); }
.marketplace-header { grid-template-columns:150px auto minmax(280px,1fr) auto; max-width:1440px; gap:18px; }
.marketplace-header .logo-text-only { gap:0; }
.marketplace-header .logo-text-only .logo-texto { color:#fff; font-size:25px; line-height:1; }
.marketplace-header .logo-text-only .logo-texto small { color:#f5dfe6; opacity:1; font-size:11px; font-weight:700; letter-spacing:1.3px; margin-top:7px; text-transform:none; }
.marketplace-header .header-category-trigger { color:#fff; background:rgba(255,255,255,.08); border:0; }
.marketplace-header .header-category-trigger:hover,.marketplace-header .header-category-trigger[aria-expanded="true"] { color:#fff; background:rgba(255,255,255,.17); }
.marketplace-header .busqueda input { border:0; box-shadow:none; }
.marketplace-header .busqueda input:focus { border:0; box-shadow:0 0 0 3px rgba(255,213,122,.55); }
.marketplace-header .marketplace-menu { display:flex; position:static; flex-direction:row; align-items:center; padding:0; background:transparent; }
.marketplace-header .marketplace-menu a { color:#fff; text-align:center; }
.marketplace-header .marketplace-menu .menu-whatsapp { color:var(--vino); background:#fff; }

@media(max-width:760px){
  .marketplace-header { grid-template-columns:1fr auto; gap:10px; padding:12px 15px; }
  .marketplace-header .logo-text-only { grid-column:1; }
  .marketplace-header .header-category-trigger { grid-column:2; }
  .marketplace-header .busqueda { grid-column:1/-1; grid-row:2; }
  .marketplace-header .marketplace-menu { grid-column:1/-1; grid-row:3; justify-content:center; gap:6px; }
  .marketplace-header .marketplace-menu a { padding:8px 13px; font-size:13px; }
  .marketplace-header .logo-text-only .logo-texto { font-size:22px; }
  .marketplace-header .logo-text-only .logo-texto small { font-size:10px; letter-spacing:1.1px; margin-top:6px; }
}
