:root {
  --bg: #0d1726;
  --ink: #17202a;
  --muted: #667085;
  --line: #d8d2c4;
  --panel: #fffdf8;
  --panel-strong: #101828;
  --navy: #111c2e;
  --navy-soft: #1b2a3d;
  --accent: #ba241b;
  --accent-dark: #8f1c14;
  --gold: #b8892d;
  --ok: #207a4c;
  --warn: #a15c07;
  --bad: #b42318;
  --text-on-dark: #f4f7fb;
  --muted-on-dark: #c4cfdf;
  --radius: 8px;
  font-family: "DM Sans", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

html {
  scroll-padding-top: 108px;
}

html,
body {
  overflow-x: hidden;
}

:target {
  scroll-margin-top: 108px;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  letter-spacing: 0;
}

a {
  color: inherit;
}

img {
  max-width: 100%;
}

button,
input,
select,
textarea {
  font: inherit;
}

:focus-visible {
  outline: 3px solid #f0b45a;
  outline-offset: 3px;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-height: 74px;
  padding: 0 32px;
  background: rgba(17, 28, 46, 0.98);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(10px);
}

.brand {
  display: flex;
  flex-direction: column;
  gap: 2px;
  color: #fff;
  text-decoration: none;
  font-weight: 800;
  line-height: 1;
}

.brand span {
  color: #f0b45a;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
}

.nav {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.nav a,
.nav button,
.button {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 14px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.94);
  color: var(--ink);
  text-decoration: none;
  cursor: pointer;
  white-space: nowrap;
}

.button.primary,
.nav a.primary,
.nav button.primary {
  border-color: var(--accent);
  background: var(--accent);
  color: #fff;
}

.button.danger {
  border-color: var(--bad);
  background: var(--bad);
  color: #fff;
}

.button.success {
  border-color: var(--ok);
  background: var(--ok);
  color: #fff;
}

.button:disabled,
button:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.login-shell {
  min-height: calc(100vh - 100px);
  display: grid;
  grid-template-columns: minmax(360px, 520px) 1fr;
  background: var(--navy);
}

.login-form-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px;
  background: #fbfaf6;
}

.login-panel {
  width: min(100%, 420px);
}

.login-panel h1 {
  margin: 0 0 10px;
  font-size: clamp(32px, 6vw, 54px);
  line-height: 0.95;
  color: #121b24;
}

.login-panel p {
  margin: 0 0 28px;
  color: var(--muted);
}

.login-media {
  min-height: calc(100vh - 100px);
  background-image: url("../assets/Acceso_restringido.jpeg");
  background-size: cover;
  background-position: center;
}

.login-eyebrow {
  margin: 0 0 8px;
  color: var(--accent);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.field {
  display: grid;
  gap: 7px;
  margin-bottom: 16px;
}

.field label {
  color: #344054;
  font-size: 13px;
  font-weight: 700;
}

.field input,
.field select,
.field textarea {
  width: 100%;
  min-height: 44px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 10px 12px;
  background: #fff;
  color: var(--ink);
}

.edit-form,
.document-upload-form {
  display: grid;
  gap: 18px;
}

.edit-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 16px;
}

.upload-grid {
  align-items: end;
}

.profile-edit-section .section-title p {
  max-width: 760px;
}

.portfolio-editor-set {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.portfolio-editor-set + .portfolio-editor-set {
  margin-top: 18px;
}

.portfolio-inline-form {
  display: grid;
  gap: 18px;
  grid-column: 1 / -1;
}

.portfolio-editor-set legend {
  padding: 0 8px;
  background: var(--bg);
  color: var(--text-on-dark);
  font-size: 1.1rem;
  font-weight: 800;
}

.portfolio-editor-group {
  overflow: hidden;
  border: 1px solid #d8d2c4;
  border-radius: 10px;
  background: #fffdf8;
}

.portfolio-editor-group summary {
  padding: 13px 16px;
  cursor: pointer;
  color: var(--ink);
  font-weight: 800;
}

.portfolio-editor-group .edit-grid {
  padding: 4px 16px 16px;
}

.field textarea {
  min-height: 140px;
  resize: vertical;
}

.page {
  width: min(1180px, calc(100% - 40px));
  margin: 32px auto 64px;
}

.page.narrow {
  width: min(880px, calc(100% - 40px));
}

.section {
  margin-top: 28px;
}

.section-title {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}

.section-title h1,
.section-title h2 {
  margin: 0;
  color: #fff;
}

.section-title p {
  margin: 6px 0 0;
  color: var(--muted-on-dark);
}

.panel .section-title h1,
.panel .section-title h2 {
  color: var(--ink);
}

.panel .section-title p {
  color: var(--muted);
}

.panel {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 18px;
}

.grid {
  display: grid;
  gap: 16px;
}

.grid.stats {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.stat {
  min-height: 96px;
  display: grid;
  align-content: center;
  gap: 5px;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 16px;
}

.stat strong {
  font-size: 28px;
}

.stat span {
  color: var(--muted);
  font-size: 13px;
}

.toolbar {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.toolbar input,
.toolbar select {
  min-height: 38px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 8px 10px;
  background: #fff;
  color: var(--ink);
}

.pagination-controls {
  align-items: center;
}

.pagination-summary {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 8px 12px;
  border: 1px solid #40516a;
  border-radius: var(--radius);
  background: #1a2a40;
  color: var(--text-on-dark);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.25;
}

.panel-switcher { display:flex; justify-content:flex-end; gap:10px; margin:0 0 24px; }
.admin-create-form { margin-top:16px; }
.admin-create-form h3 { margin:0 0 14px; }
.permission-set { display:flex; gap:14px; flex-wrap:wrap; margin:0; padding:12px; border:1px solid var(--line); border-radius:var(--radius); }
.permission-set label { color:var(--ink); font-weight:700; }
.admin-post-actions { display:flex; gap:8px; flex-wrap:wrap; }
.admin-permission-form { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.admin-permission-form label { display:inline-flex; align-items:center; gap:5px; padding:7px 9px; color:var(--ink); background:var(--paper); border:1px solid var(--line); border-radius:8px; font-size:.84rem; font-weight:700; }
.admin-permission-form input { accent-color:var(--accent); }
.post-editor { margin-top:22px; border-color:#526e8c; box-shadow:0 16px 40px rgba(0,0,0,.16); }
.post-editor__heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:20px; }
.post-editor__heading h2 { margin:0; color:var(--ink); }
.post-editor__heading p:not(.eyebrow) { margin:5px 0 0; color:var(--muted); }
.rich-toolbar { display:flex; align-items:center; gap:7px; flex-wrap:wrap; padding:9px; border:1px solid var(--line); border-bottom:0; border-radius:var(--radius) var(--radius) 0 0; background:#eee9df; }
.rich-toolbar .button { min-width:42px; min-height:34px; padding:6px 10px; }
.rich-editor { min-height:260px; padding:18px; border:1px solid var(--line); border-radius:0 0 var(--radius) var(--radius); background:#fff; color:#17202a; line-height:1.7; outline:none; }
.rich-editor:focus { border-color:#526e8c; box-shadow:0 0 0 3px rgba(82,110,140,.18); }
.rich-editor > :first-child { margin-top:0; }
.post-preview { margin:20px 0; padding:20px; border:1px dashed #9aa7b8; border-radius:var(--radius); background:#f7f4ec; color:#17202a; line-height:1.7; }
.post-preview > :last-child { margin-bottom:0; }
.post-preview p:not(.eyebrow), .post-preview li, .post-preview blockquote { color:#263548; }
.post-preview h2, .post-preview h3 { color:#17202a; }
.post-preview a { color:#9e211a; font-weight:700; }

.table-wrap {
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--panel);
}

table {
  width: 100%;
  border-collapse: collapse;
  min-width: 780px;
}

th,
td {
  text-align: left;
  padding: 12px;
  border-bottom: 1px solid var(--line);
  vertical-align: middle;
}

th {
  background: #efe9dc;
  color: #3d3325;
  font-size: 12px;
  text-transform: uppercase;
}

tr:last-child td {
  border-bottom: 0;
}

.badge {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 0 9px;
  border-radius: var(--radius);
  font-size: 12px;
  font-weight: 700;
  background: #e7e1d3;
  color: #3d3325;
}

.badge.approved {
  background: #d8f0e2;
  color: var(--ok);
}

.badge.rejected {
  background: #fde0de;
  color: var(--bad);
}

.badge.awaiting_admin_review {
  background: #fff0cf;
  color: var(--warn);
}

.profile-head {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 18px;
  align-items: center;
}

.profile-head h1 {
  margin: 0 0 8px;
}

.profile-head p {
  margin: 0;
  color: var(--muted);
}

.doc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
  gap: 16px;
}

.doc-card {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
}

.doc-card.is-unavailable {
  opacity: 0.55;
}

.doc-details {
  min-width: 0;
}

.doc-details h3 {
  margin: 0;
  color: var(--ink);
  font-size: 17px;
}

.doc-details p {
  margin: 6px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.doc-open,
.doc-pending {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 40px;
  padding: 0 13px;
  border-radius: 9px;
  font-size: 13px;
  font-weight: 800;
  white-space: nowrap;
}

.doc-open {
  border: 1px solid var(--accent);
  background: var(--accent);
  color: #fff;
  text-decoration: none;
  transition: background-color 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.doc-open:hover,
.doc-open:focus-visible {
  border-color: var(--accent-dark);
  background: var(--accent-dark);
  color: #fff;
  transform: translateY(-1px);
}

.doc-pending {
  background: #eee9df;
  color: #645d50;
}

.admin-list {
  display: grid;
  gap: 10px;
}

.admin-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 15px 16px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--panel);
}

.admin-card strong,
.admin-card small {
  display: block;
}

.admin-card small {
  margin-top: 4px;
  color: var(--muted);
}

@media (max-width: 560px) {
  .edit-grid {
    grid-template-columns: 1fr;
  }

  .admin-card {
    align-items: stretch;
    flex-direction: column;
  }

  .post-editor__heading {
    align-items:stretch;
    flex-direction:column;
  }
}

/* Header navigation system: shared base, primary and exit actions. */
.site-header .nav,
.public-header .public-nav {
  gap: 8px;
}

.site-header .nav a,
.site-header .nav button,
.public-header .public-nav a {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 15px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 9px;
  background: transparent;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
  white-space: nowrap;
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.site-header .nav a:hover,
.site-header .nav button:hover,
.public-header .public-nav a:hover {
  border-color: rgba(255, 255, 255, 0.38);
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}

.site-header .nav a:focus-visible,
.site-header .nav button:focus-visible,
.public-header .public-nav a:focus-visible {
  outline: 3px solid rgba(240, 180, 90, 0.75);
  outline-offset: 2px;
}

.site-header .nav .primary,
.public-header .public-nav .nav-cta {
  border-color: var(--accent);
  background: var(--accent);
  color: #fff;
}

.site-header .nav a.active {
  border-color: rgba(240, 180, 90, 0.56);
  background: rgba(240, 180, 90, 0.13);
  color: #ffe1aa;
}

.site-header .nav a.active:hover {
  border-color: #f0b45a;
  background: rgba(240, 180, 90, 0.2);
  color: #fff3dc;
}

.site-header .nav .primary:hover,
.public-header .public-nav .nav-cta:hover {
  border-color: var(--accent-dark);
  background: var(--accent-dark);
  color: #fff;
  transform: translateY(-1px);
}

.site-header .nav [data-logout] {
  border-color: rgba(240, 180, 90, 0.48);
  color: #ffe1aa;
}

.site-header .nav [data-logout]:hover {
  border-color: #f0b45a;
  background: rgba(240, 180, 90, 0.14);
  color: #fff3dc;
}

.post-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.post-card {
  display: grid;
  gap: 12px;
  align-content: start;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 14px;
  background: var(--panel);
  text-decoration: none;
}

.post-card img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: var(--radius);
  background: #e9e2d4;
}

.post-card h2 {
  margin: 0;
  font-size: 18px;
}

.post-card p {
  margin: 0;
  color: var(--muted);
}

.post-content {
  line-height: 1.7;
}

.post-content img,
.post-content video {
  max-width: 100%;
  height: auto;
  border-radius: var(--radius);
}

.post-content > .video-embed {
  margin: 28px 0;
  border-radius: var(--radius);
}

.post-content > p + .video-embed {
  margin-top: 32px;
}

.post-content > .video-embed + p {
  margin-top: 32px;
}

/* Publicaciones: las tarjetas son claras sobre un fondo oscuro, por eso todo
   su contenido debe conservar contraste propio y no heredar texto claro. */
.public-site .post-card {
  background: #fffdf8;
  border-color: #d8d2c4;
  color: #17202a;
}

.public-site .post-card h2 {
  color: #17202a;
}

.public-site .post-card p {
  color: #4c5b70;
}

.public-site .panel .post-content {
  color: #17202a;
}

.public-site .panel .post-content p,
.public-site .panel .post-content li,
.public-site .panel .post-content blockquote {
  color: #263548;
}

.public-site .panel .post-content a {
  color: #9e211a;
  font-weight: 700;
}

.message {
  margin-top: 14px;
  padding: 12px 14px;
  border-radius: var(--radius);
  background: #fff0cf;
  color: var(--warn);
}

.message.ok {
  background: #d8f0e2;
  color: var(--ok);
}

.message.bad {
  background: #fde0de;
  color: var(--bad);
}

.hidden {
  display: none !important;
}

.public-site {
  background: #faf8f3;
  color: #14202b;
}

.public-header {
  position: sticky;
  top: 0;
  z-index: 10;
  min-height: 86px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  padding: 16px clamp(18px, 4vw, 58px);
  background: rgba(17, 28, 46, 0.98);
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(12px);
}

.public-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #fff;
  font-weight: 800;
  text-decoration: none;
}

.brand-mark {
  width: 36px;
  height: 36px;
  display: inline-grid;
  place-items: center;
  border-radius: 8px;
  background: #b42318;
  color: #fff;
}

.public-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.public-nav a {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  padding: 0 12px;
  border-radius: 8px;
  color: rgba(255, 255, 255, 0.86);
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
}

.public-nav a:hover,
.public-nav .nav-cta {
  background: #b42318;
  color: #fff;
}

.public-nav a:focus-visible,
.nav a:focus-visible,
.button:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.doc-link:focus-visible,
.post-card:focus-visible,
.topic-tile:focus-visible {
  outline: 3px solid rgba(240, 180, 90, 0.9);
  outline-offset: 3px;
}

.public-hero {
  min-height: calc(100vh - 86px);
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(340px, 1.1fr);
  align-items: center;
  gap: clamp(26px, 5vw, 70px);
  padding: clamp(44px, 7vw, 88px) clamp(18px, 6vw, 76px);
  background:
    radial-gradient(circle at 78% 20%, rgba(184, 137, 45, 0.2), transparent 32%),
    linear-gradient(90deg, #111c2e 0%, #111c2e 52%, #0b1321 52%, #0b1321 100%);
}

.public-hero__copy {
  max-width: 680px;
}

.eyebrow {
  margin: 0 0 10px;
  color: #b42318;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.public-hero h1,
.interior-hero h1 {
  margin: 0;
  color: #fff;
  font-size: clamp(42px, 7vw, 82px);
  line-height: 0.96;
}

.public-hero p,
.interior-hero p,
.prose p {
  color: #5c6876;
  font-size: 18px;
  line-height: 1.7;
}

.hero-quote {
  color: #fff !important;
  font-size: clamp(22px, 3vw, 34px) !important;
  font-weight: 800;
  line-height: 1.16 !important;
}

.public-hero__copy > p:not(.eyebrow):not(.hero-quote) {
  color: rgba(255, 255, 255, 0.76);
}

.public-hero .button:not(.primary) {
  background: transparent;
  color: #fff;
}

.hero-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 28px;
}

.hero-image {
  margin: 0;
  align-self: stretch;
  min-height: 520px;
}

.hero-image img,
.interior-hero img {
  width: 100%;
  height: 100%;
  min-height: inherit;
  display: block;
  object-fit: cover;
  border-radius: 8px;
  box-shadow: 0 22px 64px rgba(0, 0, 0, 0.28);
}

.public-section {
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto;
  padding: clamp(54px, 7vw, 92px) 0;
}

.split-section {
  display: grid;
  grid-template-columns: minmax(260px, 0.82fr) minmax(320px, 1fr);
  gap: clamp(28px, 6vw, 80px);
  align-items: start;
}

.public-section h2,
.section-heading h2 {
  margin: 0;
  color: #162331;
  font-size: clamp(30px, 4vw, 52px);
  line-height: 1.08;
}

.prose p:first-child {
  margin-top: 0;
}

.prose blockquote {
  margin: 28px 0 0;
  padding-left: 18px;
  border-left: 4px solid #b42318;
  color: #17202a;
  font-size: 24px;
  font-weight: 800;
  line-height: 1.35;
}

.section-heading {
  width: min(760px, 100%);
  margin-bottom: 26px;
}

.feature-grid,
.topic-card-grid,
.values-grid,
.video-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.feature-card,
.image-card,
.values-grid article,
.video-list article {
  background: #fff;
  border: 1px solid rgba(20, 32, 43, 0.12);
  border-radius: 8px;
  overflow: hidden;
}

.feature-card img,
.image-card img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  display: block;
}

.feature-card h3,
.image-card h3,
.values-grid h2,
.video-list h3 {
  margin: 18px 18px 8px;
  color: #17202a;
}

.feature-card p,
.image-card p,
.values-grid p,
.video-list p {
  margin: 0 18px 20px;
  color: #667085;
  line-height: 1.65;
}

.video-embed {
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #060b13;
  position: relative;
}

.video-embed iframe {
  width: 100%;
  height: 100%;
  display: block;
  border: 0;
}

.video-lite__button {
  width: 100%;
  height: 100%;
  display: block;
  padding: 0;
  border: 0;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(135deg, rgba(13, 23, 38, 0.45), rgba(36, 50, 72, 0.35)),
    var(--video-poster),
    #060b13;
  background-position: center;
  background-size: cover;
}

.video-lite__button img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  opacity: 0.82;
  transform: scale(1.01);
  transition: opacity 180ms ease, transform 180ms ease;
}

.video-lite__button::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(5, 9, 16, 0.06), rgba(5, 9, 16, 0.42));
}

.video-lite__button:hover img,
.video-lite__button:focus-visible img {
  opacity: 0.96;
  transform: scale(1.04);
}

.video-lite__play {
  width: clamp(58px, 7vw, 76px);
  height: clamp(58px, 7vw, 76px);
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 2;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: #c7261f;
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.36);
}

.video-lite__play::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-36%, -50%);
  width: 0;
  height: 0;
  border-top: 13px solid transparent;
  border-bottom: 13px solid transparent;
  border-left: 20px solid #fff;
}

.video-lite__label {
  position: absolute;
  left: 16px;
  bottom: 14px;
  z-index: 2;
  color: #fff;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.52);
}

.featured-video-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(18px, 3vw, 28px);
}

.featured-video-list article {
  display: grid;
  align-content: start;
}

.dark-band {
  width: 100%;
  max-width: none;
  padding-left: clamp(18px, 6vw, 76px);
  padding-right: clamp(18px, 6vw, 76px);
  background: #111c2e;
  color: #fff;
}

.dark-band h2,
.dark-band h3,
.dark-band p {
  color: #fff;
}

.dark-band .eyebrow {
  color: #f0b45a;
}

.topic-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-top: 26px;
}

.topic-tile {
  min-height: 130px;
  display: flex;
  align-items: flex-end;
  padding: 18px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  font-size: 22px;
  font-weight: 900;
  text-decoration: none;
}

.cta-section {
  border-top: 1px solid rgba(20, 32, 43, 0.12);
}

.public-footer {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 32px;
  padding: 54px clamp(18px, 6vw, 76px);
  background: #0b1321;
  color: #fff;
}

.public-footer h3 {
  margin: 0 0 12px;
}

.public-footer p,
.public-footer a {
  color: rgba(255, 255, 255, 0.78);
  line-height: 1.7;
}

.public-footer a {
  display: block;
  text-decoration: none;
}

.social-links {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.social-links a {
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  padding: 0 10px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 999px;
}

/* Pie de página: la imagen tiene un espacio propio y nunca comparte el área
   de texto o enlaces. Evita colisiones a cualquier ancho de pantalla. */
.public-footer__about {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 112px;
  gap: 18px;
  align-items: center;
}

.public-footer__marvin-image {
  display: block;
  width: 112px;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 50%;
  border: 3px solid rgba(255, 255, 255, 0.15);
  background: #f5f0e6;
}

.report-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.report-group {
  min-width: 0;
  margin: 0;
  padding: 18px;
  border: 1px solid #cbd5e1;
  border-radius: 12px;
  background: #fffdfa;
}

.report-group legend {
  padding: 0 8px;
  color: #223a5c;
  font-weight: 800;
}

.report-group label {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  margin: 10px 0;
  color: #172033;
  line-height: 1.35;
}

.report-options--profile {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 16px;
}

.report-group input { flex: 0 0 auto; margin-top: 3px; }
.report-note { grid-column: 1 / -1; margin: 0; color: #475569; line-height: 1.55; }
.report-date-range__toggle { font-weight: 700; }
.report-date-range__fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 14px; }
.report-date-range__fields label { display: grid; gap: 6px; margin: 0; font-weight: 700; }
.report-date-range__fields input { width: 100%; margin: 0; }
.report-date-range__fields[aria-disabled="true"] { opacity: .45; }
.report-date-range small { display: block; margin-top: 12px; color: #475569; line-height: 1.45; }
.report-actions { display: flex; flex-wrap: wrap; gap: 12px; grid-column: 1 / -1; }

.interior-hero {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(320px, 0.8fr);
  gap: clamp(28px, 6vw, 72px);
  align-items: center;
  padding: clamp(46px, 8vw, 96px) clamp(18px, 6vw, 76px);
  background:
    radial-gradient(circle at 82% 20%, rgba(184, 137, 45, 0.18), transparent 30%),
    #111c2e;
}

.interior-hero img {
  max-height: 560px;
}

.interior-hero h1,
.interior-hero p,
.offering-hero h1,
.offering-hero p {
  color: #fff;
}

.video-band {
  display: grid;
  gap: 24px;
}

.quote-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.quote-grid blockquote {
  margin: 0;
  min-height: 136px;
  display: grid;
  align-content: center;
  padding: 22px;
  border-left: 4px solid #b42318;
  border-radius: 8px;
  background: #fff;
  color: #17202a;
  font-size: 22px;
  font-weight: 800;
  line-height: 1.32;
}

.social-panel {
  display: grid;
  grid-template-columns: minmax(260px, 0.9fr) minmax(320px, 1fr);
  gap: clamp(24px, 5vw, 60px);
  align-items: center;
  border-top: 1px solid rgba(20, 32, 43, 0.12);
  border-bottom: 1px solid rgba(20, 32, 43, 0.12);
}

.social-panel h2 {
  margin: 0;
}

.social-panel p:not(.eyebrow) {
  margin: 12px 0 0;
  color: #667085;
  font-size: 18px;
  line-height: 1.7;
}

.social-panel .social-links {
  justify-content: flex-end;
}

.social-panel .social-links a {
  border-color: rgba(180, 35, 24, 0.24);
  background: #fff;
  color: #17202a;
  font-weight: 800;
}

@media (max-width: 900px) {
  .login-shell {
    grid-template-columns: 1fr;
  }

  .login-media {
    min-height: 38vh;
    order: -1;
  }

  .grid.stats,
  .post-list,
  .doc-grid {
    grid-template-columns: 1fr;
  }

  .profile-head {
    grid-template-columns: 1fr;
  }

  .site-header {
    padding: 12px 20px;
    align-items: flex-start;
    flex-direction: column;
  }

  .public-header {
    position: static;
    align-items: flex-start;
    flex-direction: column;
  }

  .public-nav {
    justify-content: flex-start;
  }

  .public-nav a {
    min-height: 42px;
  }

  .public-hero,
  .interior-hero,
  .split-section,
  .social-panel {
    grid-template-columns: 1fr;
  }

  .public-hero {
    min-height: auto;
    background:
      linear-gradient(180deg, rgba(17, 28, 46, 0.94), rgba(17, 28, 46, 0.86)),
      #111c2e;
  }

  .public-hero h1,
  .public-hero .hero-quote {
    color: #fff;
  }

  .public-hero__copy > p:not(.eyebrow):not(.hero-quote) {
    color: rgba(255, 255, 255, 0.78);
  }

  .hero-image {
    min-height: 360px;
  }

  .feature-grid,
  .topic-card-grid,
  .values-grid,
  .video-list,
  .featured-video-list,
  .topic-grid,
  .quote-grid,
  .public-footer {
    grid-template-columns: 1fr;
  }

  .social-panel .social-links {
    justify-content: flex-start;
  }
}

@media (max-width: 560px) {
  html {
    scroll-padding-top: 18px;
  }

  :target {
    scroll-margin-top: 18px;
  }

  .public-header {
    gap: 14px;
  }

  .public-nav,
  .nav {
    width: 100%;
  }

  .public-nav a,
  .nav a,
  .nav button {
    flex: 1 1 auto;
    justify-content: center;
  }

  .brand,
  .public-brand {
    max-width: 100%;
  }

  .login-form-wrap {
    padding: 28px 20px;
  }

  .login-panel h1 {
    font-size: 40px;
  }

  .page,
  .page.narrow {
    width: min(100% - 24px, 1180px);
    margin-top: 20px;
  }

  .public-section {
    width: min(100% - 24px, 1180px);
  }

  .public-hero,
  .interior-hero {
    padding: 36px 18px 42px;
  }

  .public-hero h1,
  .interior-hero h1 {
    font-size: 42px;
  }

  .hero-actions,
  .public-hero .button,
  .cta-section .button,
  .video-band .button {
    width: 100%;
  }

  .public-hero .button,
  .cta-section .button,
  .video-band .button {
    min-height: 46px;
  }

  .hero-image {
    min-height: 320px;
  }

  .toolbar {
    align-items: stretch;
    width: 100%;
  }

  .toolbar input,
  .toolbar select,
  .toolbar .button {
    width: 100%;
  }

  .section-title {
    align-items: stretch;
    flex-direction: column;
  }

  .public-footer {
    padding-top: 42px;
    padding-bottom: 42px;
  }

  .quote-grid blockquote {
    min-height: auto;
    font-size: 19px;
  }
}

/* Visual parity layer: mirrors the original Astra/Elementor public aesthetic. */
.public-site {
  background: #212a37;
  color: #e7f6ff;
  font-family: "DM Sans", sans-serif;
}

.public-site h1,
.public-site h2,
.public-site h3,
.public-site h4,
.public-site h5,
.public-site h6 {
  font-family: "DM Sans", sans-serif;
  font-weight: 600;
  letter-spacing: 0;
}

.public-header {
  min-height: 100px;
  padding: 0 40px;
  background: #212a37;
  border-bottom: 0;
  box-shadow: none;
  backdrop-filter: none;
}

.public-brand {
  color: #fff;
  font-size: 1.25rem;
  font-weight: 600;
}

.brand-mark {
  width: 45px;
  height: 45px;
  border-radius: 50%;
  background: #0f172a;
  color: #fff;
  font-size: 1.2rem;
  font-weight: 800;
}

.public-nav {
  gap: 0;
}

.public-nav a {
  min-height: 100px;
  padding: 0 18px;
  border-radius: 0;
  color: #fff;
  font-size: 1rem;
  font-weight: 600;
}

.public-nav a:hover,
.public-nav .nav-cta {
  background: transparent;
  color: #e7f6ff;
}

/* La sección actual siempre debe reconocerse sin depender de pasar el cursor. */
.public-nav a[aria-current="page"] {
  background: #cf2e2e;
  color: #fff;
  box-shadow: inset 0 -3px 0 #f0b45a;
}

.public-nav a[aria-current="page"]:hover {
  background: #a92222;
  color: #fff;
}

/* Las tarjetas de vídeos destacados tienen fondo claro por defecto; en la
   versión pública se usan oscuras para conservar un contraste legible. */
.public-site .video-list article {
  padding: 26px;
  background: #0f172a;
  border-color: #334155;
  border-radius: 16px;
}

.public-site .video-list h3 {
  margin: 0 0 12px;
  color: #fff;
}

.public-site .video-list p {
  margin: 0;
  color: #e7f6ff;
}

.public-site .post-back {
  display: inline-flex;
  margin: 0 0 22px;
  border: 1px solid #53657b;
  background: #212a37;
  color: #fff;
  text-decoration: none;
}

.public-site .post-back:hover,
.public-site .post-back:focus-visible {
  border-color: #f0b45a;
  background: #cf2e2e;
  color: #fff;
}

.investment-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 16px;
}

.investment-card {
  padding: 20px;
  border: 1px solid #d8d2c4;
  border-radius: 12px;
  background: #fffdf8;
  color: #17202a;
}

.investment-card h3 {
  margin: 0 0 14px;
  color: #17202a;
  font-size: 18px;
}

.investment-card dl,
.investment-card dl div {
  margin: 0;
}

.investment-card dl {
  display: grid;
  gap: 10px;
}

.investment-card dl div {
  display: grid;
  gap: 3px;
  padding-top: 10px;
  border-top: 1px solid #e6e0d5;
}

.investment-card dt {
  color: #657287;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.investment-card dd {
  color: #17202a;
  overflow-wrap: anywhere;
}

.public-hero,
.interior-hero,
.offering-hero {
  min-height: 800px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 168px 40px 136px;
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(rgba(7, 6, 20, 0.52), rgba(7, 6, 20, 0.52)),
    url("/assets/site/comunidad.jpg?v=20261027-original") center 62% / cover no-repeat;
}

.public-hero__copy,
.interior-hero > div,
.offering-hero > div {
  width: min(900px, 100%);
  max-width: 900px;
  text-align: center;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

.public-hero .hero-image,
.interior-hero > img,
.offering-hero > img {
  display: none;
}

.public-hero h1,
.interior-hero h1,
.offering-hero h1 {
  margin: 0 0 20px;
  color: #fff;
  font-size: clamp(44px, 7vw, 60px);
  line-height: 1.1;
  font-weight: 600;
}

.public-hero p,
.interior-hero p,
.offering-hero p,
.public-hero__copy > p:not(.eyebrow):not(.hero-quote) {
  color: #e7f6ff;
  font-size: 18px;
  line-height: 1.6;
}

.hero-quote {
  color: #fff !important;
  font-size: clamp(23px, 3vw, 38px) !important;
  line-height: 1.18 !important;
  font-weight: 700;
}

.eyebrow {
  color: #e7f6ff;
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
}

.public-section {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 50px 40px 25px;
  background: #212a37;
}

.public-section > *,
.section-heading,
.feature-grid,
.topic-card-grid,
.values-grid,
.video-list,
.topic-grid,
.quote-grid,
.split-section,
.social-panel,
.cta-section {
  width: min(1200px, 100%);
  margin-left: auto;
  margin-right: auto;
}

.section-heading {
  width: min(840px, 100%);
  margin-bottom: 64px;
  text-align: center;
}

.public-section h2,
.section-heading h2 {
  margin: 0 0 16px;
  color: #fff;
  font-size: clamp(34px, 4vw, 48px);
  line-height: 1.2;
  font-weight: 600;
}

.public-section h3 {
  color: #fff;
  font-size: 26px;
  line-height: 1.3;
  font-weight: 600;
}

.prose p,
.section-heading p,
.feature-card p,
.image-card p,
.values-grid p,
.video-list p,
.public-section p {
  color: #e7f6ff;
}

.split-section {
  grid-template-columns: 1fr;
  gap: 24px;
  text-align: center;
}

.split-section .prose {
  width: min(820px, 100%);
  margin: 0 auto;
}

.feature-grid,
.topic-card-grid,
.values-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 35px;
}

.feature-card,
.image-card,
.values-grid article {
  display: flex;
  min-height: 100%;
  flex-direction: column;
  gap: 30px;
  padding: 30px;
  background: #0f172a;
  border: 1px solid #222;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: none;
}

.feature-card img,
.image-card img {
  order: 2;
  width: 100%;
  height: 220px;
  aspect-ratio: auto;
  object-fit: cover;
  border-radius: 16px;
}

.feature-card h3,
.image-card h3,
.values-grid h2,
.video-list h3 {
  margin: 0 0 12px;
  color: #fff;
}

.feature-card p,
.image-card p,
.values-grid p {
  margin: 0;
  color: #e7f6ff;
}

.dark-band,
.video-band {
  padding: 25px 40px;
  background: #212a37;
}

.video-band .section-heading {
  margin-bottom: 0;
}

.featured-video-list {
  width: min(1200px, 100%);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin-top: 120px;
  padding: 0;
  background: #0f172a;
  border: 1px solid #222;
  border-radius: 20px;
  overflow: visible;
}

.featured-video-list article {
  padding: 0 56px 56px;
  border-right: 1px solid #222;
  background: transparent;
  border-radius: 0;
  overflow: visible;
}

.featured-video-list article:nth-child(2n) {
  border-right: 0;
}

.featured-video-list article:nth-child(n + 3) {
  border-top: 1px solid #222;
}

.featured-video-list .video-embed {
  margin-top: -56px;
  border-radius: 0;
  background: #070614;
}

.video-lite__play {
  background: #cf2e2e;
  border-radius: 999px;
}

.video-lite__label {
  display: none;
}

.featured-video-list h3 {
  margin: 32px 0 15px;
  color: #fff;
  font-size: 26px;
}

.featured-video-list p {
  margin: 0;
  color: #e7f6ff;
}

.video-band > .button,
.video-band > a.button,
.public-section .button.primary,
.button.primary,
.nav a.primary,
.nav button.primary {
  min-height: 48px;
  padding: 15px 28px;
  border: 0;
  border-radius: 8px;
  background: #cf2e2e;
  color: #fff;
  font-family: "DM Sans", sans-serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 1;
  box-shadow: none;
}

.video-band > .button {
  width: max-content;
  margin: 25px auto;
}

/* Administrative actions must remain clearly visible on light cards and the dark panel. */
body[data-page="admin"] main .button {
  border: 1px solid #466486;
  background: #203c5d;
  color: #fff;
  font-size: 14px;
  font-weight: 800;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.08) inset;
  transition: background-color 160ms ease, border-color 160ms ease, transform 160ms ease;
}

body[data-page="admin"] main .button:hover:not(:disabled),
body[data-page="admin"] main .button:focus-visible:not(:disabled) {
  border-color: #7ea6d0;
  background: #2c527d;
  color: #fff;
  transform: translateY(-1px);
}

body[data-page="admin"] main .button.success {
  border-color: #2e9964;
  background: #207a4c;
}

body[data-page="admin"] main .button.success:hover:not(:disabled),
body[data-page="admin"] main .button.success:focus-visible:not(:disabled) {
  border-color: #5bc58c;
  background: #17613b;
}

body[data-page="admin"] main .button.danger {
  border-color: #dc5a51;
  background: #b42318;
}

body[data-page="admin"] main .button.danger:hover:not(:disabled),
body[data-page="admin"] main .button.danger:focus-visible:not(:disabled) {
  border-color: #ff938a;
  background: #8d1c14;
}

body[data-page="admin"] main .button.primary {
  border-color: #dc5a51;
  background: #cf2e2e;
}

body[data-page="admin"] main .button:disabled {
  border-color: #617187;
  background: #465568;
  color: #e1e7ef;
  opacity: 1;
}

/* Selectores del directorio: el color y el borde no dependen del fondo de la
   tabla, incluso cuando se muestran en modo solo lectura. */
.admin-status-select {
  min-width: 142px;
  min-height: 40px;
  border: 1px solid #466486;
  border-radius: 8px;
  padding: 8px 34px 8px 11px;
  background: #203c5d;
  color: #fff;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
}

.admin-status-select:focus-visible {
  outline: 3px solid #f0b45a;
  outline-offset: 2px;
}

.admin-status-select:disabled {
  border-color: #617187;
  background: #465568;
  color: #e1e7ef;
  cursor: not-allowed;
  opacity: 1;
}

.profile-consolidated-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
}

.profile-consolidated-card h2 { margin: 2px 0 6px; color: var(--ink); }
.profile-consolidated-card p:not(.eyebrow) { margin: 0; color: var(--muted); }

/* Documento consolidado: vista web y formato imprimible. */
body[data-page="consolidated"] { background: #d9e0e8; }

.consolidated-page {
  width: min(980px, calc(100% - 40px));
  margin: 36px auto 64px;
}

.consolidated-page > .message { margin-bottom: 18px; }

.consolidated-document {
  overflow: hidden;
  border: 1px solid #c9b995;
  border-radius: 12px;
  background: #fffdf8;
  color: #17202a;
  box-shadow: 0 18px 52px rgba(15, 23, 42, .18);
}

.consolidated-document__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 24px 30px;
  background: #111c2e;
  color: #fff;
}

.consolidated-document__brand { display: flex; align-items: center; gap: 14px; }
.consolidated-document__brand img { width: 56px; height: 56px; object-fit: cover; border-radius: 50%; border: 2px solid #f0b45a; }
.consolidated-document__brand p { margin: 0 0 3px; color: #f0b45a; font-size: 12px; font-weight: 800; letter-spacing: .08em; }
.consolidated-document__brand h1 { margin: 0; color: #fff; font-size: 30px; line-height: 1; letter-spacing: .03em; }

.consolidated-document__intro { padding: 30px 34px 22px; }
.consolidated-document__intro > p { margin: 0; color: #17202a; font-size: 17px; line-height: 1.65; }

.consolidated-hash {
  display: grid;
  gap: 6px;
  margin-top: 22px;
  padding: 12px 14px;
  border: 1px solid #d9cfb7;
  border-radius: 8px;
  background: #f5f0e5;
}
.consolidated-hash span { color: #5f533e; font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.consolidated-hash code { color: #17202a; font-size: 12px; overflow-wrap: anywhere; }

.consolidated-section { padding: 0 34px 28px; }
.consolidated-section > h2 { margin: 0 0 12px; padding-bottom: 9px; border-bottom: 2px solid #b8892d; color: #111c2e; font-size: 22px; }
.consolidated-entry { margin-top: 12px; border: 1px solid #d8d2c4; border-radius: 8px; overflow: hidden; }
.consolidated-entry h3 { margin: 0; padding: 12px 14px; background: #efe9dc; color: #2d271f; font-size: 16px; }
.consolidated-entry dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); margin: 0; }
.consolidated-entry dl div { min-width: 0; padding: 12px 14px; border-right: 1px solid #e5ded0; border-top: 1px solid #e5ded0; }
.consolidated-entry dt { color: #645d50; font-size: 11px; font-weight: 800; text-transform: uppercase; }
.consolidated-entry dd { margin: 5px 0 0; color: #17202a; font-size: 14px; overflow-wrap: anywhere; }
.consolidated-empty { margin: 0; padding: 14px; border: 1px dashed #c9b995; border-radius: 8px; color: #645d50; }

.consolidated-document__footer { padding: 28px 34px 26px; border-top: 1px solid #d8d2c4; background: #f7f4ec; }
.consolidated-document__footer > p { margin: 0; color: #273447; font-size: 14px; line-height: 1.65; }
.consolidated-document__signature { margin-top: 16px !important; font-weight: 800; }
.consolidated-logos { display: flex; align-items: center; justify-content: space-around; gap: 18px; margin-top: 24px; padding-top: 17px; border-top: 1px solid #ded4c2; }
.consolidated-logos img { width: 92px; height: 58px; object-fit: contain; mix-blend-mode: multiply; }

@media (max-width: 680px) {
  .consolidated-page { width: min(100% - 24px, 980px); margin-top: 18px; }
  .consolidated-document__header, .profile-consolidated-card { align-items: flex-start; flex-direction: column; }
  .consolidated-document__intro, .consolidated-section, .consolidated-document__footer { padding-left: 20px; padding-right: 20px; }
  .consolidated-entry dl { grid-template-columns: 1fr; }
  .consolidated-logos { flex-wrap: wrap; justify-content: flex-start; }
}

@media print {
  body[data-page="consolidated"] { background: #fff; }
  .no-print { display: none !important; }
  .consolidated-page { width: 100%; margin: 0; }
  .consolidated-document { border: 0; border-radius: 0; box-shadow: none; }
  .consolidated-section, .consolidated-entry { break-inside: avoid; page-break-inside: avoid; }
  .consolidated-document__header { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
}

.quote-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 30px;
}

.quote-grid blockquote,
.social-panel,
.cta-section {
  background: #0f172a;
  border: 1px solid #222;
  border-radius: 16px;
  color: #fff;
}

.quote-grid blockquote {
  margin: 0;
  padding: 30px;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.35;
}

.social-panel,
.cta-section {
  padding: 30px;
}

.social-panel h2,
.cta-section h2 {
  color: #fff;
}

.social-links a {
  min-height: 42px;
  padding: 0 14px;
  border-color: #222;
  border-radius: 8px;
  background: #212a37;
  color: #fff;
}

.public-footer {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 32px;
  padding: 64px 40px 42px;
  background: #0f172a;
  color: #fff;
}

.public-footer h3 {
  color: #fff;
  font-size: 22px;
  font-weight: 600;
}

.public-footer p,
.public-footer a {
  color: #e7f6ff;
}

.topic-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 30px;
}

.topic-tile {
  min-height: 150px;
  padding: 30px;
  border: 1px solid #222;
  border-radius: 16px;
  background: #0f172a;
  color: #fff;
}

@media (max-width: 1024px) {
  .public-header {
    padding-left: 32px;
    padding-right: 32px;
  }

  .public-hero,
  .interior-hero,
  .offering-hero {
    min-height: 680px;
    padding: 140px 32px 80px;
  }

  .public-section,
  .dark-band,
  .video-band {
    padding: 80px 32px;
  }

  .feature-grid,
  .topic-card-grid,
  .values-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .featured-video-list {
    margin-top: 0;
  }

  .featured-video-list article {
    padding: 0 32px 32px;
  }

  .featured-video-list .video-embed {
    margin-top: -32px;
  }
}

@media (max-width: 767px) {
  .public-header {
    min-height: 80px;
    align-items: center;
    flex-wrap: wrap;
    padding: 16px 24px;
  }

  .public-brand {
    font-size: 1rem;
  }

  .brand-mark {
    width: 38px;
    height: 38px;
  }

  .public-nav {
    width: 100%;
    justify-content: flex-start;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin-top: 8px;
    padding-bottom: 2px;
  }

  .public-nav a {
    flex: 0 0 auto;
    min-height: 34px;
    padding: 4px 10px;
    font-size: 0.88rem;
  }

  .public-hero,
  .interior-hero,
  .offering-hero {
    min-height: 620px;
    padding: 130px 24px 100px;
  }

  .public-section,
  .dark-band,
  .video-band {
    padding: 64px 24px;
  }

  .section-heading {
    margin-bottom: 40px;
  }

  .feature-grid,
  .topic-card-grid,
  .values-grid,
  .featured-video-list,
  .quote-grid,
  .topic-grid,
  .public-footer,
  .report-form {
    grid-template-columns: 1fr;
  }

  .report-options--profile { grid-template-columns: 1fr; }
  .report-date-range__fields { grid-template-columns: 1fr; }

  .public-footer__about { grid-template-columns: minmax(0, 1fr) 88px; }
  .public-footer__marvin-image { width: 88px; }

  .featured-video-list {
    border-radius: 20px;
    overflow: hidden;
  }

  .featured-video-list article,
  .featured-video-list article:nth-child(2n) {
    padding: 0 24px 48px;
    border-right: 0;
    border-top: 1px solid #222;
  }

  .featured-video-list article:first-child {
    border-top: 0;
  }

  .featured-video-list .video-embed {
    margin-top: -24px;
  }

  .feature-card img,
  .image-card img {
    height: 230px;
  }

  .social-panel,
  .cta-section {
    padding: 24px;
  }
}
