/* Layout and rhythm */
main {
  padding-top: var(--space-6);
  padding-bottom: var(--space-8);
}

section + section {
  margin-top: var(--space-7);
}

/* Header / Navigation */
#panel.navbar {
  position: sticky;
  top: 0;
  z-index: 1200;
  background: linear-gradient(180deg, #ffffff 0%, #f3f8f6 100%);
  border-bottom: 1px solid var(--color-border);
  box-shadow: 0 4px 20px rgba(16, 38, 30, 0.08);
}

body.ph-page-scrolled #panel.navbar {
  box-shadow: 0 10px 28px rgba(16, 38, 30, 0.14);
}

#panel .container {
  gap: var(--space-4);
}

#panel .gph-main-menu {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

#panel .gph-main-menu .nav-link {
  border-radius: var(--radius-sm);
  color: var(--color-primary) !important;
  font-family: var(--font-heading);
  font-size: 0.86rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  padding: 0.62rem 0.72rem !important;
  text-transform: uppercase;
}

#panel .gph-main-menu .current_page_item > .nav-link,
#panel .gph-main-menu .current-menu-item > .nav-link,
#panel .gph-main-menu .nav-link:hover,
#panel .gph-main-menu .nav-link:focus {
  background: var(--color-primary-soft);
  color: #0f2b22 !important;
}

#panel .dropdown-menu {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-sm);
  padding: var(--space-2);
}

#panel .dropdown-menu .dropdown-item {
  border-radius: var(--radius-xs);
  color: #102c23;
  font-size: 0.9rem;
  font-weight: 600;
  padding: 0.55rem 0.7rem;
}

#panel .dropdown-menu .dropdown-item:hover,
#panel .dropdown-menu .dropdown-item:focus {
  background: var(--color-primary-soft);
}

/* Content blocks */
.home-main,
#main-content {
  background: transparent;
}

.bloques,
.home-section,
.widget {
  border-radius: var(--radius-md);
}

/* Footer redesign */
footer #contact {
  background: #eaf3ee;
  color: #143328;
  padding: var(--space-8) 0;
  border-top: 1px solid #d3e4dd;
}

footer #contact a {
  color: #143328;
  text-decoration: none;
}

footer #contact a:hover {
  color: #0f2b22;
  text-decoration: underline;
}

footer #powered-by {
  background: #eaf3ee;
  border-top: 1px solid #d3e4dd;
  min-height: 48px;
}

footer .external-link {
  margin-bottom: var(--space-4);
}

/* Footer social icons redesign */
footer #contact .social-links ul {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

footer #contact .social-links ul li.divider {
  display: none !important;
}

footer #contact a.ph-social-icon {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: auto !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 2px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  text-decoration: none;
  line-height: 1;
  transition: transform 0.2s ease;
}

footer #contact a.ph-social-icon i {
  font-size: 1.52rem !important;
  line-height: 1;
}

footer #contact a.ph-social-icon:hover,
footer #contact a.ph-social-icon:focus {
  transform: translateY(-1px) scale(1.08);
}

footer #contact a.ph-social-icon--facebook i {
  color: #1877f2 !important;
}

footer #contact a.ph-social-icon--instagram i {
  color: #e4405f !important;
}

footer #contact a.ph-social-icon--youtube i {
  color: #ff0000 !important;
}

footer #contact a.ph-social-icon--x i,
footer #contact a.ph-social-icon--twitter i {
  color: #111111 !important;
}

footer #contact a.ph-social-icon--linkedin i {
  color: #0a66c2 !important;
}

footer #contact a.ph-social-icon--whatsapp i {
  color: #25d366 !important;
}

footer #contact a.ph-social-icon--telegram i {
  color: #229ed9 !important;
}

footer #contact a.ph-social-icon--tiktok i {
  color: #111111 !important;
}

/* Accessibility and touch targets */
.nav-link,
button,
.btn,
input,
select,
a {
  -webkit-tap-highlight-color: transparent;
}

button,
.btn,
.nav-link,
a {
  min-height: 40px;
}

/* Home carousel indicators */
.home-hero .hero-toolbar {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}

.home-hero .hero-control.pause {
  display: none !important;
}

.home-hero .hero-dots {
  gap: 10px;
}

.home-hero .hero-dots .hero-dot,
.home-hero .hero-dot.is-active {
  width: 12px !important;
  height: 12px !important;
  border-radius: 999px !important;
}

.home-hero .hero-dots .hero-dot {
  background: rgba(255, 255, 255, 0.85);
  border: 1px solid rgba(20, 51, 40, 0.16);
}

.home-hero .hero-dot.is-active {
  background: #1f5f49 !important;
  border-color: #1f5f49 !important;
  box-shadow: 0 0 0 3px rgba(31, 95, 73, 0.22);
}

/* Mobile */
@media (max-width: 991px) {
  #panel .header-gov__img,
  #panel .navbar-trigger__logo-img {
    max-height: 56px;
    width: auto;
  }

  #panel .gph-main-menu .nav-link {
    padding-inline: 0.6rem !important;
  }

  #sidebar {
    background: #113327;
    color: #fff;
  }

  #sidebar .sidebar-header {
    background: #1a4b39;
    border-bottom: 1px solid rgba(255, 255, 255, 0.18);
  }

  #sidebar a,
  #sidebar button {
    color: #fff;
  }
}

@media (max-width: 767px) {
  main {
    padding-top: var(--space-5);
    padding-bottom: var(--space-6);
  }

  .container,
  .ph-container {
    width: min(100% - 1.2rem, var(--container-max));
  }
}

/* Home: align Facebook iframe, latest news and right sidebar */
.home-main .home-layout {
  margin-top: 24px;
  row-gap: 20px;
  align-items: flex-start;
}

.home-main .home-layout > .home-layout__main,
.home-main .home-layout > .home-layout__sidebar {
  margin: 0 !important;
}

.home-main .home-layout .home-layout__columns {
  align-items: flex-start;
  row-gap: 20px;
}

.home-main .home-layout .home-layout__columns > [class*="col-"] > .bloques,
.home-main .home-layout .home-layout__sidebar.bloques {
  margin: 0 !important;
}

.home-main .home-layout .widgets-prueba .widget:first-child > br:first-child {
  display: none;
}

.home-main .home-layout .home-layout__sidebar .external-link:first-child {
  margin-top: 0 !important;
}

@media (max-width: 991px) {
  .home-main .home-layout {
    margin-top: 18px;
    row-gap: 16px;
  }
}

/* Home sidebar links: single soft oval border (no nested rectangles) */
.home-main .home-layout__sidebar .external-link {
  border-radius: 24px !important;
  padding: 10px !important;
  border: 1px solid #cfdfd8 !important;
  background: #ffffff !important;
  box-shadow: 0 4px 12px rgba(17, 45, 36, 0.06) !important;
}

.home-main .home-layout__sidebar .external-link > a,
.home-main .home-layout__sidebar .external-link > figure {
  border: 0 !important;
  border-radius: 20px !important;
  background: transparent !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden;
}

.home-main .home-layout__sidebar .external-link > a > img,
.home-main .home-layout__sidebar .external-link > figure img {
  border: 0 !important;
  border-radius: 14px !important;
}

/* Menu 2: fixed and stable on all navigation */
:root {
  --ph-nav-offset: 104px;
}

#panel.navbar {
  position: fixed !important;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 1300;
}

body {
  padding-top: var(--ph-nav-offset) !important;
}

html {
  scroll-padding-top: var(--ph-nav-offset);
}

body.admin-bar #panel.navbar {
  top: 32px;
}

@media (max-width: 991px) {
  :root {
    --ph-nav-offset: 92px;
  }
}

@media (max-width: 782px) {
  body.admin-bar #panel.navbar {
    top: 46px;
  }
}

/* Footer credit bar: professional and elegant */
footer #powered-by {
  background: linear-gradient(135deg, #1c5a44 0%, #154332 100%) !important;
  border-top: 1px solid rgba(255, 255, 255, 0.14) !important;
  color: #f4faf7 !important;
  min-height: 58px;
}

footer #powered-by .container {
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-top: 10px !important;
  padding-bottom: 10px !important;
}

footer #powered-by small {
  display: inline-block;
  margin: 0;
  font-family: var(--font-heading);
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #f4faf7 !important;
  text-transform: uppercase;
}

/* Contact page (Elementor id 302): redesign */
#main-content .elementor-302 .elementor-section.elementor-section-boxed > .elementor-container {
  width: 100% !important;
  max-width: var(--container-max) !important;
}

#main-content .elementor-302 .elementor-element-307f43f .container.py-5 {
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
}

#main-content .elementor-302 .elementor-element-307f43f .row,
#main-content .elementor-302 .elementor-element-307f43f .col-md-12 {
  margin: 0 !important;
  padding: 0 !important;
}

#main-content .elementor-302 .elementor-element-307f43f .col-md-12 > .card.shadow-lg {
  background: linear-gradient(160deg, #f8fcfa 0%, #edf5f1 100%) !important;
  border: 1px solid #d2e4dc !important;
  border-radius: 24px !important;
  box-shadow: 0 22px 38px rgba(17, 52, 40, 0.12) !important;
  overflow: hidden;
}

#main-content .elementor-302 .elementor-element-307f43f .col-md-12 > .card.shadow-lg > .card-body {
  background: transparent !important;
  padding: clamp(1.2rem, 2.4vw, 2rem) !important;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 1rem;
  align-items: stretch;
}

#main-content .elementor-302 .elementor-element-307f43f h4.text-center.mb-4 {
  margin-bottom: 0.5rem !important;
  color: #143328 !important;
  font-family: var(--font-heading);
  font-size: clamp(1.1rem, 2.1vw, 1.5rem);
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  grid-column: 1 / -1;
}

#main-content .elementor-302 .elementor-element-307f43f .card-body > p.text-center {
  margin-bottom: 0.9rem !important;
  color: #4f6b61 !important;
  font-size: 0.98rem;
  grid-column: 1 / -1;
}

#main-content .elementor-302 .elementor-element-307f43f .card-body > hr {
  margin: 1rem 0 1.35rem !important;
  border: 0 !important;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, #b9d3c7 20%, #b9d3c7 80%, transparent 100%);
  grid-column: 1 / -1;
}

#main-content .elementor-302 .elementor-element-307f43f .card-body > .row {
  display: contents;
}

#main-content .elementor-302 .elementor-element-307f43f .card-body > .row > [class*="col-"] {
  grid-column: span 4;
  padding: 0 !important;
  margin: 0 !important;
  max-width: none !important;
  width: auto !important;
  flex: 0 0 auto !important;
}

#main-content .elementor-302 .elementor-element-307f43f .card-body .card.p-3.h-100.text-center {
  height: 100% !important;
  border: 1px solid #d8e8e1 !important;
  border-radius: 18px !important;
  background: #ffffff !important;
  box-shadow: 0 8px 18px rgba(17, 45, 36, 0.07) !important;
  padding: 1.2rem 1rem !important;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

@media (hover: hover) and (pointer: fine) {
  #main-content .elementor-302 .elementor-element-307f43f .card-body .card.p-3.h-100.text-center:hover {
    transform: translateY(-3px);
    border-color: #bdd8cd !important;
    box-shadow: 0 14px 24px rgba(17, 45, 36, 0.12) !important;
  }
}

#main-content .elementor-302 .elementor-element-307f43f .card.p-3 .d-flex.justify-content-center.mb-3 {
  margin-bottom: 0.85rem !important;
}

#main-content .elementor-302 .elementor-element-307f43f .card.p-3 i.fa {
  width: 56px;
  height: 56px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.35rem !important;
  color: #1f5f49 !important;
  background: linear-gradient(165deg, #edf6f2 0%, #ddeee6 100%);
  box-shadow: inset 0 0 0 1px #cfe2d9;
}

#main-content .elementor-302 .elementor-element-307f43f .card.p-3 h5 {
  margin-bottom: 0.55rem;
  color: #163b2e !important;
  font-family: var(--font-heading);
  font-size: 1.03rem;
  font-weight: 700;
  line-height: 1.35;
  min-height: 2.7em;
}

#main-content .elementor-302 .elementor-element-307f43f .card.p-3 p {
  margin-bottom: 0.35rem !important;
  color: #4f6c62 !important;
  font-size: 0.94rem;
}

#main-content .elementor-302 .elementor-element-307f43f .card.p-3 a {
  color: #1f5f49 !important;
  font-weight: 700;
  text-decoration: none;
}

#main-content .elementor-302 .elementor-element-307f43f .card.p-3 a:hover {
  color: #13382b !important;
  text-decoration: underline;
}

#main-content .elementor-302 .elementor-element-250722f {
  margin-top: 1.7rem;
}

#main-content .elementor-302 .elementor-element-4d910cf .elementor-heading-title {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  color: #143328 !important;
  font-family: var(--font-heading);
  font-size: clamp(1.28rem, 2.2vw, 1.72rem);
  letter-spacing: 0.02em;
}

#main-content .elementor-302 .elementor-element-4d910cf .elementor-heading-title::before {
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: #1f5f49;
  box-shadow: 0 0 0 6px rgba(31, 95, 73, 0.2);
}

#main-content .elementor-302 .elementor-element-675bd1b > .elementor-widget-container {
  margin: 0 !important;
  padding: 0.9rem !important;
  border-radius: 24px !important;
  border: 1px solid #d1e2db !important;
  background: linear-gradient(170deg, #f9fcfb 0%, #eef5f2 100%) !important;
  box-shadow: 0 18px 30px rgba(17, 45, 36, 0.11) !important;
}

#main-content .elementor-302 .elementor-element-675bd1b .elementor-custom-embed {
  border-radius: 16px;
  overflow: hidden;
}

#main-content .elementor-302 .elementor-element-675bd1b iframe {
  width: 100% !important;
  min-height: 420px !important;
  border: 0;
}

@media (max-width: 991px) {
  #main-content .elementor-302 .elementor-element-307f43f .card-body > .row > [class*="col-"] {
    grid-column: span 6;
  }

  #main-content .elementor-302 .elementor-element-675bd1b iframe {
    min-height: 340px !important;
  }
}

@media (max-width: 640px) {
  #main-content .elementor-302 .elementor-element-307f43f .card-body > .row > [class*="col-"] {
    grid-column: 1 / -1;
  }

  #main-content .elementor-302 .elementor-element-307f43f .card.p-3 h5 {
    min-height: 0;
  }

  #main-content .elementor-302 .elementor-element-675bd1b iframe {
    min-height: 300px !important;
  }
}

