:root {
  --coci-bg: #eef2f5;
  --coci-surface: #ffffff;
  --coci-surface-soft: #f6f8fa;
  --coci-border: #d9e1e8;
  --coci-border-strong: #c5d0da;
  --coci-ink: #233746;
  --coci-ink-strong: #112b3d;
  --coci-muted: #5f7080;
  --coci-accent: #1b5978;
  --coci-accent-dark: #143d54;
  --coci-radius-sm: 8px;
  --coci-radius-md: 12px;
  --coci-radius-lg: 12px;
  --coci-shadow-soft: 0 4px 14px rgba(16, 44, 64, 0.05);
  --coci-text-meta: 0.875rem;
  --coci-text-sm: 0.94rem;
  --coci-text-base: 1rem;
  --coci-text-h3: 1.12rem;
  --coci-text-h2: clamp(1.42rem, 1.2rem + 0.85vw, 1.78rem);
  --coci-text-h1: clamp(1.92rem, 1.48rem + 1.35vw, 2.32rem);
  --coci-space-1: 8px;
  --coci-space-2: 12px;
  --coci-space-3: 16px;
  --coci-space-4: 20px;
  --coci-space-5: 24px;
  --coci-space-6: 32px;
}

html {
  scroll-behavior: smooth;
}

body.coci-site {
  margin: 0;
  padding-top: 0 !important;
  background: var(--coci-bg);
  color: var(--coci-ink);
  font-family: "Segoe UI", Tahoma, Arial, sans-serif;
  font-size: var(--coci-text-base);
  line-height: 1.65;
}

body.coci-site * {
  box-sizing: border-box;
}

body.coci-site img {
  max-width: 100%;
  height: auto;
}

body.coci-site a {
  color: var(--coci-accent);
}

body.coci-site a:hover {
  color: var(--coci-accent-dark);
}

body.coci-site main.container,
body.coci-site main.contenido {
  max-width: 1220px;
  margin: 0 auto 48px;
  padding: 28px 16px 44px;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
}

.site-shell {
  max-width: 1220px;
  margin: 0 auto;
  padding-left: 16px;
  padding-right: 16px;
}

body.coci-site h1,
body.coci-site h2,
body.coci-site h3,
body.coci-site h4 {
  margin-top: 0;
  color: var(--coci-ink-strong);
  line-height: 1.22;
}

body.coci-site h1 {
  margin-bottom: var(--coci-space-2);
  font-size: var(--coci-text-h1);
}

body.coci-site h2 {
  margin-bottom: var(--coci-space-2);
  font-size: var(--coci-text-h2);
}

body.coci-site h3 {
  margin-bottom: 10px;
  font-size: var(--coci-text-h3);
}

body.coci-site p,
body.coci-site li,
body.coci-site dd,
body.coci-site dt {
  color: var(--coci-ink);
  font-size: var(--coci-text-base);
}

body.coci-site .page-hero,
body.coci-site .section,
body.coci-site .card,
body.coci-site .ficha-main {
  background: var(--coci-surface);
  border: 1px solid var(--coci-border);
  border-radius: var(--coci-radius-md);
  box-shadow: none;
}

body.coci-site .page-hero {
  padding: var(--coci-space-5);
  margin: 0 0 var(--coci-space-3);
  border-left: 4px solid var(--coci-accent);
  background: var(--coci-surface);
}

body.coci-site .page-hero .intro,
body.coci-site .industrial-intro,
body.coci-site .industrial-section-intro {
  max-width: 880px;
}

body.coci-site .section,
body.coci-site .card,
body.coci-site .ficha-main {
  padding: 22px;
  margin: 0 0 var(--coci-space-3);
}

body.coci-site .breadcrumb,
body.coci-site .industrial-breadcrumb {
  margin: 0 0 10px;
  color: var(--coci-muted);
  font-size: var(--coci-text-meta);
}

body.coci-site .breadcrumb a,
body.coci-site .industrial-breadcrumb a {
  color: var(--coci-accent);
  text-decoration: none;
}

body.coci-site .breadcrumb a:hover,
body.coci-site .industrial-breadcrumb a:hover {
  text-decoration: underline;
}

body.coci-site .list,
body.coci-site .industrial-list {
  margin: 0;
  padding-left: 20px;
}

body.coci-site .list li,
body.coci-site .industrial-list li {
  margin-bottom: 10px;
}

body.coci-site .cta-row,
body.coci-site .ctas,
body.coci-site .contact,
body.coci-site .row-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--coci-space-2);
  align-items: center;
}

body.coci-site .btn,
body.coci-site .boton-principal,
body.coci-site a.btn,
body.coci-site button.btn {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 16px;
  border-radius: var(--coci-radius-sm);
  border: 1px solid var(--coci-accent);
  background: var(--coci-accent);
  color: #ffffff;
  text-decoration: none;
  font-size: var(--coci-text-sm);
  font-weight: 700;
  cursor: pointer;
}

body.coci-site .btn:hover,
body.coci-site .boton-principal:hover,
body.coci-site a.btn:hover,
body.coci-site button.btn:hover {
  background: var(--coci-accent-dark);
  border-color: var(--coci-accent-dark);
  color: #ffffff;
  text-decoration: none;
}

body.coci-site .btn-outline,
body.coci-site .btn.sec,
body.coci-site a.btn-outline,
body.coci-site a.btn.sec {
  background: transparent;
  color: var(--coci-accent);
  border-color: var(--coci-accent);
}

body.coci-site .btn-outline:hover,
body.coci-site .btn.sec:hover,
body.coci-site a.btn-outline:hover,
body.coci-site a.btn.sec:hover {
  background: var(--coci-surface-soft);
  color: var(--coci-accent-dark);
  border-color: var(--coci-accent-dark);
}

body.coci-site main.container input[type="text"],
body.coci-site main.container input[type="search"],
body.coci-site main.container input[type="email"],
body.coci-site main.container input[type="tel"],
body.coci-site main.container input[type="number"],
body.coci-site main.container select,
body.coci-site main.container textarea {
  width: 100%;
  min-height: 42px;
  padding: 10px 14px;
  border: 1px solid var(--coci-border);
  border-radius: var(--coci-radius-sm);
  background: #ffffff;
  color: var(--coci-ink);
  font-size: var(--coci-text-base);
}

body.coci-site main.container textarea {
  min-height: 120px;
  resize: vertical;
}

body.coci-site main.container input[type="text"]:focus,
body.coci-site main.container input[type="search"]:focus,
body.coci-site main.container input[type="email"]:focus,
body.coci-site main.container input[type="tel"]:focus,
body.coci-site main.container input[type="number"]:focus,
body.coci-site main.container select:focus,
body.coci-site main.container textarea:focus {
  outline: none;
  border-color: var(--coci-accent);
  box-shadow: none;
}

body.coci-site input[type="submit"],
body.coci-site button[type="submit"] {
  min-height: 42px;
  padding: 0 16px;
  border-radius: var(--coci-radius-sm);
  border: 1px solid var(--coci-accent);
  background: var(--coci-accent);
  color: #ffffff;
  font-size: var(--coci-text-sm);
  font-weight: 700;
  cursor: pointer;
}

body.coci-site input[type="submit"]:hover,
body.coci-site button[type="submit"]:hover {
  background: var(--coci-accent-dark);
  border-color: var(--coci-accent-dark);
}

body.coci-site .tabla-contenedor {
  border: 1px solid var(--coci-border);
  border-radius: var(--coci-radius-md);
  background: var(--coci-surface);
  box-shadow: none;
}

body.coci-site .tabla-productos {
  background: transparent;
}

body.coci-site .tabla-productos th {
  background: #f2f5f7;
  color: var(--coci-ink-strong);
}

body.coci-site .tabla-productos tbody tr:nth-child(even) td {
  background: #fafcfd;
}

body.coci-site .galeria {
  display: flex;
  flex-wrap: wrap;
  gap: var(--coci-space-2);
  margin-top: 14px;
}

body.coci-site .galeria-item {
  display: block;
}

body.coci-site .galeria-item img,
body.coci-site .galeria img {
  display: block;
  border-radius: var(--coci-radius-md);
  border: 1px solid var(--coci-border);
  box-shadow: none;
}

body.coci-site .galeria-item img {
  width: 160px;
}

body.coci-site .lightbox {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1200;
  padding: var(--coci-space-5);
  background: rgba(5, 16, 26, 0.92);
  align-items: center;
  justify-content: center;
  flex-direction: column;
}

body.coci-site .lightbox:target {
  display: flex;
}

body.coci-site .lightbox img {
  max-width: 90vw;
  max-height: 80vh;
  border-radius: var(--coci-radius-md);
  border: 1px solid rgba(255, 255, 255, 0.14);
}

body.coci-site .lightbox-controls {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-top: var(--coci-space-3);
}

body.coci-site .lightbox .close,
body.coci-site .lightbox .nav {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 14px;
  border-radius: var(--coci-radius-sm);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #ffffff;
  text-decoration: none;
}

body.coci-site .lightbox .close:hover,
body.coci-site .lightbox .nav:hover {
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
}

body.coci-site .address {
  font-style: normal;
  color: var(--coci-ink);
}

@media (max-width: 720px) {
  body.coci-site main.container,
  body.coci-site main.contenido {
    padding-top: 24px;
    padding-left: 12px;
    padding-right: 12px;
  }

  body.coci-site .page-hero,
  body.coci-site .section,
  body.coci-site .card,
  body.coci-site .ficha-main {
    padding: 18px;
  }
}
