/* Generic reconstruction of RocketTheme Plethora (Gantry 4) layout.
   Original theme CSS was absent from the Wayback archive; this restores a clean,
   readable structure (12-col flex grid, header/menu/modules/footer) — not a
   pixel-for-pixel copy. Accent taken from site logo. */

:root { --accent: #a00020; --accent-dark: #77001a; --ink: #2c2c2c; --muted: #6a6a6a; --line: #e3e3e3; --soft: #f6f6f6; }

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; color: var(--ink); background: #fff;
  font-family: "Helvetica Neue", Helvetica, Arial, "Segoe UI", sans-serif;
  font-size: 16px; line-height: 1.6;
}
img { max-width: 100%; height: auto; }
a { color: var(--accent); text-decoration: none; }
a:hover { color: var(--accent-dark); text-decoration: underline; }
h1, h2, h3, h4 { color: var(--ink); line-height: 1.25; font-weight: 700; margin: .6em 0 .4em; }
h1 { font-size: 1.9rem; } h2 { font-size: 1.5rem; } h3 { font-size: 1.25rem; }
p { margin: 0 0 1em; }
ul, ol { margin: 0 0 1em; padding-left: 1.4em; }
hr { border: 0; border-top: 1px solid var(--line); margin: 1.5em 0; }

/* ---- Containers ---- */
.rt-container { max-width: 1200px; margin: 0 auto; padding: 0 18px; }
#rt-page-surround { overflow: hidden; }

/* ---- 12-col flex grid ---- */
.rt-flex-container { display: flex; flex-wrap: wrap; margin: 0 -12px; align-items: flex-start; }
.rt-flex-container > [class*="rt-grid-"],
.rt-flex-container > .rt-mainbody-wrapper { padding: 0 12px; }
[class*="rt-grid-"] { flex: 0 0 100%; max-width: 100%; }
.rt-grid-1  { flex-basis: 8.333%;  max-width: 8.333%; }
.rt-grid-2  { flex-basis: 16.666%; max-width: 16.666%; }
.rt-grid-3  { flex-basis: 25%;     max-width: 25%; }
.rt-grid-4  { flex-basis: 33.333%; max-width: 33.333%; }
.rt-grid-5  { flex-basis: 41.666%; max-width: 41.666%; }
.rt-grid-6  { flex-basis: 50%;     max-width: 50%; }
.rt-grid-7  { flex-basis: 58.333%; max-width: 58.333%; }
.rt-grid-8  { flex-basis: 66.666%; max-width: 66.666%; }
.rt-grid-9  { flex-basis: 75%;     max-width: 75%; }
.rt-grid-10 { flex-basis: 83.333%; max-width: 83.333%; }
.rt-grid-12 { flex-basis: 100%;    max-width: 100%; }

/* ---- Blocks / modules ---- */
.rt-block { margin-bottom: 18px; }
.module-surround { }
.module-content { }
.rt-center { text-align: center; }
.nomargintop, .nopaddingtop { margin-top: 0; }

/* ---- Top utility bar ---- */
#rt-top { background: var(--accent); color: #fff; font-size: .85rem; }
#rt-top a { color: #fff; }
#rt-top .fp-breadcrumbs, #rt-top .rt-block { margin-bottom: 0; padding: 8px 0; }
.rt-horizmenu ul.nav.menu { list-style: none; display: flex; flex-wrap: wrap; gap: 4px; margin: 0; padding: 6px 0; }
.rt-horizmenu ul.nav.menu > li > a { color: #fff; padding: 4px 10px; display: block; font-size: .85rem; }
.rt-social-buttons { text-align: right; padding: 6px 0; }
.rt-social-buttons a { display: inline-block; margin-left: 6px; color: #fff; }

/* ---- Header / logo / main menu ---- */
#rt-header-surround { background: #fff; border-bottom: 3px solid var(--accent); }
#rt-header { padding: 14px 0; }
.rt-logo-block img, #rt-logo img { max-height: 84px; width: auto; }
/* theme used a CSS background logo (logo-type-custom); restore it */
#rt-logo { display: block; width: 60px; height: 84px; background: url('/images/logogeneto-transparentecalidad.png') no-repeat left center; background-size: contain; text-indent: -9999px; overflow: hidden; }

.menu-block { display: flex; align-items: center; }
ul.gf-menu { list-style: none; display: flex; flex-wrap: wrap; margin: 0; padding: 0; position: relative; }
ul.gf-menu.l1 > li { position: relative; }
ul.gf-menu.l1 > li > a,
ul.gf-menu.l1 > li > span.separator {
  display: block; padding: 12px 14px; color: var(--ink);
  font-weight: 700; text-transform: uppercase; font-size: .82rem; letter-spacing: .02em;
}
ul.gf-menu.l1 > li:hover > a,
ul.gf-menu.l1 > li.active > a,
ul.gf-menu.l1 > li.current > a { color: var(--accent); }
/* dropdown submenus */
ul.gf-menu .dropdown, ul.gf-menu ul.l2, ul.gf-menu li ul {
  list-style: none; margin: 0; padding: 6px 0; position: absolute; left: 0; top: 100%;
  min-width: 210px; background: #fff; border: 1px solid var(--line);
  box-shadow: 0 6px 18px rgba(0,0,0,.12); z-index: 1000; display: none;
}
ul.gf-menu li:hover > .dropdown, ul.gf-menu li:hover > ul { display: block; }
ul.gf-menu .dropdown li a, ul.gf-menu ul li a { display: block; padding: 8px 16px; color: var(--ink); font-size: .85rem; text-transform: none; font-weight: 400; }
ul.gf-menu .dropdown li a:hover, ul.gf-menu ul li a:hover { background: var(--soft); color: var(--accent); }
.gf-menu-device-container { width: 100%; }

/* search */
.fp-rokajaxsearch input[type="text"], .rokajaxsearch input { padding: 7px 10px; border: 1px solid var(--line); border-radius: 3px; width: 100%; }

/* ---- Showcase / feature strips ---- */
#rt-showcase, #rt-feature, #rt-drawer, #rt-maintop { padding: 24px 0; }
#rt-drawer { background: var(--soft); }
.rt-title-large h2, .rt-title-large h3, .custombox3 h2, .box3 h2 { color: var(--accent); }

/* Roksprocket "features" -> responsive card grid */
ul.sprocket-features-img-list,
.sprocket-features { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 18px; }
.sprocket-features-img-list > li,
.sprocket-features-item { flex: 1 1 260px; background: #fff; border: 1px solid var(--line); border-radius: 4px; overflow: hidden; }
.sprocket-features-img-container img { width: 100%; display: block; }
.sprocket-features-content { padding: 14px; }
.sprocket-features-title { margin-top: 0; font-size: 1.05rem; }
.sprocket-features-title a { color: var(--ink); }
.sprocket-features-title a:hover { color: var(--accent); }
.sprocket-none { }

/* generic roksprocket lists/strips */
.sprocket-lists-row, .sprocket-strips-item { margin-bottom: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.sprocket-lists-img img { border-radius: 4px; }

/* ---- Main body / articles ---- */
#rt-mainbody-surround { padding: 26px 0 34px; }
.rt-mainbody-wrapper { }
.component-content { min-width: 0; }
article.item-page, .item-page { background: #fff; }
.item-page .page-header h1, .item-page .page-header h2 { margin-top: 0; border-bottom: 2px solid var(--line); padding-bottom: .3em; }
.article-info, .createdby, .published, .category-name { color: var(--muted); font-size: .82rem; margin-bottom: 1em; }
.item-page img { border-radius: 3px; }
blockquote { margin: 1em 0; padding: .6em 1em; border-left: 4px solid var(--accent); background: var(--soft); }
table { border-collapse: collapse; max-width: 100%; }
table td, table th { border: 1px solid var(--line); padding: 6px 10px; }
.readmore a, a.readon, .btn { display: inline-block; background: var(--accent); color: #fff !important; padding: 8px 16px; border-radius: 3px; text-decoration: none; }
.readmore a:hover, a.readon:hover, .btn:hover { background: var(--accent-dark); text-decoration: none; }

/* blog / category listing */
.blog .items-row { display: flex; flex-wrap: wrap; gap: 22px; margin-bottom: 22px; }
.blog .items-row [class*="item-"] { flex: 1 1 300px; }
.items-leading, .items-row .column-1, .items-row .column-2 { margin-bottom: 18px; }

/* sidebar modules */
#rt-sidebar-a, #rt-sidebar-b, [class*="sidebar"] .module-content { }
.moduletable h3, .module-title, .rt-block h3.title { color: var(--accent); font-size: 1.05rem; border-bottom: 1px solid var(--line); padding-bottom: .3em; margin-top: 0; }

/* ---- Footer ---- */
#rt-footer-surround { background: #222; color: #cfcfcf; margin-top: 30px; }
#rt-footer-surround a { color: #fff; }
#rt-bottom, #rt-footer { padding: 26px 0; }
#rt-footer-surround h1, #rt-footer-surround h2, #rt-footer-surround h3 { color: #fff; }
#rt-footer-surround .module-content { font-size: .9rem; }
#rt-copyright { background: #191919; color: #9a9a9a; font-size: .82rem; padding: 14px 0; text-align: center; }
#rt-copyright a { color: #cfcfcf; }

/* ---- Responsive ---- */
@media (max-width: 900px) {
  [class*="rt-grid-"], .rt-mainbody-wrapper { flex-basis: 100% !important; max-width: 100% !important; }
  ul.gf-menu.l1 { flex-direction: column; width: 100%; }
  ul.gf-menu .dropdown, ul.gf-menu li ul { position: static; box-shadow: none; border: 0; display: block; padding-left: 12px; }
  .rt-social-buttons { text-align: left; }
}
