@font-face { font-family: Manrope; font-style: normal; font-weight: 400; font-display: swap; src: url('/fonts/manrope/manrope-400.ttf') format('truetype'); }
@font-face { font-family: Manrope; font-style: normal; font-weight: 600; font-display: swap; src: url('/fonts/manrope/manrope-600.ttf') format('truetype'); }
@font-face { font-family: Manrope; font-style: normal; font-weight: 700; font-display: swap; src: url('/fonts/manrope/manrope-700.ttf') format('truetype'); }
.public-site { --public-bg: #f5f4ef; --public-ink: #1c302f; --public-muted: #626e68; --public-bronze: #976c39; --public-line: #dddfd5; background: var(--public-bg); color: var(--public-ink); font-family: Manrope, 'Segoe UI', sans-serif; }
.public-site .site-container { max-width: 1376px; padding-inline: 40px; }
.public-site .site-nav { min-height: 92px; background: var(--public-bg); border: 0; }
.public-site .site-brand img { width: 114px; mix-blend-mode: multiply; }
.public-site .site-nav .nav-link { color: #3f4c46; font-size: .8rem; font-weight: 600; }
.public-site .btn-nav-contact { padding: .85rem 1.2rem; background: var(--public-ink); border-color: var(--public-ink); border-radius: 3px; font-size: .8rem; }
.public-site .eyebrow { margin-bottom: 1.4rem; color: var(--public-bronze); font-size: .67rem; letter-spacing: .14em; font-weight: 700; }
.public-site .eyebrow-mark { width: 23px; height: 1px; background: var(--public-bronze); }
.public-site .btn-gold { display: inline-flex; justify-content: space-between; align-items: center; gap: 1.8rem; padding: .95rem 1.3rem; border: 1px solid var(--public-ink); border-radius: 3px; background: var(--public-ink); color: #fff; font-size: .8rem; font-weight: 600; transition: background .2s, transform .2s; }
.public-site .btn-gold:hover { background: #34514b; transform: translateY(-2px); }
.public-site .btn-gold span { color: #d8b581; font-size: 1.15rem; line-height: 1; }

/* Shared visual language for the public website, including editorial pages. */
.public-site {
  --cdim-ink: var(--public-ink); --cdim-ink-soft: #213c36; --cdim-brass: var(--public-bronze);
  --cdim-paper: #e9ece4; --cdim-muted: var(--public-muted); --cdim-text: var(--public-ink);
  --bs-body-bg: var(--public-bg); --bs-body-bg-rgb: 245, 244, 239;
  --bs-body-color: var(--public-ink); --bs-body-color-rgb: 28, 48, 47;
  --bs-secondary-color: var(--public-muted); --bs-secondary-color-rgb: 98, 110, 104;
  --bs-tertiary-bg: #eceee6; --bs-tertiary-bg-rgb: 236, 238, 230;
  --bs-border-color: var(--public-line);
}
.public-site h1, .public-site h2, .public-site h3, .public-site h4 { font-family: Manrope, 'Segoe UI', sans-serif; font-weight: 600; letter-spacing: -.035em; }
.public-site .page-hero { color: var(--public-ink); background: var(--public-bg); border-bottom: 1px solid var(--public-line); }
.public-site .page-hero::after { display: none; }
.public-site .page-hero-content { padding-block: clamp(2.5rem, 5vw, 4.5rem); }
.public-site .page-hero h1 { max-width: 960px; font-size: clamp(2.3rem, 4.3vw, 3.8rem); line-height: 1.13; letter-spacing: -.05em; }
.public-site .course-detail-hero h1 { font-size: clamp(1.75rem, 3vw, 2.5rem); line-height: 1.22; letter-spacing: -.035em; }
.public-site .page-hero-lead { max-width: 760px; color: var(--public-muted); font-size: .98rem; line-height: 1.9; }
/* Keep article introductions close to their content instead of stacking section spacing. */
.public-site .public-document .page-hero-content { padding-top: clamp(1.75rem, 2.5vw, 2.5rem); padding-bottom: 1.5rem; }
.public-site .public-document > .page-section { padding-top: 1.75rem; padding-bottom: clamp(2rem, 4vw, 3.5rem); }
.public-site .hero-secondary-link { color: var(--public-ink); font-size: .8rem; font-weight: 600; }
.public-site .hero-secondary-link:hover { color: var(--public-bronze); }
.public-site .section-jumps { gap: .6rem 1.8rem; }
.public-site .section-jumps a { color: var(--public-bronze); font-size: .8rem; }
/* Compact introductions for the four public overview pages. */
.public-site .page-hero-overview .page-hero-content { display: grid; gap: 1.5rem; padding-block: clamp(2rem, 4vw, 3.5rem); }
.public-site .page-hero-overview .eyebrow { margin-bottom: 1.1rem; }
.public-site .page-hero-overview h1 { font-size: clamp(2.1rem, 3.6vw, 3.25rem); line-height: 1.14; }
.public-site .page-hero-overview .page-hero-lead { margin: 0; line-height: 1.75; }
.public-site .page-hero-overview .hero-actions { margin-top: 1.4rem; gap: 1rem 1.5rem; }
.public-site .page-hero-overview .page-hero-summary > .btn { margin-top: 1.4rem; }
.public-site .page-hero-overview .section-jumps { margin-top: .25rem; }
@media (min-width: 992px) {
  .public-site .page-hero-overview .page-hero-content { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); column-gap: clamp(2.5rem, 5vw, 4.5rem); align-items: center; }
  .public-site .page-hero-overview .page-hero-heading, .public-site .page-hero-overview .page-hero-summary { min-width: 0; }
  .public-site .page-hero-overview .page-hero-summary { padding-top: 1.75rem; }
  .public-site .page-hero-overview .section-jumps { grid-column: 1 / -1; }
}
.public-site .hero-course-facts dt, .public-site .hero-course-facts small { color: var(--public-muted); }
.public-site .hero-course-facts dd { color: var(--public-ink); }
/* Course introduction and registration share the first section. */
.public-site .course-detail-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); align-items: start; gap: clamp(2rem, 4.5vw, 4rem); }
.course-detail-intro, .course-booking { min-width: 0; }
.public-site .course-catalog-back { display: inline-flex; align-items: center; gap: .6rem; margin-bottom: 2rem; color: var(--public-muted); font-size: .78rem; text-decoration: none; }
.public-site .course-catalog-back:hover { color: var(--public-bronze); text-decoration: underline; }
.public-site .course-detail-intro .eyebrow { margin-bottom: 1rem; }
.public-site .course-detail-intro .page-hero-lead { margin-top: 1.25rem; }
.public-site .course-detail-intro .hero-course-facts { padding-top: 1.3rem; border-top: 1px solid var(--public-line); }
.public-site .course-detail-intro .hero-actions { gap: 1rem 1.5rem; margin-top: 1.5rem; }
.public-site .course-booking { padding: clamp(1.25rem, 2.3vw, 2rem); border: 1px solid #d8ddd3; border-top: 3px solid var(--public-bronze); border-radius: 8px; background: #fcfcf9; box-shadow: 0 12px 32px #1c302f08; }
.course-booking-heading { display: flex; align-items: center; gap: .85rem; padding-bottom: 1.35rem; }
.public-site .course-booking-heading h2 { margin: 0; font-size: clamp(1.15rem, 1.8vw, 1.4rem); line-height: 1.3; }
.course-booking-heading p { margin: .4rem 0 0; color: var(--public-muted); font-size: .76rem; line-height: 1.6; }
.course-booking-icon { display: grid; place-items: center; flex: 0 0 42px; height: 42px; border: 1px solid #e8dfd0; border-radius: 10px; color: #896537; background: #f5f0e6; }
.course-booking-edition { padding-top: 1.25rem; border-top: 1px solid var(--public-line); }
.course-booking-edition + .course-booking-edition { margin-top: 1.5rem; }
.course-booking-availability { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem .8rem; color: var(--public-muted); font-size: .7rem; }
.course-booking-status { padding: .3rem .55rem; border-radius: 4px; background: #efeee7; color: #655e50; font-weight: 600; }
.course-booking-status.is-open { background: #e8f0e7; color: #355e42; }
.public-site .course-booking-edition h3 { margin: 1rem 0; font-size: 1.3rem; line-height: 1.4; }
.course-booking-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem 1.25rem; margin: 0; }
.course-booking-details dt { margin-bottom: .25rem; color: var(--public-muted); font-size: .72rem; font-weight: 400; }
.course-booking-details dd { margin: 0; font-size: .83rem; font-weight: 600; overflow-wrap: anywhere; }
.course-booking-location { grid-column: 1 / -1; }
.course-booking-timezone { margin: .75rem 0 1rem; color: var(--public-muted); font-size: .7rem; overflow-wrap: anywhere; }
.course-booking-deadline { padding: .8rem .9rem; background: #f2f3ec; border-radius: 4px; }
.course-booking-deadline p { margin: 0; color: #566158; font-size: .72rem; line-height: 1.8; }
.course-booking-deadline strong { color: var(--public-ink); font-weight: 600; }
.course-booking-action { margin-top: 1rem; }
.public-site .course-booking .btn { display: block; width: 100%; padding-block: .8rem; white-space: normal; }
.course-booking-action p { margin: 0 0 .75rem; font-size: .8rem; line-height: 1.7; }
.course-booking-action .course-booking-notice { margin: 0; padding: .75rem; background: #f4efe6; border-left: 2px solid var(--public-bronze); color: #685431; }
.course-booking-help { margin: 1.25rem 0 0; padding-top: 1rem; border-top: 1px solid var(--public-line); color: var(--public-muted); font-size: .72rem; line-height: 1.8; }
.course-booking-help a { color: var(--public-ink); text-underline-offset: 3px; }
.course-booking-empty { padding-top: 1.25rem; border-top: 1px solid var(--public-line); }
.public-site .course-booking-empty h3 { font-size: 1.05rem; line-height: 1.5; }
.course-booking-empty p { margin: .75rem 0 1.25rem; color: var(--public-muted); font-size: .83rem; line-height: 1.8; }
#ediciones, #programa { scroll-margin-top: 2rem; }
@media (max-width: 991.98px) {
  .public-site .course-detail-grid { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
  .public-site .course-catalog-back { margin-bottom: 1.5rem; }
}
@media (max-width: 359.98px) {
  .course-booking-details { grid-template-columns: minmax(0, 1fr); }
  .course-booking-heading { align-items: start; gap: .65rem; }
  .course-booking-icon { flex-basis: 34px; height: 34px; }
}
.public-site .mission-grid h2, .public-site .service-detail h2, .public-site .section-heading h2, .public-site .course-intro h2, .public-site .course-cta h2 { font-family: Manrope, sans-serif; font-weight: 600; line-height: 1.2; letter-spacing: -.045em; }
.public-site .mission-grid h2 { font-size: clamp(2rem, 3vw, 3rem); }
.public-site .service-detail h2 { font-size: clamp(1.6rem, 2.5vw, 2.3rem); }
.public-site .page-copy { color: var(--public-muted); font-size: .94rem; line-height: 1.9; }
.public-site .page-section-paper { background: #e9ece4; }
.public-site .courses-overview .page-hero-content { padding-block: clamp(2rem, 3.4vw, 3rem); }
.public-site .courses-overview-grid { display: grid; gap: clamp(2rem, 4vw, 4rem); }
.public-site .courses-overview-copy { align-self: center; min-width: 0; }
.public-site .courses-overview-copy .eyebrow { margin-bottom: 1rem; }
.public-site .courses-overview-copy h1 { font-size: clamp(2.15rem, 3.8vw, 3.45rem); }
.public-site .courses-overview-copy .page-hero-lead { margin-top: 1.2rem; line-height: 1.7; }
.public-site .courses-overview-copy > .btn { margin-top: 1.35rem; }
.public-site .courses-resources { min-width: 0; }
.public-site .courses-resources-heading { margin-bottom: 1rem; }
.public-site .courses-resources-heading .eyebrow { margin-bottom: .55rem; }
.public-site .courses-resources-heading h2 { margin: 0; font-size: clamp(1.45rem, 2.2vw, 2rem); line-height: 1.2; }
.public-site .courses-resources-heading > p:last-child { max-width: 620px; margin: .65rem 0 0; color: var(--public-muted); font-size: .78rem; line-height: 1.55; }
.public-site .courses-resource-list { display: grid; gap: .75rem; }
.public-site .training-resource-card { display: grid; grid-template-columns: clamp(142px, 11vw, 168px) minmax(0, 1fr); min-height: 154px; overflow: hidden; box-shadow: 0 8px 24px rgba(28, 48, 47, .045); }
.public-site .training-resource-cover { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.public-site .training-resource-card .card-body { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; padding: 1rem 1.1rem; }
.public-site .training-resource-type { margin: 0 0 .35rem; color: var(--public-bronze); font-size: .62rem; font-weight: 700; letter-spacing: .08em; line-height: 1.3; text-transform: uppercase; }
.public-site .training-resource-card h3 { margin: 0 0 .35rem; font-size: clamp(1rem, 1.35vw, 1.16rem); line-height: 1.28; }
.public-site .training-resource-description { margin: 0 0 .6rem; color: var(--public-muted); font-size: .72rem; line-height: 1.45; }
.public-site .training-resource-card .text-link { margin-top: auto; font-size: .72rem; }
.public-site .course-catalog-section { scroll-margin-top: 5rem; padding-block: clamp(2.5rem, 4.5vw, 4rem); }
.public-site .course-catalog-toolbar { display: grid; gap: 1.25rem 2rem; align-items: end; margin-bottom: 2rem; }
.public-site .course-catalog-toolbar .eyebrow { margin-bottom: .55rem; }
.public-site .course-catalog-toolbar h2 { margin: 0; font-size: clamp(1.8rem, 2.8vw, 2.6rem); }
.public-site .course-catalog-search { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .65rem; width: 100%; }
@media (min-width: 768px) {
  .public-site .courses-overview-grid { grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); align-items: start; }
  .public-site .courses-resources { padding-left: clamp(1.75rem, 3.5vw, 3.5rem); border-left: 1px solid var(--public-line); }
  .public-site .course-catalog-toolbar { grid-template-columns: minmax(0, 1fr) minmax(360px, 520px); }
}
@media (max-width: 767.98px) {
  .public-site .courses-overview .page-hero-content { padding-block: 2rem; }
  .public-site .courses-overview-grid { gap: 2rem; }
  .public-site .courses-resources { padding-top: 1.75rem; border-top: 1px solid var(--public-line); }
  .public-site .training-resource-card { grid-template-columns: 118px minmax(0, 1fr); min-height: 142px; }
  .public-site .training-resource-card .card-body { padding: .85rem .9rem; }
  .public-site .training-resource-description { font-size: .69rem; }
  .public-site .course-catalog-toolbar { margin-bottom: 1.5rem; }
}
@media (max-width: 399.98px) {
  .public-site .training-resource-card { grid-template-columns: 104px minmax(0, 1fr); }
  .public-site .training-resource-description { display: none; }
}
.public-site .values-section { background: var(--public-bg); }
.public-site .value-card, .public-site .course-preview, .public-site .card, .public-site .service-media-card, .public-site .service-case-card { background: #f7f8f3; border-color: #d3d9cc; border-radius: 4px; }
.public-site .value-card h3, .public-site .course-preview h3, .public-site .news-preview h3 { font-family: Manrope, sans-serif; font-size: 1.25rem; font-weight: 600; letter-spacing: -.025em; }
.public-site .course-preview h3 { font-size: 1.1rem; line-height: 1.4; }
.public-site .course-preview { border-top-color: var(--public-bronze); }
.public-site .service-detail, .public-site .news-preview { border-color: var(--public-line); }
.public-site .service-detail-index { font-family: Manrope, sans-serif; font-size: .9rem; }
.public-site .value-card p, .public-site .course-preview > p, .public-site .news-preview p { color: var(--public-muted); }
.public-site .text-link, .public-site .card-link { color: var(--public-ink); font-size: .8rem; font-weight: 700; gap: 1rem; }
.public-site .text-link:hover, .public-site .card-link:hover { color: var(--public-bronze); }
.public-site .editorial-index, .public-site .public-empty { background: #eceee6; border-color: var(--public-bronze); }
.public-site .editorial-body h2 { font-family: Manrope, sans-serif; font-weight: 600; letter-spacing: -.035em; }
.public-site .form-control { min-height: 46px; border-color: #ccd2c7; border-radius: 3px; background: #fafbf6; color: var(--public-ink); font-size: .9rem; }
.public-site .form-control:focus { border-color: var(--public-bronze); box-shadow: 0 0 0 .2rem rgba(151,108,57,.15); }
.public-site .btn-primary { --bs-btn-bg: var(--public-ink); --bs-btn-border-color: var(--public-ink); --bs-btn-hover-bg: #34514b; --bs-btn-hover-border-color: #34514b; }
.public-site .btn-outline-primary { --bs-btn-color: var(--public-ink); --bs-btn-border-color: var(--public-ink); --bs-btn-hover-bg: var(--public-ink); --bs-btn-hover-border-color: var(--public-ink); }
.public-site .btn-primary, .public-site .btn-outline-primary { border-radius: 3px; font-size: .85rem; font-weight: 600; padding-inline: 1.15rem; }
.public-site .contact-section { background: #213c36; padding-block: 72px; }
.public-site .contact-section h2 { color: #f5f4ef; font-family: Manrope, sans-serif; font-size: clamp(2rem, 3vw, 2.8rem); font-weight: 600; letter-spacing: -.05em; }
.public-site .contact-section .eyebrow { color: #d2b487; }
.public-site .contact-description { color: #bfcfc5; font-size: .85rem; }
.public-site .btn-light-contact { background: #d6bb92; border-color: #d6bb92; color: #1c302f; padding: 1rem 1.3rem; border-radius: 3px; font-size: .8rem; }
.public-site .btn-light-contact:hover { color: #1c302f; background: #e7d0af; }
.public-site .site-footer { background: var(--public-bg); padding-top: 2.5rem; }
.public-site .footer-brand img { mix-blend-mode: multiply; width: 105px; }
.public-site .footer-main p, .public-site .footer-contact { font-size: .75rem; }
.public-site .site-nav .nav-link[aria-current='page'] { color: var(--public-bronze); }
.public-site .site-nav .nav-link[aria-current='page']:not(.nav-home) { text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1px; }
@media (min-width: 992px) and (max-height: 820px) { .public-site .site-nav { min-height: 80px; } }
@media (max-width: 1199.98px) { .public-site .site-container { padding-inline: 30px; } }
@media (max-width: 991.98px) { .public-site .site-nav { min-height: 78px; } }
@media (max-width: 767.98px) {
  .public-site .site-container { padding-inline: 22px; }
  .public-site .site-brand img { width: 96px; }
  .public-site .btn-gold { padding: .9rem 1.1rem; font-size: .76rem; }
  .public-site .contact-section { padding-block: 54px; }
  .public-site .footer-main { gap: 1.25rem; }
}
@media (max-width: 359.98px) { .public-site .site-container { padding-inline: 18px; } }
@media (prefers-reduced-motion: reduce) { .public-site .btn-gold:hover { transform: none; } }
