/* Cuba Marketplace Design System v0.9.51
 * Inspirado en referencias visuales proporcionadas por el propietario.
 * Solo presentación: sin fuentes externas, imágenes sintéticas ni cambios de lógica.
 * Scope: body.cmp-app para evitar contaminar APIs, visor de imágenes y documentos ajenos.
 */
body.cmp-app{
  --cmp-navy:#071c43;
  --cmp-blue:#0849bd;
  --cmp-blue-dark:#08368e;
  --cmp-red:#d9072b;
  --cmp-red-dark:#b80c2a;
  --cmp-green:#14814d;
  --cmp-green-dark:#096a3a;
  --cmp-ink:#152846;
  --cmp-muted:#526783;
  --cmp-surface:#fff;
  --cmp-surface-soft:#f4f7fe;
  --cmp-border:#d9e4f4;
  --cmp-shadow:0 14px 38px rgba(17,57,125,.085);
  --cmp-shadow-hover:0 18px 42px rgba(14,49,109,.15);
  --cmp-radius:20px;
  --cmp-radius-sm:12px;
  --cmp-focus:#ffb746;
  --cmp-space:clamp(16px,2.7vw,32px);
  color:var(--cmp-ink);
  background:
    radial-gradient(ellipse at 98% 0%,rgba(104,169,252,.16) 0%,transparent 33%),
    radial-gradient(ellipse at 1% 24%,rgba(205,226,255,.26) 0%,transparent 31%),
    linear-gradient(180deg,#f9fbff 0%,#f2f6fe 58%,#f8faff 100%);
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:16px;
  line-height:1.55;
  min-width:0;
  min-height:100svh;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body.cmp-app *,body.cmp-app *::before,body.cmp-app *::after{box-sizing:border-box}
body.cmp-app [hidden],body.cmp-app .hidden{display:none!important}
body.cmp-app :is(h1,h2,h3,h4){color:var(--cmp-navy);letter-spacing:-.028em;line-height:1.2;overflow-wrap:anywhere}
body.cmp-app h1{font-size:clamp(29px,3.6vw,48px);font-weight:820;margin:0 0 16px}
body.cmp-app h2{font-size:clamp(22px,2.1vw,30px);font-weight:760}
body.cmp-app h3{font-size:clamp(17px,1.6vw,21px)}
body.cmp-app :is(p,li){overflow-wrap:break-word}
body.cmp-app main > p:not(.eyebrow){line-height:1.62}
body.cmp-app .muted,body.cmp-app .hint,body.cmp-app .seo-intro{color:var(--cmp-muted)}
body.cmp-app :is(a,button,input,select,textarea){-webkit-tap-highlight-color:transparent}
body.cmp-app a{color:var(--cmp-blue-dark)}
body.cmp-app a:hover{color:var(--cmp-blue)}
body.cmp-app :is(a,button,input,select,textarea,[tabindex]):focus-visible{
  outline:3px solid var(--cmp-focus);
  outline-offset:3px;
}
body.cmp-app :is(button,a){touch-action:manipulation}
body.cmp-app button,body.cmp-app input,body.cmp-app select,body.cmp-app textarea{font:inherit;max-width:100%}
body.cmp-app :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea){
  min-height:48px;
  color:var(--cmp-ink);
  background:#fbfdff;
  border:1px solid #bbcde8;
  border-radius:var(--cmp-radius-sm);
  padding:11px 14px;
  line-height:1.4;
  transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease;
}
body.cmp-app :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea):focus{
  background:#fff;
  border-color:#4a7bc8;
  box-shadow:0 0 0 3px rgba(15,80,193,.11);
}
body.cmp-app :is(input,select,textarea):disabled{background:#f0f3f9;cursor:not-allowed;color:#53647c;opacity:1}
body.cmp-app textarea{min-height:115px;resize:vertical}
body.cmp-app input[type=checkbox],body.cmp-app input[type=radio]{accent-color:var(--cmp-blue);min-width:19px;min-height:19px}
body.cmp-app :is(label,legend){color:#233b64;font-weight:650;line-height:1.45}
body.cmp-app label{min-width:0}
body.cmp-app label :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea){margin-top:7px}
body.cmp-app fieldset{border:1px solid var(--cmp-border);border-radius:16px;padding:clamp(14px,2.3vw,24px);min-width:0}
body.cmp-app legend{padding:0 7px}
body.cmp-app :is(button,.cmp-button,.service-cta){
  min-height:46px;
  border-radius:var(--cmp-radius-sm);
  font-weight:720;
  transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease;
}
body.cmp-app button:not(.cmp-lightbox-control):not(.single-photo):not(.cmp-close):not(.cmp-prev):not(.cmp-next):hover:enabled{
  box-shadow:0 5px 14px rgba(11,59,137,.14);
}
body.cmp-app button:disabled{cursor:not-allowed;opacity:.63}
body.cmp-app .cmp-secondary-link,body.cmp-app .filter-reset,body.cmp-app .cmp-reset,body.cmp-app #clear,body.cmp-app #cancel-edit{
  background:#eef4ff!important;color:#154486!important;border:1px solid #cbdaf2!important;
}
body.cmp-app :is(.cmp-secondary-link,.filter-reset,.cmp-reset,#clear):hover{background:#e2ecfc!important}
body.cmp-app :is(.account-card,.card,.provider,.cmp-provider,.cmp-directory-group,.cmp-home-card,.cmp-ad-card,.ad,.admin-card,.seo-section,.single-card,.single-related){
  border:1px solid var(--cmp-border);
  border-radius:var(--cmp-radius);
  background:var(--cmp-surface);
  box-shadow:var(--cmp-shadow);
}
body.cmp-app :is(.provider,.cmp-provider,.cmp-home-card,.cmp-ad-card,.cmp-directory-group,.cmp-home-card-link){
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
body.cmp-app :is(.provider,.cmp-provider,.cmp-home-card,.cmp-ad-card,.cmp-directory-group):hover{
  border-color:#b3cbed;
  box-shadow:var(--cmp-shadow-hover);
}
body.cmp-app .eyebrow{
  color:var(--cmp-blue-dark);
  font-size:12px;
  letter-spacing:.18em;
  font-weight:850;
}
body.cmp-app .shell{min-width:0}
body.cmp-app :is(.cmp-page-navigation,.cmp-context-links,.cmp-page-crumb){min-width:0}
body.cmp-app .cmp-page-navigation{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  font-size:14px;
  margin:0 0 clamp(16px,2vw,25px)!important;
}
body.cmp-app .cmp-page-navigation .cmp-nav-link{
  min-height:44px;
  padding:10px 15px;
  border:1px solid var(--cmp-border);
  border-radius:13px;
  color:var(--cmp-blue-dark);
  background:#fff;
  box-shadow:0 4px 12px rgba(20,60,125,.045);
  font-weight:700;
  font-size:14px;
}
body.cmp-app .cmp-page-navigation .cmp-nav-link:hover{background:#eff5ff;border-color:#8db5f1}
body.cmp-app .cmp-context-links a{
  color:var(--cmp-blue-dark);
  font-weight:700;
  min-height:38px;
  display:inline-flex;
  align-items:center;
  text-underline-offset:4px;
}
body.cmp-app .cmp-page-crumb{font-size:14px;color:var(--cmp-muted)}
body.cmp-app .cmp-page-crumb a{color:var(--cmp-blue-dark)}
body.cmp-app .cmp-inner-header{
  position:relative;
  z-index:3;
  background:rgba(255,255,255,.96);
  border-bottom:1px solid var(--cmp-border);
  box-shadow:0 2px 14px rgba(13,39,92,.045);
}
body.cmp-app .cmp-inner-header__shell{
  width:min(100% - clamp(30px,5vw,72px),1240px);
  min-width:0;
  margin-inline:auto;
  min-height:70px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding-block:9px;
}
body.cmp-app .cmp-inner-brand{display:inline-flex;align-items:center;gap:12px;min-width:0}
body.cmp-app .cmp-inner-brand img{width:80px;height:57px;object-fit:contain;display:block}
body.cmp-app .cmp-inner-header__page{
  color:var(--cmp-muted);
  font-size:13px;
  font-weight:700;
  text-align:right;
  max-width:55%;
  overflow-wrap:anywhere;
}
body.cmp-app header:not(.cmp-inner-header){
  background:rgba(255,255,255,.96);
  border-bottom:1px solid var(--cmp-border);
  box-shadow:0 3px 16px rgba(20,60,115,.045);
}
body.cmp-app header:not(.cmp-inner-header) .brand-logo{object-fit:contain}
body.cmp-app header:not(.cmp-inner-header) .top nav a:not(.publish){
  border:1px solid var(--cmp-border);border-radius:13px;color:var(--cmp-blue-dark);
}
body.cmp-app header:not(.cmp-inner-header) .top nav a.publish{
  background:var(--cmp-red);color:white;
  border:1px solid var(--cmp-red);border-radius:13px
}
body.cmp-app footer{background:rgba(255,255,255,.98);border-color:var(--cmp-border)}
body.cmp-app :is(.notice,[role=status],#message,#status,#session){overflow-wrap:anywhere}
body.cmp-app .cmp-status-approved{background:#dff6e9;color:#126038}
body.cmp-app .cmp-status-pending{background:#fff0d2;color:#815304}
body.cmp-app .cmp-status-rejected,body.cmp-app .cmp-status-suspended{background:#ffe8eb;color:#92263a}
body.cmp-app img{max-width:100%}
body.cmp-app :is(.cmp-home-card-photo img,.photo-grid img,.cmp-ad-card img,.provider img,.single-thumbs img){display:block}
body.cmp-app .cmp-lightbox,body.cmp-app .cmp-modal{
  /* El visor mantiene sus reglas específicas; no aplicar gradientes ni tarjetas. */
  color:#fff;
}
/* Mantener accesibles los enlaces de navegación en cabeceras interiores.
 * styles.css antiguo ocultaba nav a:not(.publish) bajo 580px. */
@media(max-width:580px){
  body.cmp-app header:not(.cmp-inner-header) .top nav a:not(.publish){
    display:inline-flex!important;
    align-items:center;justify-content:center;
    min-height:44px;white-space:normal;
  }
}
@media(max-width:700px){
  body.cmp-app{font-size:15.5px}
  body.cmp-app .cmp-inner-header__shell{min-height:62px}
  body.cmp-app .cmp-inner-brand img{width:68px;height:48px}
  body.cmp-app .cmp-inner-header__page{font-size:12px}
  body.cmp-app :is(h1,h2,h3){line-height:1.23}
  body.cmp-app :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea){font-size:16px}
  body.cmp-app fieldset{padding:14px}
}
@media(prefers-reduced-motion:reduce){
  body.cmp-app *,body.cmp-app *::before,body.cmp-app *::after{
    scroll-behavior:auto!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
}
