/* Generado por PublicThemeService — no editar a mano. */
body.public-site {
    --public-primary: #0b4f6c;
    --public-secondary: #2d6a8f;
    --public-accent: #00808a;
    --public-background: #f8f9fa;
    --public-section-bg: #f8f9fa;
    --public-text: #0b2545;
    --public-text-muted: #44607d;
    --public-link: #0b4f6c;
    --public-button: #0b4f6c;
    --public-border: #cbd5e0;
    --public-header-bg: #ffffff;
    --public-footer-bg: #e6eef5;
    --public-sidebar-bg: #edf3f8;
    --public-menu-bg: #ffffff;
    --public-multinivel-bg: #f2f7fb;
    --public-menu-hover: #d9e6f0;
    --public-header-text: #0b2545;
    --public-menu-text: #0b2545;
    --public-menu-hover-text: #0b2545;
    --public-multinivel-text: #0b2545;
    --public-footer-text: #0b2545;
    --public-sidebar-text: #0b2545;
    --public-button-text: #b7c5cc;

    /* Puente con los tokens del layout base del sitio público. */
    --bg-main: var(--public-background);
    --bg-card: var(--public-section-bg);
    --bg-input: var(--public-background);
    --text-main: var(--public-text);
    --text-muted: var(--public-text-muted);
    --accent: var(--public-accent);
    --accent-hover: #24929a;
    --border-color: var(--public-border);
    --border-soft: rgba(203, 213, 224, .18);
    --bs-body-color: var(--public-text);
    --bs-body-bg: var(--public-background);
    --bs-secondary-color: var(--public-text-muted);
    --bs-border-color: var(--public-border);
    --bs-link-color: var(--public-link);
    --bs-link-hover-color: var(--accent-hover);
    background-color: var(--public-background);
    color: var(--public-text);
}
body.public-site a { color: var(--public-link); }
body.public-site a:hover,
body.public-site a:focus-visible { color: var(--accent-hover); }

/* Cabecera */
body.public-site .navbar-main { background-color: var(--public-header-bg); border-bottom-color: var(--public-border); color: var(--public-header-text); }
body.public-site .navbar-main .text-muted,
body.public-site .navbar-main small { color: #44607d; }

/* Menú principal: el texto es configurable, no heredado */
body.public-site .navbar .nav-link,
body.public-site .navbar .nav-link .split-link,
body.public-site .navbar .nav-link-parent { color: var(--public-menu-text); }
body.public-site .navbar .nav-link:hover,
body.public-site .navbar .nav-link:focus-visible,
body.public-site .navbar .nav-link.active,
body.public-site .navbar .nav-link:hover .split-link,
body.public-site .navbar .nav-link-parent:hover .split-link { color: var(--public-menu-hover-text); }
body.public-site .navbar .nav-link:hover,
body.public-site .navbar .nav-link:focus-visible,
body.public-site .navbar .nav-link.active { background-color: var(--public-menu-hover); }
body.public-site .navbar .nav-link .menu-caret { color: inherit; }
body.public-site .navbar-collapse { background-color: var(--public-menu-bg); }
body.public-site .navbar-collapse .text-muted,
body.public-site .navbar-collapse small { color: #44607d; }

/* Desplegables y multinivel */
body.public-site .navbar .dropdown-menu,
body.public-site .navbar .dropdown-submenu > .dropdown-menu { background-color: var(--public-multinivel-bg); border-color: var(--public-border); color: var(--public-multinivel-text); }
body.public-site .navbar .dropdown-menu .dropdown-item,
body.public-site .navbar .dropdown-menu a,
body.public-site .navbar .dropdown-item-parent { color: var(--public-multinivel-text); }
body.public-site .navbar .dropdown-menu .dropdown-item:hover,
body.public-site .navbar .dropdown-menu a:hover,
body.public-site .navbar .dropdown-item-parent:hover { background-color: var(--public-menu-hover); color: var(--public-menu-hover-text); }

/* Pie y barra lateral */
body.public-site .footer { background-color: var(--public-footer-bg); border-top-color: var(--public-border); color: var(--public-footer-text); }
body.public-site .footer h5,
body.public-site .footer h6,
body.public-site .footer a { color: var(--public-footer-text); }
body.public-site .footer .text-muted,
body.public-site .footer small { color: #44607d !important; }
body.public-site .sidebar,
body.public-site .public-sidebar { background-color: var(--public-sidebar-bg); color: var(--public-sidebar-text); }body.public-site .btn-accent,
body.public-site .btn-accent i,
body.public-site .btn-accent span { color: var(--public-button-text); }
body.public-site .btn-accent { background-color: var(--public-button); border-color: var(--public-button); }
body.public-site .btn-accent:hover,
body.public-site .btn-accent:focus-visible { background-color: #2d6881; border-color: #2d6881; color: #ffffff; }
body.public-site .btn-primary,
body.public-site .btn-primary i,
body.public-site .btn-primary span { color: #ffffff; }
body.public-site .btn-primary { background-color: var(--public-primary); border-color: var(--public-primary); }
body.public-site .btn-primary:hover,
body.public-site .btn-primary:focus-visible { background-color: #2d6881; border-color: #2d6881; color: #ffffff; }
body.public-site .btn-nav-ghost { color: var(--public-menu-text); border-color: var(--public-border); }
body.public-site .btn-nav-ghost:hover,
body.public-site .btn-nav-ghost:focus-visible { color: var(--public-menu-hover-text); border-color: var(--public-accent); }
body.public-site .btn-nav-icon { color: var(--public-menu-text); border-color: var(--public-border); }
body.public-site .user-chip { color: var(--public-header-text); }
body.public-site .user-chip .user-role { color: #44607d; }
/* El atenuado usa el color secundario, pero sólo si es legible: si no, manda
   el texto atenuado ya ajustado. */
body.public-site .text-muted,
body.public-site .form-text,
body.public-site small.text-muted { color: var(--public-text-muted) !important; }
body.public-site .brand-logo { max-height: 44px; width: auto; }
body.public-site .brand-logo--footer { max-height: 36px; }
body.public-site .brand-logo--sidebar { max-height: 32px; }
body.public-site .brand-logo--menu { max-height: 40px; width: auto; }

/* CSS personalizado — se carga sólo en la web pública */
body.public-site /* ============================================
       VARIABLES CSS — PALETA COMPLETA
       ============================================ */
    :root {
      --color-naranja-oscuro:  #C46A00;
      --color-naranja-dorado:  #F0B429;
      --color-amarillo:        #FDE047;
      --color-amarillo-claro:  #FEF08A;
      --color-crema:           #FFFFF0;
      --color-verde-medio:     #4B8B5A;
      --color-verde-oscuro:    #1B5E20;   /* ← HEADER / NAVBAR */
      --color-verde-muy-oscuro:#0D3B0D;   /* ← FOOTER */
      --color-verde-negro:     #041A04;
    }
body.public-site /* ============================================
       CLASSES UTILITARIAS BOOTSTRAP 5
       ============================================ */

    /* Backgrounds */
    .bg-naranja-oscuro { background-color: var(--color-naranja-oscuro)  !important; }
body.public-site .bg-naranja-dorado { background-color: var(--color-naranja-dorado)  !important; }
body.public-site .bg-amarillo { background-color: var(--color-amarillo)        !important; }
body.public-site .bg-amarillo-claro { background-color: var(--color-amarillo-claro)  !important; }
body.public-site .bg-crema { background-color: var(--color-crema)           !important; }
body.public-site .bg-verde-medio { background-color: var(--color-verde-medio)     !important; }
body.public-site .bg-verde-oscuro { background-color: var(--color-verde-oscuro)    !important; }
body.public-site .bg-verde-muy-oscuro { background-color: var(--color-verde-muy-oscuro)!important; }
body.public-site .bg-verde-negro { background-color: var(--color-verde-negro)     !important; }
body.public-site /* Text Colors */
    .text-naranja-oscuro { color: var(--color-naranja-oscuro)  !important; }
body.public-site .text-naranja-dorado { color: var(--color-naranja-dorado)  !important; }
body.public-site .text-amarillo { color: var(--color-amarillo)        !important; }
body.public-site .text-amarillo-claro { color: var(--color-amarillo-claro)  !important; }
body.public-site .text-verde-medio { color: var(--color-verde-medio)     !important; }
body.public-site .text-verde-oscuro { color: var(--color-verde-oscuro)    !important; }
body.public-site .text-verde-muy-oscuro { color: var(--color-verde-muy-oscuro)!important; }
body.public-site /* Buttons */
    .btn-naranja-oscuro {
      background-color: var(--color-naranja-oscuro);
      border-color: var(--color-naranja-oscuro);
      color: #fff;
    }
body.public-site .btn-naranja-oscuro:hover, body.public-site .btn-naranja-oscuro:focus {
      background-color: #a85a00;
      border-color: #a85a00;
      color: #fff;
    }
body.public-site .btn-naranja-dorado {
      background-color: var(--color-naranja-dorado);
      border-color: var(--color-naranja-dorado);
      color: #000;
    }
body.public-site .btn-naranja-dorado:hover, body.public-site .btn-naranja-dorado:focus {
      background-color: #d9a020;
      border-color: #d9a020;
      color: #000;
    }
body.public-site .btn-verde-medio {
      background-color: var(--color-verde-medio);
      border-color: var(--color-verde-medio);
      color: #fff;
    }
body.public-site .btn-verde-medio:hover {
      background-color: #3a7048;
      border-color: #3a7048;
      color: #fff;
    }
body.public-site .btn-verde-oscuro {
      background-color: var(--color-verde-oscuro);
      border-color: var(--color-verde-oscuro);
      color: #fff;
    }
body.public-site .btn-verde-oscuro:hover {
      background-color: #144a18;
      border-color: #144a18;
      color: #fff;
    }
body.public-site .btn-outline-crema {
      color: var(--color-crema);
      border-color: var(--color-crema);
    }
body.public-site .btn-outline-crema:hover {
      background-color: var(--color-crema);
      color: var(--color-verde-oscuro);
    }
body.public-site /* ============================================
       HEADER / NAVBAR — #1B5E20
       ============================================ */
    .navbar-principal {
      background-color: var(--color-verde-oscuro) !important;
      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
      padding: 0.8rem 0;
    }
body.public-site .navbar-principal .navbar-brand {
      color: var(--color-amarillo) !important;
      font-weight: 800;
      font-size: 1.5rem;
      letter-spacing: 0.5px;
    }
body.public-site .navbar-principal .nav-link {
      color: var(--color-crema) !important;
      font-weight: 500;
      padding: 0.5rem 1rem !important;
      border-radius: 0.375rem;
      transition: all 0.25s ease;
    }
body.public-site .navbar-principal .nav-link:hover, body.public-site .navbar-principal .nav-link.active {
      color: var(--color-amarillo) !important;
      background-color: rgba(255, 255, 255, 0.1);
    }
body.public-site .navbar-principal .navbar-toggler {
      border-color: var(--color-crema);
    }
body.public-site .navbar-principal .navbar-toggler-icon {
      background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255,255,240,1)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
    }
body.public-site /* Sub-header / Barra superior */
    .top-bar {
      background-color: var(--color-verde-oscuro);
      border-bottom: 1px solid rgba(255, 255, 240, 0.15);
      font-size: 0.85rem;
    }
body.public-site .top-bar a {
      color: var(--color-crema);
      text-decoration: none;
      transition: color 0.2s;
    }
body.public-site .top-bar a:hover {
      color: var(--color-amarillo);
    }
body.public-site /* ============================================
       HERO SECTION
       ============================================ */
    .hero-section {
      background: linear-gradient(
        135deg,
        var(--color-verde-oscuro) 0%,
        var(--color-verde-medio) 50%,
        var(--color-naranja-dorado) 100%
      );
      min-height: 500px;
      position: relative;
      overflow: hidden;
    }
body.public-site .hero-section::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0; bottom: 0;
      background: radial-gradient(circle at 30% 50%, rgba(254, 240, 138, 0.15) 0%, transparent 60%);
    }
body.public-site /* ============================================
       CARDS
       ============================================ */
    .card-servicio {
      border: none;
      border-radius: 1rem;
      overflow: hidden;
      box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
      transition: transform 0.3s ease, box-shadow 0.3s ease;
      height: 100%;
    }
body.public-site .card-servicio:hover {
      transform: translateY(-8px);
      box-shadow: 0 12px 30px rgba(27, 94, 32, 0.2);
    }
body.public-site .card-servicio .card-header-icon {
      width: 70px;
      height: 70px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.8rem;
      margin: 0 auto;
    }
body.public-site /* ============================================
       FOOTER — #0D3B0D
       ============================================ */
    .footer-principal {
      background-color: var(--color-verde-muy-oscuro) !important;
      color: var(--color-crema);
    }
body.public-site .footer-principal h5 {
      color: var(--color-amarillo);
      font-weight: 700;
      margin-bottom: 1.2rem;
      position: relative;
      padding-bottom: 0.6rem;
    }
body.public-site .footer-principal h5::after {
      content: '';
      position: absolute;
      bottom: 0;
      left: 0;
      width: 40px;
      height: 3px;
      background-color: var(--color-naranja-dorado);
      border-radius: 2px;
    }
body.public-site .footer-principal a {
      color: var(--color-crema);
      text-decoration: none;
      opacity: 0.8;
      transition: all 0.2s ease;
    }
body.public-site .footer-principal a:hover {
      color: var(--color-amarillo);
      opacity: 1;
      padding-left: 5px;
    }
body.public-site .footer-principal .footer-bottom {
      border-top: 1px solid rgba(255, 255, 240, 0.1);
      background-color: rgba(0, 0, 0, 0.2);
    }
body.public-site .footer-principal .social-icon {
      width: 40px;
      height: 40px;
      border-radius: 50%;
      background-color: rgba(255, 255, 240, 0.1);
      display: inline-flex;
      align-items: center;
      justify-content: center;
      color: var(--color-crema);
      font-size: 1.1rem;
      transition: all 0.3s ease;
    }
body.public-site .footer-principal .social-icon:hover {
      background-color: var(--color-naranja-dorado);
      color: var(--color-verde-muy-oscuro);
      transform: translateY(-3px);
      padding-left: 0;
    }
body.public-site /* ============================================
       SECCIONES GENERALES
       ============================================ */
    .section-title {
      position: relative;
      display: inline-block;
      margin-bottom: 2.5rem;
    }
body.public-site .section-title::after {
      content: '';
      position: absolute;
      bottom: -8px;
      left: 0;
      width: 60px;
      height: 4px;
      background-color: var(--color-naranja-dorado);
      border-radius: 2px;
    }
body.public-site .feature-icon {
      width: 50px;
      height: 50px;
      border-radius: 0.75rem;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.3rem;
    }

