/* Identidad editorial pública; acciones reutilizadas de componentes.css. */
.web-publica { --web-tinta:#27251f; --web-crema:#f7f5ef; position:relative; background:var(--web-crema); color:var(--web-tinta); font-family:Arial,sans-serif; overflow:clip; }
.web-publica a { color:inherit; text-decoration:none; }
.web-publica a:focus-visible,.web-publica button:focus-visible { outline:3px solid var(--app-color-mostaza,#d4a017); outline-offset:5px; }
.web-header { position:absolute; z-index:3; top:0; left:0; width:100%; padding:24px 5%; display:flex; align-items:center; justify-content:space-between; gap:24px; color:#fff; border-bottom:1px solid #ffffff30; }
.web-marca { display:block; flex-shrink:0; font:28px/1.1 Georgia,serif; letter-spacing:-.04em; }
.web-header nav { display:flex; align-items:center; gap:32px; font-size:14px; }
.web-header nav>a:not(.btn) { padding:10px 0; border-bottom:1px solid transparent; }
.web-header nav>a:not(.btn):hover { border-color:currentColor; }
.web-header .web-login { margin-left:24px; white-space:nowrap; padding:13px 20px; }
.web-publica .btn { border-radius:4px; }
.web-seccion { padding:110px max(6%,calc((100% - 1240px)/2)); }
.web-hero { position:relative; isolation:isolate; display:grid; place-items:center; min-height:800px; min-height:min(960px,100svh); padding-top:200px; padding-bottom:120px; background:#27251f; color:#fff; }
.web-hero-texto { position:relative; z-index:1; width:min(100%,850px); text-align:center; }
.web-etiqueta { display:block; font-size:11px; font-weight:600; letter-spacing:.24em; margin-bottom:28px; }
.web-hero .web-etiqueta { color:#edcf91; }
.web-titulo { font:500 clamp(44px,5.5vw,82px)/1.08 Georgia,serif; letter-spacing:-.045em; text-wrap:balance; }
.web-titulo p { margin:0; }
.web-introduccion { max-width:520px; margin:28px auto 34px; font-size:17px; line-height:1.7; color:#ffffffe0; }
.web-introduccion p:last-child { margin-bottom:0; }
.web-campo { position:relative; overflow-wrap:anywhere; }
.web-boton-contenedor { display:inline-block; }
.web-boton { padding:17px 28px; font-size:14px; }
.web-boton span { margin-left:30px; }
.web-imagen { position:relative; overflow:hidden; margin:0; background:#e9e4d8; }
.web-imagen img { width:100%; height:100%; object-fit:cover; display:block; }
.web-imagen-principal { position:absolute; z-index:-2; inset:0; }
.web-hero::after { content:''; position:absolute; z-index:-1; inset:0; background:linear-gradient(180deg,#18171170,#18171135 35%,#181711b8); pointer-events:none; }
.web-imagen-nosotros { aspect-ratio:1; }
.web-imagen-identidad img { object-fit:contain; transform:none!important; }
.web-hero-identidad { grid-template-columns:1.2fr 1fr; gap:9%; background:radial-gradient(ellipse at 90% 80%,#625038,transparent 60%),#27251f; }
.web-hero-identidad .web-hero-texto { text-align:left; }
.web-hero-identidad .web-introduccion { margin-left:0; }
.web-hero-identidad .web-imagen-principal { position:relative; z-index:0; inset:auto; width:100%; aspect-ratio:4/3; padding:25px; background:#fff; box-shadow:24px 24px 0 #ffffff08; }
.web-hero-identidad::after { display:none; }
.web-numero { position:absolute; bottom:34px; left:0; width:100%; text-align:center; font-size:10px; letter-spacing:.28em; color:#ffffff90; }
.web-nosotros { display:grid; grid-template-columns:1fr 1fr; gap:10%; align-items:center; }
.web-nosotros .web-imagen { box-shadow:-20px 20px 0 #eae5d9; }
.web-publica h2 { font:500 clamp(38px,4vw,60px)/1.1 Georgia,serif; letter-spacing:-.035em; margin:0 0 32px; }
.web-relato { font-size:18px; line-height:1.9; color:#5a584f; }
.web-relato a,.web-introduccion a,.web-titulo a { border-bottom:1px solid currentColor; }
.web-contacto { background:#eeeae0; }
.web-sedes { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr)); gap:24px; }
.web-sede { padding:32px; border-top:2px solid var(--app-color-mostaza,#d4a017); background:#fdfbf5; }
.web-sede h3 { font:28px/1.2 Georgia,serif; margin-bottom:24px; }
.web-sede p { color:#666258; line-height:1.7; }
.web-sociales { display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
.web-sociales .btn { font-size:13px; }
.web-footer { background:#27251f; color:#e9e5da; display:flex; align-items:center; justify-content:space-between; gap:36px; padding:60px 6%; font-size:12px; }
.web-footer-marca { font:36px Georgia,serif; }
.web-footer p { margin:12px 0 0; opacity:.65; }
.web-footer-enlaces { display:flex; gap:24px; }
.web-volver { position:fixed; z-index:5; right:24px; bottom:24px; width:48px; height:48px; border-radius:50%!important; font-size:22px; }
.web-volver[hidden] { display:none; }
.web-multimedia { display:grid; place-content:center; height:100%; min-height:220px; padding:24px; text-align:center; }
.web-editar { position: absolute; top: 8px; right: 8px; z-index: 2; width: 40px; height: 40px; padding: 8px; box-shadow: 0 3px 10px #0002; }
.web-editable .web-campo { padding: 16px 50px 16px 16px; border: 1px dashed #b7860d80; border-radius: 8px; }
.web-editor { padding: 120px 16px 80px; }
.web-editor-barra { position: fixed; z-index: 1040; top: 16px; left: 16px; right: 16px; padding: 16px 20px; display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; border-radius: 18px; box-shadow: 0 8px 28px #251b0412; }
.web-editor-cabecera { display:flex; align-items:center; justify-content:space-between; gap:16px; flex:1; }
.web-editor-identidad { min-width:0; }
.web-editor-titulo { display:flex; align-items:center; flex-wrap:wrap; gap:8px 12px; }
.web-editor-titulo strong { font-size:1.05rem; }
#webEstado { font-size:.72rem; padding:3px 8px; border-radius:20px; background:var(--app-action-tertiary-bg); color:var(--bs-body-color); }
#webHora { display:block; margin-top:4px; font-size:.75rem; color:var(--bs-secondary-color); }
.web-editor-acciones { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.web-editor-barra .btn, .web-editor-barra .form-select { min-height:38px; font-size:.82rem; white-space:nowrap; }
.web-editor-barra .btn { display:inline-flex; align-items:center; justify-content:center; gap:6px; }
.web-formato { width:100px; }
.web-publicacion-estado { flex-basis:100%; margin:0; font-size:.8rem; color:var(--bs-secondary-color); }
.web-publicacion-estado[hidden] { display:none; }
.web-editor-lienzo { overflow-x: auto; padding: 12px 0; }
.web-marco { display: block; width: 100%; height: calc(100dvh - 230px); min-height: 500px; margin: auto; border: 1px solid #d4b55a; border-radius: 8px; background: #f6f0e3; }
.web-salir-previa { position: fixed; z-index: 1050; top: 12px; right: 18px; }
body.web-vista-previa .web-editor-barra, body.web-vista-previa .app-mobile-nav, body.web-vista-previa .app-navbar, body.web-vista-previa .app-version-footer, body.web-vista-previa #btnSincronizacionGlobal, body.web-vista-previa #webError { display: none !important; }
body.web-vista-previa .app-sidebar, body.web-vista-previa .app-mobile-sede, body.web-vista-previa .app-nav-backdrop { display: none !important; }
body.web-vista-previa .web-editor { padding: 0; position: fixed; inset: 0; z-index: 1045; background: #f6f0e3; }
body.web-vista-previa .web-editor-lienzo { padding: 0; height: 100%; }
body.web-vista-previa .web-marco { height: 100dvh !important; border: 0; border-radius: 0; }
.web-galeria { display: grid; grid-template-columns: repeat(auto-fill, minmax(145px, 1fr)); gap: 12px; }
.web-miniatura { position: relative; border: 1px solid #d4b55a; border-radius: 8px; overflow: hidden; padding: 8px; }
.web-miniatura img { width: 100%; aspect-ratio: 4/3; object-fit: contain; }
.web-miniatura .app-card__actions { position: absolute; top: 8px; right: 8px; }
.web-recorte { overflow: hidden; width: min(100%, 500px); margin: 12px auto; background: #e5d7ba; }
.web-recorte { touch-action: none; }
.web-recorte img { width: 100%; height: 100%; object-fit: cover; }
.web-texto-editor { min-height: 180px; padding: 18px; border: 1px solid #d4b55a; border-radius: 6px; overflow-wrap: anywhere; }
.web-texto-herramientas { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.web-texto-herramientas select { width: auto; max-width: 140px; }
.web-sede-orden { cursor: grab; }

@media (max-width:850px) {
  .web-header { padding:16px 5%; gap:12px; flex-wrap:wrap; }
  .web-header nav { flex:1; gap:14px; justify-content:flex-end; flex-wrap:wrap; font-size:12px; }
  .web-header .web-login { margin-left:0; padding:10px 12px; }
  .web-seccion { padding:72px 7%; }
  .web-hero { min-height:760px; padding-top:205px; padding-bottom:95px; }
  .web-hero-identidad { grid-template-columns:1fr; gap:42px; }
  .web-hero-identidad .web-hero-texto { text-align:center; }
  .web-hero-identidad .web-introduccion { margin-left:auto; }
  .web-hero-identidad .web-imagen-principal { width:min(100%,350px); padding:18px; box-shadow:12px 12px 0 #ffffff08; }
  .web-nosotros { grid-template-columns:1fr; gap:52px; }
  .web-nosotros .web-imagen { order:2; max-width:460px; width:100%; margin:auto; }
  .web-footer { align-items:flex-start; flex-direction:column; padding:48px 7%; gap:28px; }
  .web-footer-enlaces { flex-wrap:wrap; gap:20px; }
  .web-editor { padding-top:175px; }
  .web-editor-barra { top:12px; left:12px; right:12px; padding:12px; gap:12px; }
  .web-editor-cabecera { flex-basis:100%; }
  .web-editor-acciones { width:100%; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; padding-top:12px; border-top:1px solid var(--bs-border-color); }
  .web-editor-acciones .form-select { width:100%; }
  #webBiblioteca { grid-column:span 2; }
  .web-editor-barra .btn { padding-inline:8px; }
  .web-marco { height:calc(100dvh - 290px); }
}
@media (max-width:450px) {
  .web-header nav { gap:10px 16px; }
  .web-titulo { font-size:44px; }
}
@media (prefers-reduced-motion:reduce) { .web-publica { scroll-behavior:auto; } }

.web-imagen-principal > .web-editar { top:150px; right:24px; }
.web-hero-identidad .web-imagen-principal > .web-editar { top:8px; right:8px; }

@media (max-width:450px) {
  .web-header { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; padding:14px 5%; }
  .web-marca { grid-column:1; grid-row:1; width:max-content; font-size:23px; }
  .web-header nav { display:contents; }
  .web-header nav>a:not(.web-login) { grid-row:2; text-align:center; font-size:12px; white-space:nowrap; }
  .web-header .web-login { grid-column:2 / -1; grid-row:1; justify-self:end; font-size:13px; }
}

.web-marco { scroll-margin-top:var(--web-barra-inferior,260px); }
@media (min-width:851px) and (max-width:1199.98px) {
  .web-editor-barra { top:12px; }
}
