/*
Theme Name: GovPress
Theme URI: http://govpress.org
Author: GovFresh
Description: GovPress is a free WordPress theme designed for government use. Features include customized homepage, color customizations options, custom headers, multiple widget areas, and an optional icon navigation menu. Extensive documentation and recommended plugins can be found at govpress.org. All code is peer reviewed and patches are welcome via GitHub.
Version: 1.5.2
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: govpress
Domain Path: /languages/
Tags: two-columns, custom-header, custom-menu, featured-image-header, full-width-template, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned with others.

GovPress is based on Underscores http://underscores.me/, (C) 2012-2014 Automattic, Inc.
*/
/* =Global Variables
----------------------------------------------- */
/*
Resetting and rebuilding styles have been helped along thanks to the fine work of
Eric Meyer http://meyerweb.com/eric/tools/css/reset/index.html
along with Nicolas Gallagher and Jonathan Neal http://necolas.github.com/normalize.css/
and Blueprint http://www.blueprintcss.org/
*/
/* =Reset
-------------------------------------------------------------- */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
  border: 0;
  font-family: inherit;
  font-size: 100%;
  font-style: inherit;
  font-weight: inherit;
  margin: 0;
  outline: 0;
  padding: 0;
  vertical-align: baseline; }

html {
  font-size: 62.5%;
  /* Corrects text resizing oddly in IE6/7 when body font-size is set using em units http://clagnut.com/blog/348/#c790 */
  overflow-y: scroll;
  /* Keeps page centered in all browsers regardless of content height */
  -webkit-text-size-adjust: 100%;
  /* Prevents iOS text size adjust after orientation change, without disabling user zoom */
  -ms-text-size-adjust: 100%;
  /* www.456bereastreet.com/archive/201012/controlling_text_size_in_safari_for_ios_without_disabling_user_zoom/ */ }

*,
*:before,
*:after {
  /* apply a natural box layout model to all elements; see http://www.paulirish.com/2012/box-sizing-border-box-ftw/ */
  -webkit-box-sizing: border-box;
  /* Not needed for modern webkit but still used by Blackberry Browser 7.0; see http://caniuse.com/#search=box-sizing */
  /* Still needed for Firefox 28; see http://caniuse.com/#search=box-sizing */
  box-sizing: border-box; }

body {
  background: #fff;
  height: 100%;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
main,
nav,
section {
  display: block; }

ol, ul {
  list-style: none; }

table {
  /* tables still need 'cellspacing="0"' in the markup */
  border-collapse: separate;
  border-spacing: 0; }

caption, th, td {
  font-weight: normal;
  text-align: left; }

blockquote:before, blockquote:after,
q:before, q:after {
  content: ""; }

blockquote, q {
  quotes: "" ""; }

a:focus {
  outline: thin dotted; }

a:hover,
a:active {
  outline: 0; }

a img {
  border: 0; }

/* =Global
----------------------------------------------- */
body,
button,
input,
select,
textarea {
  color: #222;
  font-family: "Open Sans", sans-serif;
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.5; }

/* Headings */
h1, h2, h3, h4, h5, h6 {
  clear: both;
  font-weight: 700; }

hr {
  background-color: #ccc;
  border: 0;
  height: 1px;
  margin-bottom: 1.5em; }

/* Text elements */
p {
  margin-bottom: 1.5em; }

ul, ol {
  margin: 0 0 1.5em 3em; }

ul {
  list-style: disc; }

ol {
  list-style: decimal; }

li > ul,
li > ol {
  margin-bottom: 0;
  margin-left: 1.5em; }

dt {
  font-weight: bold; }

dd {
  margin: 0 1.5em 1.5em; }

b, strong {
  font-weight: bold; }

dfn, cite, em, i {
  font-style: italic; }

blockquote {
  margin: 0 1.5em; }

address {
  margin: 0 0 1.5em; }

pre {
  background: #eee;
  font-family: "Courier 10 Pitch", Courier, monospace;
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 1.6;
  margin-bottom: 1.6em;
  max-width: 100%;
  overflow: auto;
  padding: 1.6em; }

code, kbd, tt, var {
  font: 15px Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace; }

abbr, acronym {
  border-bottom: 1px dotted #666;
  cursor: help; }

mark, ins {
  background: #fff9c0;
  text-decoration: none; }

sup,
sub {
  font-size: 75%;
  height: 0;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sup {
  bottom: 1ex; }

sub {
  top: .5ex; }

small {
  font-size: 75%; }

big {
  font-size: 125%; }

figure {
  margin: 0; }

table {
  margin: 0 0 1.5em;
  width: 100%; }

th {
  font-weight: bold; }

img {
  height: auto;
  /* Make sure images are scaled correctly. */
  max-width: 100%;
  /* Adhere to container width. */ }

/* Forms */
label {
  cursor: pointer;
  display: block; }

button,
input,
select,
textarea {
  font-size: 100%;
  /* Corrects font size not being inherited in all browsers */
  margin: 0;
  /* Addresses margins set differently in IE6/7, F3/4, S5, Chrome */
  vertical-align: baseline;
  /* Improves appearance and consistency in all browsers */ }

button,
.button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
  border-style: solid;
  border-width: 0px;
  cursor: pointer;
  margin: 0 0 10px;
  position: relative;
  text-decoration: none;
  text-align: center;
  -webkit-appearance: none;
  border-radius: 3px;
  display: inline-block;
  padding: 7px 20px 9px;
  background-color: #0071bc;
  -webkit-box-shadow: inset 0 -2px rgba(0, 0, 0, 0.2);
          box-shadow: inset 0 -2px rgba(0, 0, 0, 0.2);
  color: #fff;
  font-size: 15px; }

button:focus,
input[type="button"]:focus,
input[type="reset"]:focus,
input[type="submit"]:focus,
button:active,
input[type="button"]:active,
input[type="reset"]:active,
input[type="submit"]:active {
  -webkit-box-shadow: inset 0 2px rgba(0, 0, 0, 0.15);
          box-shadow: inset 0 2px rgba(0, 0, 0, 0.15);
  padding: 8px 20px;
  outline: none; }

input[type="checkbox"],
input[type="radio"] {
  padding: 0;
  /* Addresses excess padding in IE8/9 */ }

button::-moz-focus-inner,
input::-moz-focus-inner {
  /* Corrects inner padding and border displayed oddly in FF3/4 */
  border: 0;
  padding: 0; }

input[type="text"],
input[type="password"],
input[type="date"],
input[type="email"],
input[type="search"],
input[type="url"],
input[type="tel"],
input[type="email"],
textarea {
  -webkit-appearance: none;
  background-color: #fafafa;
  font-family: inherit;
  border: none;
  -webkit-box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.025), inset 0 1px 1px rgba(0, 0, 0, 0.2);
          box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.025), inset 0 1px 1px rgba(0, 0, 0, 0.2);
  color: rgba(0, 0, 0, 0.75);
  display: block;
  font-size: 15px;
  margin: 0 0 1em 0;
  padding: 8px;
  width: 100%;
  border-radius: 3px; }

input[type="text"]:focus,
input[type="password"]:focus,
input[type="date"]:focus,
input[type="email"]:focus,
input[type="search"]:focus,
input[type="url"]:focus,
textarea:focus {
  background-color: #fff;
  outline: none;
  -webkit-box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.1), inset 0 1px 1px rgba(0, 0, 0, 0.2);
          box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.1), inset 0 1px 1px rgba(0, 0, 0, 0.2); }

input[type="search"]::-webkit-search-decoration {
  /* Corrects inner padding displayed oddly in S5, Chrome on OSX */
  -webkit-appearance: none; }

input[name="post_password"] {
  margin-top: .5em; }

textarea {
  overflow: auto;
  /* Removes default vertical scrollbar in IE6/7/8/9 */
  vertical-align: top;
  /* Improves readability and alignment in all browsers */
  height: auto;
  min-height: 50px; }

/* Links */
a {
  color: #0071bc; }

a:hover,
a:focus,
a:active {
  color: #1a4480; }

/* Alignment */
.alignleft {
  display: inline;
  float: left;
  margin-right: 1.5em; }

.alignright {
  display: inline;
  float: right;
  margin-left: 1.5em; }

.aligncenter {
  clear: both;
  display: block;
  margin: 0 auto; }

/* Text meant only for screen readers */
.screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  position: absolute !important; }

.screen-reader-text:hover,
.screen-reader-text:active,
.screen-reader-text:focus {
  background-color: #f1f1f1;
  border-radius: 3px;
  -webkit-box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
          box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  clip: auto !important;
  color: #21759b;
  display: block;
  font-size: 14px;
  font-weight: bold;
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
  /* Above WP toolbar */ }

/* Clearing */
.clear:before,
.clear:after,
.entry-content:before,
.entry-content:after,
.comment-content:before,
.comment-content:after,
.site-header:before,
.site-header:after,
.site-content:before,
.site-content:after,
.site-footer:before,
.site-footer:after {
  content: '';
  display: table; }

.clear:after,
.entry-content:after,
.comment-content:after,
.site-header:after,
.site-content:after,
.site-footer:after {
  clear: both; }

/* @noflip */
body.rtl {
  direction: rtl;
  unicode-bidi: embed; }

/* =General
----------------------------------------------- */
body {
  -webkit-font-smoothing: antialiased;
  background: #f8f8f8; }

a {
  text-decoration: none;
  -webkit-transition: color 0.2s ease-in-out;
  transition: color 0.2s ease-in-out; }

a:hover {
  text-decoration: underline; }

/* =Layout
----------------------------------------------- */
.content-area {
  float: left;
  margin: 0 -25% 0 0;
  width: 100%; }

.col-width {
  max-width: 1160px;
  padding: 0 20px;
  margin: 0 auto; }

.site-main {
  margin: 0 30% 0 0;
  min-height: 100%; }

.full-width .site-main,
.layout-single-column .site-main {
  margin: 0; }

#secondary {
  float: right;
  overflow: hidden;
  width: 25%; }

.site-footer {
  background: #1a233a;
  color: #fff;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  position: relative;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 10;
  padding: 0;
}
.footer-content, .footer-bottom {
  max-width: 1400px;
  margin: 0 auto;
}
.footer-logo {
  display: block;
  max-width: 180px;
  height: auto;
  margin-bottom: 18px;
  filter: drop-shadow(0 2px 8px rgba(0,0,0,0.15));
}
.footer-info, .footer-links {
  color: #fff;
}
.footer-contact-item i, .footer-social a {
  color: #fff;
}
.footer-bottom {
  color: #fff;
  border-top: 1px solid rgba(255,255,255,0.08);
}
.footer-links a {
  color: #fff;
  opacity: 0.92;
  transition: color 0.2s, opacity 0.2s;
}
.footer-links a:hover {
  color: #ffd600;
  opacity: 1;
}

/* =Header
----------------------------------------------- */
.site-description {
  font-weight: 400; }

/* =Menu
----------------------------------------------- */
#site-navigation {
  background: linear-gradient(to right, #1a4480, #0072BC);
  position: relative;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.main-navigation {
  background: #0072BC;
  height: 40px;
  display: flex;
  align-items: center;
}

.main-navigation .col-width {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 15px;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}

.left-menu {
  display: flex;
  align-items: center;
  gap: 30px;
}

.menu-item {
  color: white;
  text-decoration: none;
  display: flex;
  align-items: center;
  padding: 0 15px;
  transition: all 0.3s ease;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.3px;
}

.menu-item:hover {
  opacity: 0.65;
  text-decoration: none;
  transform: translateY(-1px);
}

.menu-item i {
  margin-right: 8px;
  font-size: 11px;
}

.nav-extras {
  display: flex;
  align-items: center;
  margin-left: auto;
  gap: 20px;
}

.nav-search-form {
  display: flex;
  align-items: center;
  background: white;
  border-radius: 3px;
  overflow: hidden;
}

.nav-search-field {
  background: white;
  border: none;
  color: #333;
  padding: 6px 10px;
  width: 200px;
  font-size: 14px;
}

.nav-search-field::placeholder {
  color: #666;
}

.nav-search-field:focus {
  outline: none;
}

.nav-search-submit {
  background: white;
  border: none;
  color: #666;
  padding: 6px 10px;
  cursor: pointer;
  display: flex;
  align-items: center;
}

.nav-search-submit:hover {
  color: #333;
}

.nav-icon {
  color: white;
  text-decoration: none;
  font-size: 16px;
  display: flex;
  align-items: center;
  transition: all 0.3s ease;
}

.nav-icon:hover {
  opacity: 0.65;
  text-decoration: none;
  transform: translateY(-1px);
}

/* Mobile styles */
@media screen and (max-width: 1024px) {
  .left-menu {
    gap: 20px;
  }
  
  .menu-item {
    font-size: 12px;
  }
  
  .nav-extras {
    gap: 15px;
  }
  
  .nav-icon {
    font-size: 16px;
  }
  
  .nav-search-field {
    width: 140px;
  }
}

@media screen and (max-width: 768px) {
  .left-menu {
    display: none;
  position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #0072BC;
    flex-direction: column;
    padding: 10px 0;
  }

  .left-menu.toggled-on {
    display: flex;
  }

  .menu-item {
    padding: 10px 15px;
    width: 100%;
  }
  
  .nav-search-form {
    display: none;
  }
}

/* =Icon Menu
----------------------------------------------- */
#menu-icon {
  margin: 0 0 1.5em; }

.menu-icon-container {
  background: #fff;
  border-radius: 5px;
  padding: 1em; }

.menu-icon-container ul {
  text-align: center;
  list-style: none;
  margin: 0; }

.menu-icon-container li {
  display: inline-block;
  padding: 1em 5%; }

.menu-icon-container li:before {
  content: none; }

.menu-icon-container a:hover {
  text-decoration: none;
  color: #333; }

.menu-icon-container a:before {
  font-family: "FontAwesome";
  display: inline-block;
  font-style: normal;
  font-weight: normal;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 52px;
  font-size: 5.2rem;
  display: block;
  margin: 0 0 5px;
  text-decoration: none; }

.menu-icon-container a:hover:before {
  opacity: .8; }

/* =Header
----------------------------------------------- */
.site-header {
  background: #223a5e;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
}

.header-main {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

.header-main .col-width {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  max-width: 1200px;
  padding: 0 18px;
  min-height: 60px;
}

.logo-container {
  display: flex;
  align-items: center;
  margin-right: 18px;
}

.site-logo {
  height: 44px;
  width: auto;
  display: block;
}

.main-menu {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

.menu-list {
  display: flex;
  align-items: center;
  gap: 18px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.menu-list a,
.menu-list a:visited,
.menu-list a:hover,
.menu-list a:focus,
.menu-list a:active {
  color: #fff;
  font-weight: 500;
  font-size: 15px;
  letter-spacing: 0.5px;
  transition: color 0.2s;
  padding: 6px 0;
  display: flex;
  align-items: center;
  border-bottom: 2px solid transparent;
  text-decoration: none !important;
  border-bottom: none !important;
  box-shadow: none !important;
}

.menu-list a:hover, .menu-list a:focus {
  color: #b3c6e0;
  border-bottom: 2px solid #b3c6e0;
}

.menu-item-has-children > a i {
  margin-left: 5px;
  font-size: 11px;
}

.header-search {
  margin-left: 14px;
  display: flex;
  align-items: center;
}

.header-search .search-form {
  display: flex;
  align-items: center;
  position: relative;
}

.header-search .search-submit {
  background: #fff;
  border: 1px solid #b3c6e0;
  border-radius: 4px;
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #2566a8;
  font-size: 16px;
  cursor: pointer;
  transition: background 0.2s, color 0.2s, border 0.2s;
  margin-right: 0;
}

.header-search .search-submit:hover {
  background: #eaf0fa;
  color: #223a5e;
  border: 1px solid #2566a8;
}

.header-search .search-input {
  display: none;
}

@media (max-width: 1200px) {
  .top-bar .col-width, .header-main .col-width {
    padding: 0 5px;
  }
  .menu-list {
    gap: 10px;
  }
}
@media (max-width: 900px) {
  .header-main .col-width {
    padding: 0 2px;
  }
  .logo-container {
    margin-bottom: 6px;
  }
  .menu-list {
    gap: 6px;
    font-size: 13px;
  }
}
@media (max-width: 700px) {
  .top-bar .col-width, .header-main .col-width {
    padding: 0 2px;
    height: auto;
  }
  .menu-list {
    gap: 4px;
  }
}

/* === VARIABLES === */
:root {
  --color-header: #1a365d;
  --color-primary: #2563eb;
  --color-secondary: #64748b;
  --color-success: #059669;
  --color-warning: #eab308;
  --color-danger: #dc2626;
  --color-background: #f8fafc;
  --color-text: #334155;
  --color-border: #e2e8f0;
  --shadow-sm: 0 1px 2px rgba(0,0,0,0.05);
  --shadow-md: 0 4px 6px -1px rgba(0,0,0,0.1);
}

/* === ESTILOS MODERNOS 2024 === */
:root {
  --gradient-blue: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);
  --gradient-green: linear-gradient(135deg, #059669 0%, #047857 100%);
  --gradient-yellow: linear-gradient(135deg, #eab308 0%, #ca8a04 100%);
  --gradient-red: linear-gradient(135deg, #dc2626 0%, #b91c1c 100%);
  --shadow-soft: 0 10px 30px -5px rgba(0, 0, 0, 0.1);
  --shadow-strong: 0 20px 40px -5px rgba(0, 0, 0, 0.15);
  --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* === BANNER PRINCIPAL === */
.home-banner {
  margin-top: 32px;
  position: relative;
  background: linear-gradient(135deg, #1560a8 0%, #1e7fc2 100%);
  padding: 70px 0 110px;
  text-align: center;
  overflow: hidden;
  border-top-left-radius: 32px;
  border-top-right-radius: 32px;
  box-shadow: 0 8px 32px rgba(30,53,92,0.10);
  border-bottom: 4px solid rgba(255,255,255,0.25);
}

.banner-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(45deg, 
      rgba(26, 68, 128, 0.95) 0%,
      rgba(0, 113, 188, 0.85) 100%);
  animation: gradientMove 15s ease infinite;
}

@keyframes gradientMove {
  0% { background-position: 0% 50%, 100% 50%, 0% 50%, 100% 50%; }
  50% { background-position: 100% 50%, 0% 50%, 100% 50%, 0% 50%; }
  100% { background-position: 0% 50%, 100% 50%, 0% 50%, 100% 50%; }
}

.banner-content {
  position: relative;
  z-index: 2;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

.title-container {
  margin-bottom: 20px;
  animation: titleAppear 1s ease-out;
}

.main-title {
  color: #ffffff;
  font-size: 44px;
  font-weight: 700;
  margin-bottom: 10px;
  text-shadow: 0 2px 8px rgba(30,53,92,0.10);
}

.banner-content p {
  color: #eaf0fa;
  font-size: 20px;
  max-width: 800px;
  margin: 0 auto;
  opacity: 0;
  animation: fadeIn 1s ease-out 0.5s forwards;
}

@keyframes titleAppear {
  from {
    opacity: 0;
    transform: translateY(-30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@media (max-width: 900px) {
  .home-banner {
    padding: 40px 0 60px;
    border-top-left-radius: 18px;
    border-top-right-radius: 18px;
  }
  .main-title {
    font-size: 28px;
  }
  .banner-content p {
    font-size: 16px;
  }
}

/* === FOOTER === */
.footer-wrapper {
  background: #1e293b;
  width: 100%;
  margin: 0;
  padding: 0;
}

.footer-content {
  display: grid;
  grid-template-columns: 2.2fr 1.2fr 1.2fr;
  gap: 3.5rem;
  align-items: flex-start;
  padding: 48px 32px 24px 32px;
}

.footer-col {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.footer-info {
  align-items: flex-start;
}

.footer-logo {
  max-width: 170px;
  margin-bottom: 22px;
  margin-top: 8px;
}

.footer-contact {
  margin-bottom: 18px;
}

.footer-contact-item {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 7px;
  font-size: 1rem;
  color: #fff;
  opacity: 0.92;
}

.footer-social {
  display: flex;
  gap: 12px;
  margin-top: 10px;
}

.footer-social a {
  background: rgba(255,255,255,0.08);
  border-radius: 50%;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  color: #fff;
  transition: background 0.2s, color 0.2s;
}

.footer-social a:hover {
  background: #ffd600;
  color: #1a233a;
}

.footer-links h4 {
  color: #fff;
  font-size: 1.1rem;
  font-weight: 700;
  margin-bottom: 10px;
  border-bottom: 2px solid #338af3;
  display: inline-block;
  padding-bottom: 2px;
}

.footer-links ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer-links li {
  margin-bottom: 8px;
}

.footer-links a {
  color: #fff;
  opacity: 0.92;
  font-size: 1rem;
  transition: color 0.2s, opacity 0.2s;
}

.footer-links a:hover {
  color: #ffd600;
  opacity: 1;
}

.footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 32px 12px 32px;
  color: #fff;
  border-top: 1px solid rgba(255,255,255,0.08);
  font-size: 1rem;
  background: transparent;
  flex-wrap: wrap;
}

.footer-bottom p {
  margin: 0;
}

.footer-bottom a {
  color: #fff;
  margin-left: 24px;
  text-decoration: underline;
  font-weight: 500;
}

.footer-certification {
  height: 38px;
  margin-left: 24px;
}

@media (max-width: 900px) {
  .footer-content {
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    padding: 32px 10px 18px 10px;
  }
  .footer-col {
    margin-bottom: 18px;
  }
}

@media (max-width: 600px) {
  .footer-content {
    grid-template-columns: 1fr;
    gap: 1.2rem;
    padding: 24px 4vw 10px 4vw;
  }
  .footer-bottom {
    flex-direction: column;
    align-items: flex-start;
    padding: 12px 4vw 8px 4vw;
  }
  .footer-certification {
    margin-left: 0;
    margin-top: 10px;
  }
}

/* Featured Services */
.featured-services {
  margin-top: -100px;
  padding: 0 20px 60px;
  position: relative;
  z-index: 3;
}

.featured-services .services-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
  max-width: 1200px;
  margin: 0 auto;
}

.featured-services .service-card {
  background: #ffffff;
  padding: 25px 15px;
  border-radius: 15px;
  text-align: center;
  position: relative;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  cursor: pointer;
  min-height: 280px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

.featured-services .service-card:nth-child(1) {
  border-top: 5px solid #2E8540;
}

.featured-services .service-card:nth-child(2) {
  border-top: 5px solid #E31C3D;
}

.featured-services .service-card:nth-child(3) {
  border-top: 5px solid #02BFE7;
}

.featured-services .service-card:nth-child(4) {
  border-top: 5px solid #FDB81E;
}

.featured-services .service-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.15);
}

.featured-services .service-icon {
  width: 90px;
  height: 90px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 25px;
  transition: transform 0.3s ease;
}

.featured-services .service-card:nth-child(1) .service-icon {
  background: linear-gradient(135deg, #2E8540 0%, #4AA564 100%);
}

.featured-services .service-card:nth-child(2) .service-icon {
  background: linear-gradient(135deg, #E31C3D 0%, #FF4D4D 100%);
}

.featured-services .service-card:nth-child(3) .service-icon {
  background: linear-gradient(135deg, #02BFE7 0%, #00DCF9 100%);
}

.featured-services .service-card:nth-child(4) .service-icon {
  background: linear-gradient(135deg, #FDB81E 0%, #FFD042 100%);
}

.featured-services .service-card:hover .service-icon {
  transform: scale(1.1);
}

.featured-services .service-icon i {
  font-size: 36px;
  color: #ffffff;
}

.featured-services .service-card h2 {
  color: #1a4480;
  font-size: 24px;
  margin-bottom: 15px;
  font-weight: 600;
}

.featured-services .service-card p {
  color: #5B616B;
  font-size: 16px;
  line-height: 1.6;
  margin: 0;
}

.featured-services .service-link {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
}

@media (max-width: 1200px) {
  .featured-services .services-grid {
    padding: 0 30px;
  }
  
  .featured-services .service-card {
    padding: 20px 10px;
  }
  
  .featured-services .service-card h2 {
    font-size: 20px;
  }
  
  .featured-services .service-card p {
    font-size: 14px;
  }
}

@media (max-width: 992px) {
  .featured-services {
    margin-top: -60px;
  }
  
  .featured-services .services-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
}

@media (max-width: 768px) {
  .featured-services {
    margin-top: -40px;
    padding: 0 15px 40px;
  }
  
  .featured-services .services-grid {
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 0;
  }
  
  .featured-services .service-card {
    min-height: 240px;
  }
}

/* TOP BAR MODERNO */
.top-bar {
    background: #23272f !important;
    color: #fff;
    font-size: 13px;
    padding: 0;
    box-shadow: 0 2px 6px rgba(0,0,0,0.04);
}
.top-bar .col-width {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 18px;
    height: 36px;
}
.top-bar .left-menu {
    display: flex;
    align-items: center;
    gap: 16px;
}
.top-bar .left-menu a,
.top-bar .left-menu a:visited,
.top-bar .left-menu a:hover,
.top-bar .left-menu a:focus,
.top-bar .left-menu a:active {
    color: #fff;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 13px;
    letter-spacing: 0.2px;
    padding: 0 2px;
    border-bottom: none;
    transition: color 0.2s;
}
.top-bar .left-menu a:hover {
    color: #b3c6e0;
    border-bottom: none;
}
.top-bar .left-menu i {
    font-size: 14px;
}
.top-bar .nav-extras {
    gap: 7px;
}
.top-bar .nav-icon {
    width: 26px;
    height: 26px;
    font-size: 14px;
    background: rgba(255,255,255,0.08);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    transition: background 0.2s, color 0.2s, box-shadow 0.2s;
    box-shadow: 0 1px 4px rgba(30,53,92,0.08);
}
.top-bar .nav-icon:hover {
    background: #fff;
    color: #2566a8;
    box-shadow: 0 2px 8px rgba(30,53,92,0.12);
}

/* Línea decorativa bajo el título principal */
.banner-decoration {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 28px auto 0 auto;
    height: 18px;
}
.banner-decoration .line {
    height: 3px;
    border-radius: 2px;
    background: linear-gradient(90deg, #fff 0%, #eaf0fa 100%);
    opacity: 0.7;
    box-shadow: 0 1px 6px rgba(30,53,92,0.10);
}
.banner-decoration .line.center {
    width: 60px;
    background: linear-gradient(90deg, #eaf0fa 0%, #fff 50%, #eaf0fa 100%);
    opacity: 0.9;
}
.banner-decoration .line.side {
    width: 36px;
    opacity: 0.4;
}
.banner-decoration .icon {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: linear-gradient(135deg, #fff 60%, #eaf0fa 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 8px rgba(30,53,92,0.10);
    font-size: 16px;
    color: #2566a8;
}
@media (max-width: 900px) {
    .banner-decoration .line.center { width: 32px; }
    .banner-decoration .line.side { width: 12px; }
    .banner-decoration .icon { width: 18px; height: 18px; font-size: 11px; }
}

.banner-decoration .line.center.animated {
    width: 0;
    height: 1px;
    border-radius: 1px;
    background: linear-gradient(90deg, #eaf0fa 0%, #fff 50%, #eaf0fa 100%);
    opacity: 0;
    box-shadow: 0 1px 6px rgba(30,53,92,0.10);
    animation: fadeInLine 1s ease 0.2s forwards;
}
@keyframes fadeInLine {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* Noticias - Cards Modernas */
.news-section {
    padding: 60px 0 40px;
    background: #f8fafd;
}
.section-header {
    text-align: center;
    margin-bottom: 36px;
}
.section-title {
    font-size: 2.2rem;
    color: #1a365d;
    font-weight: 700;
    margin-bottom: 0;
}
.news-cards-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}
.news-card {
    background: #fff;
    border-radius: 18px;
    box-shadow: 0 4px 24px rgba(30,53,92,0.10);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform 0.25s, box-shadow 0.25s;
    position: relative;
}
.news-card:hover {
    transform: translateY(-8px) scale(1.025);
    box-shadow: 0 8px 32px rgba(30,53,92,0.16);
}
.news-image-container {
    position: relative;
    width: 100%;
    height: 210px;
    overflow: hidden;
    background: #eaf0fa;
}
.news-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.3s;
}
.news-card:hover .news-image {
    transform: scale(1.06);
}
.news-image-placeholder {
    width: 100%;
    height: 100%;
    background: #dbeafe;
}
.news-date {
    position: absolute;
    left: 18px;
    bottom: 18px;
    background: rgba(30,53,92,0.92);
    color: #fff;
    font-size: 13px;
    padding: 5px 14px 5px 10px;
    border-radius: 16px;
    box-shadow: 0 2px 8px rgba(30,53,92,0.10);
    display: flex;
    align-items: center;
    gap: 6px;
    font-weight: 500;
}
.news-content {
    padding: 28px 22px 22px 22px;
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}
.news-title {
    font-size: 1.25rem;
    color: #1a365d;
    font-weight: 700;
    margin-bottom: 10px;
    line-height: 1.2;
}
.news-excerpt {
    color: #4b5563;
    font-size: 1rem;
    margin-bottom: 18px;
    flex: 1;
}
.news-btn {
    align-self: flex-start;
    background: #2566a8;
    color: #fff;
    font-weight: 600;
    padding: 8px 22px;
    border-radius: 6px;
    font-size: 1rem;
    text-decoration: none;
    transition: background 0.2s, color 0.2s;
    box-shadow: 0 2px 8px rgba(30,53,92,0.08);
}
.news-btn:hover {
    background: #1a365d;
    color: #fff;
}
@media (max-width: 1000px) {
    .news-cards-grid {
        grid-template-columns: 1fr 1fr;
        gap: 20px;
    }
}
@media (max-width: 700px) {
    .news-cards-grid {
        grid-template-columns: 1fr;
        gap: 16px;
        padding: 0 6px;
    }
    .news-content {
        padding: 18px 10px 14px 10px;
    }
}

.news-more-btn-wrapper {
    display: flex;
    justify-content: center;
    margin-top: 32px;
}
.news-more-btn {
    background: #2566a8;
    color: #fff;
    font-weight: 600;
    padding: 12px 36px;
    border-radius: 8px;
    font-size: 1.1rem;
    text-decoration: none;
    box-shadow: 0 2px 8px rgba(30,53,92,0.08);
    transition: background 0.2s, color 0.2s, transform 0.2s;
    letter-spacing: 0.5px;
}
.news-more-btn:hover {
    background: #1a365d;
    color: #fff;
    transform: translateY(-2px) scale(1.04);
}

/* Página individual de noticia (single-post.php) */
.news-single-main {
    max-width: 800px;
    margin: 48px auto 0 auto;
    padding: 0 16px 48px 16px;
}
.news-single-article {
    background: #fff;
    border-radius: 18px;
    box-shadow: 0 4px 24px rgba(30,53,92,0.10);
    overflow: hidden;
    margin-bottom: 48px;
}
.news-single-image img {
    width: 100%;
    height: 340px;
    object-fit: cover;
    display: block;
}
.news-single-header {
    padding: 32px 32px 0 32px;
    text-align: center;
}
.news-single-title {
    font-size: 2.2rem;
    color: #1a365d;
    font-weight: 700;
    margin-bottom: 10px;
}
.news-single-meta {
    color: #4b5563;
    font-size: 1rem;
    display: flex;
    justify-content: center;
    gap: 18px;
    margin-bottom: 18px;
}
.news-single-meta i {
    margin-right: 5px;
    color: #2566a8;
}
.news-single-content {
    padding: 0 32px 32px 32px;
    color: #23272f;
    font-size: 1.08rem;
    line-height: 1.7;
}
.news-single-footer {
    padding: 0 32px 24px 32px;
    border-top: 1px solid #eaf0fa;
    background: #f8fafd;
}
.news-single-tax {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 12px;
}
.news-cat {
    background: #2566a8;
    color: #fff;
    padding: 4px 14px;
    border-radius: 12px;
    font-size: 0.95rem;
    text-decoration: none;
    transition: background 0.2s;
}
.news-cat:hover {
    background: #1a365d;
}

.news-related-section {
    margin-top: 32px;
    padding: 0 0 32px 0;
}
.news-related-title {
    font-size: 1.3rem;
    color: #1a365d;
    font-weight: 700;
    margin-bottom: 18px;
    text-align: center;
}
/* Reutiliza .news-cards-grid y .news-card de la sección de noticias principal */
@media (max-width: 900px) {
    .news-single-image img { height: 180px; }
    .news-single-header, .news-single-content, .news-single-footer { padding-left: 12px; padding-right: 12px; }
}

#page, .col-width, .site-content, #primary, #main {
    width: 100%;
    max-width: 100%;
}
.site-footer {
    flex-shrink: 0;
}