:root {
      color-scheme: light;

      --font-sans: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      --font-serif: "Cinzel", Georgia, "Times New Roman", serif;

      --color-ink-950: #061019;
      --color-ink-900: #071017;
      --color-ink-850: #0b1b25;
      --color-ink-800: #102734;
      --color-green-800: #173b35;
      --color-gold-500: #d4b24e;
      --color-gold-600: #b7922f;
      --color-gold-700: #917024;
      --color-paper-50: #fffdf8;
      --color-paper-100: #fbf8f1;
      --color-paper-200: #f4efe3;
      --color-text: #17130f;
      --color-muted: #6f6659;
      --color-line: rgba(183, 146, 47, .26);
      --color-line-dark: rgba(7, 16, 23, .1);
      --color-focus: #ffd86a;

      --container-width: 1140px;
      --radius-sm: .75rem;
      --radius-md: 1rem;
      --radius-lg: 1.35rem;
      --radius-xl: 1.65rem;
      --shadow-soft: 0 .75rem 1.8rem rgba(7, 16, 23, .08);
      --shadow-medium: 0 1.15rem 2.8rem rgba(7, 16, 23, .13);
      --shadow-strong: 0 1.35rem 3.25rem rgba(0, 0, 0, .24);
      --transition-base: 180ms ease;
    }

    html {
      scroll-behavior: smooth;
      scroll-padding-top: 7.5rem;
    }

    body {
      min-width: 320px;
      font-family: var(--font-sans);
      color: var(--color-text);
      background:
        radial-gradient(circle at 8% 0, rgba(212, 178, 78, .08), transparent 24rem),
        var(--color-paper-100);
      text-rendering: optimizeLegibility;
      -webkit-font-smoothing: antialiased;
    }

    img,
    svg {
      max-width: 100%;
      height: auto;
    }

    a {
      color: inherit;
    }

    h1,
    h2,
    h3,
    .serif-title {
      font-family: var(--font-serif);
      font-weight: 700;
    }

    .container,
    .container-lg,
    .container-xl {
      max-width: var(--container-width);
    }

    :where(a, button, input, select, textarea, .form-control, .form-select):focus-visible,
    .form-control:focus,
    .form-select:focus {
      outline: 3px solid var(--color-focus);
      outline-offset: 3px;
      box-shadow: none;
    }

    .skip-link {
      position: fixed;
      inset-block-start: .75rem;
      inset-inline-start: .75rem;
      z-index: 2000;
      transform: translateY(-145%);
      transition: transform var(--transition-base);
    }

    .skip-link:focus {
      transform: translateY(0);
    }

    .site-button {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: .55rem;
      min-height: 44px;
      padding: .72rem 1.15rem;
      border: 1px solid transparent;
      border-radius: .85rem;
      font-size: .9rem;
      font-weight: 850;
      line-height: 1;
      text-decoration: none;
      white-space: nowrap;
      cursor: pointer;
      transition:
        transform var(--transition-base),
        box-shadow var(--transition-base),
        background-color var(--transition-base),
        border-color var(--transition-base),
        color var(--transition-base);
    }

    .site-button:hover,
    .site-button:focus-visible {
      transform: translateY(-2px);
      text-decoration: none;
    }

    .site-button--primary {
      color: #12100a;
      background: linear-gradient(180deg, #e5c968 0%, var(--color-gold-500) 100%);
      border-color: rgba(255, 232, 162, .42);
      box-shadow: 0 .65rem 1.45rem rgba(183, 146, 47, .24), inset 0 1px 0 rgba(255, 255, 255, .38);
    }

    .site-button--primary:hover,
    .site-button--primary:focus-visible {
      color: #100d08;
      background: linear-gradient(180deg, #ecd57b 0%, #dcbc58 100%);
      box-shadow: 0 .9rem 1.9rem rgba(183, 146, 47, .31), inset 0 1px 0 rgba(255, 255, 255, .42);
    }

    .site-button--light-outline {
      color: #fff7dd;
      background: rgba(255, 255, 255, .055);
      border-color: rgba(255, 255, 255, .35);
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08);
      backdrop-filter: blur(8px);
    }

    .site-button--light-outline:hover,
    .site-button--light-outline:focus-visible {
      color: #111;
      background: #fff8e7;
      border-color: #fff8e7;
      box-shadow: 0 .85rem 1.9rem rgba(0, 0, 0, .22);
    }

    .site-button--soft {
      color: #16110c;
      background: #f8f0d7;
      border-color: rgba(183, 146, 47, .34);
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, .65);
    }

    .site-button--soft:hover,
    .site-button--soft:focus-visible {
      color: #111;
      background: #f0dfaa;
      border-color: rgba(183, 146, 47, .56);
      box-shadow: 0 .7rem 1.4rem rgba(7, 16, 23, .09);
    }

    .section {
      position: relative;
      padding-block: clamp(3.25rem, 6vw, 5rem);
    }

    .section-header {
      max-width: 42rem;
      margin-bottom: 1.65rem;
    }

    .section-kicker {
      display: inline-flex;
      align-items: center;
      gap: .45rem;
      margin-bottom: .65rem;
      color: var(--color-gold-700);
      font-size: .72rem;
      font-weight: 900;
      letter-spacing: .13em;
      text-transform: uppercase;
    }

    .section-title {
      margin: 0;
      color: #121820;
      font-size: clamp(1.58rem, 2.45vw, 2.15rem);
      line-height: 1.12;
      letter-spacing: -.035em;
    }

    .section-description {
      margin: .55rem 0 0;
      color: var(--color-muted);
      font-size: .95rem;
      line-height: 1.65;
    }

    .site-header {
      box-shadow: 0 .45rem 1.25rem rgba(7, 16, 23, .05);
    }

    .utility-bar {
      color: #f4e8c0;
      background: var(--color-ink-950);
      border-bottom: 1px solid rgba(212, 178, 78, .18);
      font-size: .76rem;
      font-weight: 750;
    }

    .utility-bar__content {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: .75rem;
      min-height: 2.25rem;
    }

    .utility-bar__text,
    .utility-bar__link {
      display: inline-flex;
      align-items: center;
      gap: .48rem;
      margin: 0;
    }

    .utility-bar i {
      color: var(--color-gold-500);
    }

    .utility-bar__link {
      text-decoration: none;
    }

    .utility-bar__link:hover,
    .utility-bar__link:focus {
      color: #fff3bf;
      text-decoration: underline;
    }

    .primary-navigation {
      background: rgba(255, 252, 246, .98);
      border-bottom: 1px solid var(--color-line-dark);
      backdrop-filter: blur(12px);
    }

    .primary-navigation .container {
      min-height: 86px;
    }

    .brand-logo {
      display: block;
      width: 196px;
      height: 58px;
      aspect-ratio: 868 / 256;
      object-fit: contain;
    }

    .brand-logo--placeholder {
      display: inline-grid;
      place-items: center;
      color: #171410;
      background: #f4efe3;
      border: 1px solid rgba(183, 146, 47, .35);
      font-family: var(--font-serif);
      font-weight: 900;
      font-size: 1.5rem;
    }

    .navbar-toggler {
      border-radius: .85rem;
      border-color: rgba(7, 16, 23, .16);
    }

    .navigation-menu__link {
      position: relative;
      padding: 1.35rem .9rem !important;
      color: #171410;
      font-size: .77rem;
      font-weight: 900;
      letter-spacing: .1em;
      text-transform: uppercase;
      transition: color var(--transition-base);
    }

    .navigation-menu__link:hover,
    .navigation-menu__link:focus,
    .navigation-menu__link.active {
      color: var(--color-gold-600);
    }

    .navigation-menu__link.active::after {
      content: "";
      position: absolute;
      inset-inline: .9rem;
      inset-block-end: .95rem;
      height: 2px;
      border-radius: 999px;
      background: linear-gradient(90deg, transparent, var(--color-gold-500), transparent);
    }

    .hero-section {
      position: relative;
      overflow: hidden;
      min-height: 610px;
      display: grid;
      align-items: center;
      color: #fff;
      background:
        radial-gradient(circle at 76% 12%, rgba(212, 178, 78, .2), transparent 21rem),
        radial-gradient(circle at 12% 84%, rgba(23, 59, 53, .55), transparent 22rem),
        linear-gradient(92deg, rgba(6, 16, 25, .98) 0%, rgba(10, 26, 36, .96) 48%, rgba(18, 58, 49, .9) 100%);
    }

    .hero-section::before {
      content: "";
      position: absolute;
      inset: 0;
      background:
        linear-gradient(90deg, rgba(7, 16, 23, .2), rgba(7, 16, 23, .68) 36%, rgba(7, 16, 23, .12)),
        url("data:image/svg+xml,%3Csvg width='760' height='440' viewBox='0 0 760 440' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%23f6e7b5' stroke-opacity='.13' stroke-width='2'%3E%3Cpath d='M70 440V140M115 440V92M160 440V140M48 140h136M70 92h90M260 440V164M318 440V110M376 440V164M236 164h164M260 110h116M510 440V154M574 440V82M638 440V154M486 154h176M510 82h128'/%3E%3Ccircle cx='115' cy='92' r='6'/%3E%3Ccircle cx='318' cy='110' r='6'/%3E%3Ccircle cx='574' cy='82' r='6'/%3E%3C/g%3E%3C/svg%3E") left center / auto 100% no-repeat;
      opacity: .54;
      pointer-events: none;
    }

    .hero-section::after {
      content: "";
      position: absolute;
      inset-inline: 0;
      inset-block-end: 0;
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(212, 178, 78, .65), transparent);
    }

    .hero-section__container {
      position: relative;
      z-index: 1;
    }

    .hero-copy {
      max-width: 38rem;
    }

    .hero-badge {
      display: inline-flex;
      align-items: center;
      gap: .45rem;
      padding: .47rem .82rem;
      border: 1px solid rgba(212, 178, 78, .45);
      border-radius: 999px;
      color: #ffe8a2;
      background: rgba(212, 178, 78, .1);
      font-size: .68rem;
      font-weight: 900;
      letter-spacing: .09em;
      text-transform: uppercase;
    }

    .hero-title {
      /* max-width: 13.4ch; */
      margin: 1.05rem 0 .85rem;
      font-size: clamp(2.05rem, 3.35vw, 3.35rem);
      line-height: 1.1;
      letter-spacing: -.04em;
    }

    .hero-description {
      max-width: 35rem;
      margin: 0 0 1.55rem;
      color: rgba(255, 255, 255, .82);
      font-size: .96rem;
      line-height: 1.72;
    }

    .hero-actions {
      display: flex;
      flex-wrap: wrap;
      gap: .85rem;
    }

    .hero-panel {
      position: relative;
      overflow: hidden;
      padding: clamp(1.15rem, 2vw, 1.45rem);
      border: 1px solid rgba(212, 178, 78, .55);
      border-radius: var(--radius-lg);
      color: #fff;
      background:
        radial-gradient(circle at 83% 11%, rgba(212, 178, 78, .16), transparent 10rem),
        linear-gradient(145deg, rgba(12, 26, 32, .97), rgba(9, 23, 29, .96));
      box-shadow: var(--shadow-strong);
    }

    .hero-panel::before {
      content: "";
      position: absolute;
      inset: .55rem;
      border: 1px solid rgba(255, 255, 255, .07);
      border-radius: calc(var(--radius-lg) - .4rem);
      pointer-events: none;
    }

    .hero-panel__header {
      position: relative;
      z-index: 1;
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(130px, 210px);
      align-items: center;
      gap: 1.35rem;
      margin-bottom: 1rem;
    }

    .hero-panel__title {
      max-width: 16rem;
      margin: .8rem 0 0;
      color: #fffaf0;
      font-size: clamp(1.25rem, 1.65vw, 1.65rem);
      line-height: 1.22;
      letter-spacing: -.025em;
    }

    .hero-panel__emblem {
      display: grid;
      place-items: center;
      min-height: 343px;
    }

    .hero-panel__image {
      width: min(100%, 338px);
      height: 150px;
      aspect-ratio: 338 / 343;
      object-fit: contain;
      filter: drop-shadow(0 .75rem 1.5rem rgba(0, 0, 0, .26));
    }

    .hero-panel__image--placeholder {
      width: min(100%, 338px);
      height: 343px;
      aspect-ratio: 338 / 343;
      border-radius: var(--radius-lg);
      border: 1px solid rgba(212, 178, 78, .45);
      display: grid;
      place-items: center;
      color: #f3df9c;
      font-family: var(--font-serif);
      font-size: 3rem;
      background: rgba(255,255,255,.035);
    }

    .formation-highlights {
      position: relative;
      z-index: 1;
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: .65rem;
      margin: 0;
      padding: 0;
      list-style: none;
    }

    .formation-highlights__item {
      min-height: 92px;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: .5rem;
      padding: .85rem .65rem;
      border: 1px solid rgba(255, 255, 255, .12);
      border-radius: var(--radius-sm);
      color: #fff;
      background: rgba(255, 255, 255, .047);
      text-align: center;
      transition:
        transform var(--transition-base),
        background-color var(--transition-base),
        border-color var(--transition-base);
    }

    .formation-highlights__item:hover,
    .formation-highlights__item:focus-within {
      transform: translateY(-2px);
      border-color: rgba(212, 178, 78, .45);
      background: rgba(255, 255, 255, .072);
    }

    .formation-highlights__icon {
      color: var(--color-gold-500);
      font-size: 1.25rem;
    }

    .formation-highlights__text {
      margin: 0;
      font-size: .72rem;
      font-weight: 820;
      line-height: 1.3;
    }

    .courses-section {
      background:
        radial-gradient(circle at 50% 0, rgba(212, 178, 78, .1), transparent 30rem),
        linear-gradient(180deg, var(--color-paper-200) 0%, #f8f2e6 100%);
    }

    .course-grid {
      row-gap: 1.45rem;
    }

    .course-card {
      height: 100%;
      overflow: hidden;
      display: flex;
      flex-direction: column;
      border: 1px solid rgba(183, 146, 47, .26);
      border-radius: var(--radius-xl);
      background: var(--color-paper-50);
      box-shadow: var(--shadow-soft);
      transition:
        transform var(--transition-base),
        box-shadow var(--transition-base),
        border-color var(--transition-base);
    }

    .course-card:hover,
    .course-card:focus-within {
      transform: translateY(-5px);
      border-color: rgba(183, 146, 47, .42);
      box-shadow: var(--shadow-medium);
    }

    .course-card__media {
      position: relative;
      aspect-ratio: 16 / 10;
      margin: 0;
      overflow: hidden;
      background: #e8dec2;
      border-bottom: 1px solid rgba(183, 146, 47, .32);
    }

    .course-card__image {
      width: 100%;
      height: 100%;
      display: block;
      object-fit: cover;
      transition: transform 360ms ease;
    }

    .course-card:hover .course-card__image,
    .course-card:focus-within .course-card__image {
      transform: scale(1.035);
    }

    .course-card__tag {
      position: absolute;
      inset-block-start: .85rem;
      inset-inline-start: .85rem;
      display: inline-flex;
      align-items: center;
      gap: .4rem;
      padding: .42rem .65rem;
      border-radius: 999px;
      color: #fff9e7;
      background: rgba(6, 16, 25, .72);
      border: 1px solid rgba(212, 178, 78, .34);
      font-size: .68rem;
      font-weight: 900;
      letter-spacing: .08em;
      text-transform: uppercase;
      backdrop-filter: blur(8px);
    }

    .course-card__body {
      flex: 1;
      display: flex;
      flex-direction: column;
      padding: 1.25rem;
    }

    .course-card__title {
      margin: 0 0 .55rem;
      color: #16110c;
      font-size: 1.02rem;
      line-height: 1.28;
      letter-spacing: -.018em;
    }

    .course-card__summary {
      margin: 0 0 1.1rem;
      color: #5d5660;
      font-size: .9rem;
      line-height: 1.55;
    }

    .course-card__investment {
      margin-top: auto;
      padding-top: 1rem;
      border-top: 1px solid rgba(183, 146, 47, .2);
    }

    .course-card__label {
      display: block;
      margin-bottom: .22rem;
      color: var(--color-gold-700);
      font-size: .72rem;
      font-weight: 900;
      letter-spacing: .11em;
      text-transform: uppercase;
    }

    .course-card__price {
      margin: 0 0 1rem;
      color: #0d473b;
      font-size: 1.65rem;
      line-height: 1;
      font-weight: 900;
      letter-spacing: -.04em;
    }

    .course-card__actions {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: .7rem;
    }

    .contact-section {
      background:
        radial-gradient(circle at 100% 0, rgba(23, 59, 53, .08), transparent 24rem),
        linear-gradient(180deg, #fffdf8, #fff);
    }

    .contact-info {
      height: 100%;
      padding: clamp(1.2rem, 2vw, 1.55rem);
      border: 1px solid rgba(212, 178, 78, .2);
      border-radius: var(--radius-lg);
      color: #fff;
      background:
        radial-gradient(circle at 18% 0, rgba(212, 178, 78, .12), transparent 13rem),
        linear-gradient(145deg, var(--color-ink-900), #0d2230);
      box-shadow: var(--shadow-medium);
    }

    .contact-info__title {
      margin: 0 0 .55rem;
      font-size: clamp(1.45rem, 2.35vw, 1.82rem);
      line-height: 1.12;
      letter-spacing: -.035em;
    }

    .contact-info__text {
      margin: 0 0 1rem;
      color: rgba(255, 255, 255, .72);
      font-size: .9rem;
      line-height: 1.62;
    }

    .contact-list {
      display: grid;
      gap: 0;
    }

    .contact-method {
      display: flex;
      gap: .85rem;
      padding: .88rem 0;
      border-top: 1px solid rgba(255, 255, 255, .1);
    }

    .contact-method:first-child {
      border-top: 0;
      padding-top: 0;
    }

    .contact-method__icon {
      flex: 0 0 2.35rem;
      width: 2.35rem;
      height: 2.35rem;
      display: grid;
      place-items: center;
      border: 1px solid rgba(212, 178, 78, .2);
      border-radius: var(--radius-sm);
      color: var(--color-gold-500);
      background: rgba(255, 255, 255, .06);
    }

    .contact-method__label {
      margin-bottom: .14rem;
      color: #f4df9d;
      font-size: .68rem;
      font-weight: 900;
      letter-spacing: .16em;
      text-transform: uppercase;
    }

    .contact-method__value {
      margin: 0;
      color: rgba(255, 255, 255, .9);
      font-size: .91rem;
      font-weight: 620;
      line-height: 1.45;
    }

    .message-form {
      height: 100%;
      padding: clamp(1.2rem, 2vw, 1.55rem);
      border: 1px solid rgba(183, 146, 47, .18);
      border-radius: var(--radius-lg);
      background: var(--color-paper-50);
      box-shadow: var(--shadow-soft);
    }

    .message-form__title {
      margin: 0 0 .5rem;
      color: #0d1c27;
      font-size: clamp(1.45rem, 2.2vw, 1.72rem);
      line-height: 1.12;
      letter-spacing: -.035em;
    }

    .message-form__description {
      margin: 0 0 1.1rem;
      color: var(--color-muted);
      font-size: .9rem;
      line-height: 1.6;
    }

    .message-form__fieldset {
      margin: 0;
      padding: 0;
      border: 0;
    }

    .form-label {
      margin-bottom: .35rem;
      color: #19140f;
      font-size: .76rem;
      font-weight: 820;
    }

    .form-control,
    .form-select {
      min-height: 42px;
      border-radius: .8rem;
      border-color: rgba(7, 16, 23, .14);
      background-color: #fff;
      font-size: .93rem;
      transition: border-color var(--transition-base), box-shadow var(--transition-base);
    }

    .form-control:hover,
    .form-select:hover {
      border-color: rgba(183, 146, 47, .45);
    }

    textarea.form-control {
      min-height: 112px;
      resize: vertical;
    }

    .required-mark {
      color: #b42318;
      font-weight: 900;
    }

    .form-footer {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 1rem;
      margin-top: 1.35rem;
    }

    .form-note {
      margin: 0;
      color: #68615a;
      font-size: .82rem;
    }

    .site-footer {
      color: rgba(255, 255, 255, .8);
      border-top: 3px solid var(--color-gold-500);
      background:
        radial-gradient(circle at 20% 0, rgba(212, 178, 78, .08), transparent 22rem),
        linear-gradient(145deg, var(--color-ink-950), var(--color-ink-850) 60%, var(--color-ink-900));
    }

    .site-footer__main {
      padding-block: 2rem;
    }

    .site-footer__logo {
      display: block;
      width: min(100%, 260px);
      height: 77px;
      aspect-ratio: 868 / 256;
      margin-bottom: 1rem;
      object-fit: contain;
    }

    .site-footer__logo--placeholder {
      display: inline-grid;
      place-items: center;
      color: #f3df9c;
      border: 1px solid rgba(212, 178, 78, .4);
      border-radius: .75rem;
      font-family: var(--font-serif);
      font-weight: 900;
      font-size: 2rem;
      background: rgba(255,255,255,.035);
    }

    .site-footer__description {
      max-width: 350px;
      margin: 0;
      color: rgba(255, 255, 255, .75);
      font-size: .9rem;
      line-height: 1.65;
    }

    .footer-block__title {
      margin-bottom: .85rem;
      color: #f3df9c;
      font-size: .72rem;
      font-weight: 900;
      letter-spacing: .16em;
      text-transform: uppercase;
    }

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

    .footer-list__item + .footer-list__item {
      margin-top: .58rem;
    }

    .footer-list__link,
    .footer-list__text {
      display: inline-flex;
      align-items: baseline;
      gap: .45rem;
      color: rgba(255, 255, 255, .84);
      font-size: .88rem;
      line-height: 1.45;
      text-decoration: none;
    }

    .footer-list__link:hover,
    .footer-list__link:focus {
      color: #fff1bd;
      text-decoration: underline;
    }

    .footer-list i {
      width: 1rem;
      color: var(--color-gold-500);
    }

    .social-links {
      display: flex;
      flex-wrap: wrap;
      gap: .55rem;
    }

    .social-links__item {
      width: 2.45rem;
      height: 2.45rem;
      display: inline-grid;
      place-items: center;
      border: 1px solid rgba(212, 178, 78, .4);
      border-radius: 999px;
      color: #f4df9d;
      background: rgba(255, 255, 255, .035);
      text-decoration: none;
      transition: background-color var(--transition-base), transform var(--transition-base), border-color var(--transition-base);
    }

    .social-links__item:hover,
    .social-links__item:focus {
      transform: translateY(-2px);
      color: #fff1bd;
      background: rgba(212, 178, 78, .13);
      border-color: rgba(212, 178, 78, .62);
      text-decoration: none;
    }

    .site-footer__bottom {
      padding-block: .9rem;
      color: rgba(255, 255, 255, .7);
      background: rgba(0, 0, 0, .16);
      border-top: 1px solid rgba(255, 255, 255, .08);
      font-size: .82rem;
    }

    .site-footer__legal {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: space-between;
      gap: .75rem;
    }

    .site-footer__legal p {
      margin: 0;
    }

    .site-footer__legal a {
      color: rgba(255, 255, 255, .82);
      text-decoration: none;
    }

    .site-footer__legal a:hover,
    .site-footer__legal a:focus {
      color: #fff1bd;
      text-decoration: underline;
    }

    @media (max-width: 991.98px) {
      html {
        scroll-padding-top: 6.5rem;
      }

      .primary-navigation .container {
        min-height: 68px;
      }

      .navigation-menu {
        padding-block: .7rem;
        border-top: 1px solid rgba(7, 16, 23, .08);
      }

      .navigation-menu__link {
        padding: .72rem 0 !important;
      }

      .navigation-menu__link.active::after {
        display: none;
      }

      .hero-section {
        min-height: auto;
      }

      .hero-title {
        max-width: 15ch;
      }

      .hero-panel__header {
        grid-template-columns: 1fr;
      }

      .hero-panel__title {
        max-width: none;
      }

      .hero-panel__emblem {
        min-height: auto;
      }

      .hero-panel__image,
      .hero-panel__image--placeholder {
        width: min(100%, 260px);
        height: 264px;
      }

      .formation-highlights {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }

    @media (max-width: 767.98px) {
      .utility-bar__content {
        flex-direction: column;
        justify-content: center;
        padding-block: .45rem;
        text-align: center;
      }

      .brand-logo {
        width: 156px;
        height: 52px;
      }

      .hero-copy {
        max-width: none;
      }

      .hero-title {
        max-width: none;
        font-size: clamp(1.85rem, 8vw, 2.45rem);
      }

      .hero-actions,
      .form-footer {
        flex-direction: column;
        align-items: stretch;
      }

      .site-button {
        width: 100%;
      }

      .course-card__actions {
        grid-template-columns: 1fr;
      }
    }

    @media (max-width: 575.98px) {
      .hero-section .container {
        padding-inline: 1rem;
      }

      .formation-highlights {
        grid-template-columns: 1fr;
      }

      .course-card,
      .contact-info,
      .message-form,
      .hero-panel {
        border-radius: var(--radius-md);
      }
    }

    @media (prefers-reduced-motion: reduce) {
      *,
      *::before,
      *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
      }
    }


/* Complementos do CRM público */
.public-message{
  max-width:var(--container-width);
  margin:1rem auto 0;
  padding:.9rem 1rem;
  border-radius:var(--radius-md);
  font-weight:800;
  display:flex;
  gap:.65rem;
  align-items:center;
  border:1px solid rgba(183,146,47,.25);
  background:#fff8e7;
}
.public-message.success{border-color:rgba(34,197,94,.3);background:#ecfdf5;color:#166534}
.public-message.error{border-color:rgba(220,38,38,.3);background:#fef2f2;color:#991b1b}
.public-message.info{border-color:rgba(37,99,235,.25);background:#eff6ff;color:#1d4ed8}
.public-message.warning{border-color:rgba(217,119,6,.3);background:#fffbeb;color:#92400e}
.brand-wordmark{
  display:flex;
  flex-direction:column;
  line-height:1.05;
  color:#171410;
}
.brand-wordmark strong{
  font-family:var(--font-serif);
  font-size:1.05rem;
  letter-spacing:.05em;
}
.brand-wordmark small{
  color:var(--color-gold-700);
  font-size:.65rem;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.brand-logo--placeholder,
.site-footer__logo--placeholder{
  display:grid;
  place-items:center;
  border:2px solid var(--color-gold-500);
  color:var(--color-gold-500);
  background:#111;
  font-family:var(--font-serif);
  font-weight:900;
}
.brand-logo--placeholder{width:68px;height:52px;border-radius:1rem}
.site-footer__logo--placeholder{width:180px;height:76px;border-radius:1rem}
.hero-panel__image--placeholder{
  width:190px;
  height:190px;
  border:2px solid var(--color-gold-500);
  border-radius:50%;
  display:grid;
  place-items:center;
  color:var(--color-gold-500);
  font-family:var(--font-serif);
  font-size:3rem;
  background:rgba(0,0,0,.22);
}
.course-card__media--fallback{
  display:grid;
  place-items:center;
  background:
    radial-gradient(circle at 50% 30%, rgba(212,178,78,.24), transparent 8rem),
    linear-gradient(135deg,#f7efd7,#e9dfc1);
}
.course-card__image-fallback{
  display:grid;
  place-items:center;
  width:4.4rem;
  height:4.4rem;
  border-radius:999px;
  color:#171410;
  background:rgba(212,178,78,.32);
  border:1px solid rgba(183,146,47,.44);
  font-size:1.65rem;
}
.checkout-section,
.course-detail-section{
  background:
    radial-gradient(circle at 0 0, rgba(212,178,78,.08), transparent 26rem),
    linear-gradient(180deg,var(--color-paper-200),var(--color-paper-50));
  min-height:calc(100vh - 200px);
}
.checkout-panel,
.course-detail-panel{
  border:1px solid rgba(183,146,47,.18);
  border-radius:var(--radius-xl);
  background:var(--color-paper-50);
  box-shadow:var(--shadow-soft);
  overflow:hidden;
}
.checkout-panel__body,
.course-detail-panel__body{
  padding:clamp(1.25rem,2.4vw,2rem);
}
.checkout-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 360px;
  gap:1.2rem;
  align-items:start;
}
.checkout-summary{
  padding:1.35rem;
  border-radius:var(--radius-lg);
  color:#fff;
  background:linear-gradient(145deg,var(--color-ink-950),var(--color-ink-850));
  border:1px solid rgba(212,178,78,.3);
  box-shadow:var(--shadow-medium);
}
.checkout-summary h2{
  margin:.45rem 0 .75rem;
  color:#fff8e7;
  font-family:var(--font-serif);
  font-size:1.45rem;
}
.checkout-summary p{
  color:rgba(255,255,255,.72);
  line-height:1.55;
}
.summary-line{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding:.85rem 0;
  border-top:1px solid rgba(255,255,255,.1);
}
.summary-line strong.price{
  color:#f3df9c;
  font-size:1.35rem;
}
.checkout-form .form-label{
  margin-bottom:.35rem;
}
.checkout-form .form-control{
  min-height:44px;
}
.terms-box{
  padding:1rem;
  border:1px solid rgba(183,146,47,.22);
  border-radius:var(--radius-md);
  background:#fffaf0;
  margin-top:1rem;
}
.terms-check{
  display:flex;
  gap:.7rem;
  align-items:flex-start;
  color:#171410;
  font-weight:800;
}
.terms-check input{
  margin-top:.2rem;
  width:1.1rem;
  height:1.1rem;
}
.terms-content{
  margin-top:.8rem;
  color:var(--color-muted);
  max-height:12rem;
  overflow:auto;
  padding:.8rem;
  border-radius:.8rem;
  background:#fff;
}
.course-detail-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 360px;
  gap:1.2rem;
}
.course-detail-cover{
  aspect-ratio:16/9;
  overflow:hidden;
  border-radius:var(--radius-lg);
  background:#eadfbd;
  margin-bottom:1.2rem;
}
.course-detail-cover img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.back-link{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  margin-bottom:1rem;
  color:var(--color-gold-700);
  font-weight:900;
  text-decoration:none;
}
.back-link:hover{text-decoration:underline}
.public-alert{
  display:flex;
  gap:.6rem;
  align-items:center;
  padding:.85rem 1rem;
  border-radius:var(--radius-md);
  margin-bottom:1rem;
  font-weight:800;
}
.public-alert.error{background:#fef2f2;color:#991b1b;border:1px solid rgba(220,38,38,.22)}
.checkout-success{
  max-width:760px;
  margin:auto;
  text-align:center;
  padding:clamp(2rem,4vw,4rem);
}
.checkout-success__icon{
  width:5rem;height:5rem;border-radius:999px;margin:0 auto 1rem;
  display:grid;place-items:center;
  background:#ecfdf5;color:#166534;font-size:2rem;
}
@media(max-width:991.98px){
  .checkout-grid,
  .course-detail-grid{grid-template-columns:1fr}
}
@media(max-width:575.98px){
  .checkout-panel__body,
  .course-detail-panel__body{padding:1rem}
  .checkout-summary{border-radius:var(--radius-md)}
}

.course-card__media:not(.course-card__media--fallback) .course-card__image-fallback{display:none!important}
.course-card__media.course-card__media--fallback .course-card__image-fallback{display:grid!important}


.courses-section__actions,
.articles-section__actions {
  display: flex;
  justify-content: flex-end;
  margin: -1rem 0 1.6rem;
}

.course-card__price.is-free,
.summary-line .price.is-free {
  color: #0d473b;
  letter-spacing: .01em;
}

.public-pagination {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: .55rem;
  margin-top: 2rem;
}
.public-pagination__link {
  min-width: 2.7rem;
  min-height: 2.7rem;
  display: inline-grid;
  place-items: center;
  border: 1px solid rgba(183, 146, 47, .32);
  border-radius: .8rem;
  color: #17130f;
  background: #fffdf8;
  font-weight: 900;
  text-decoration: none;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .7);
}
.public-pagination__link:hover,
.public-pagination__link:focus,
.public-pagination__link.active {
  color: #12100a;
  background: linear-gradient(180deg, #e5c968 0%, var(--color-gold-500) 100%);
  border-color: rgba(183, 146, 47, .55);
  text-decoration: none;
}

.public-breadcrumb {
  margin-bottom: 1.15rem;
}

.public-breadcrumb__list {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .45rem;
  padding: 0;
  margin: 0;
  list-style: none;
  color: var(--color-muted);
  font-size: .92rem;
  font-weight: 800;
}

.public-breadcrumb__item {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
}

.public-breadcrumb__item + .public-breadcrumb__item::before {
  content: "/";
  color: rgba(91, 81, 70, .55);
  font-weight: 900;
}

.public-breadcrumb__link {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  color: var(--color-gold-700);
  text-decoration: none;
}

.public-breadcrumb__link:hover,
.public-breadcrumb__link:focus {
  color: var(--color-coal-950);
  text-decoration: underline;
}

#toast-container > .toast {
  width: min(430px, calc(100vw - 32px));
  min-height: 76px;
  border: 1px solid rgba(183, 146, 47, .28);
  border-left: 6px solid var(--color-gold-600);
  border-radius: 16px;
  padding: 16px 18px;
  background-color: #fffdf8;
  background-image: none !important;
  box-shadow: 0 22px 60px rgba(7, 16, 23, .22);
  opacity: .99;
}
#toast-container > .toast-success { border-left-color: #15803d; }
#toast-container > .toast-error { border-left-color: #b42318; }
#toast-container > .toast-warning { border-left-color: #b7922f; }
#toast-container > .toast-info { border-left-color: #173b35; }
#toast-container .toast-title {
  color: #17130f;
  font-weight: 900;
  margin-bottom: 4px;
}
#toast-container .toast-message {
  color: var(--color-muted);
  font-weight: 650;
  line-height: 1.4;
}
.toast-fa-message {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
.toast-fa-icon {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  color: #fff;
  background: #173b35;
}
.toast-success .toast-fa-icon { background: #15803d; }
.toast-error .toast-fa-icon { background: #b42318; }
.toast-warning .toast-fa-icon { background: #b7922f; }
.toast-progress { opacity: .32; }

@media (max-width: 767.98px) {
  .courses-section__actions {
    justify-content: stretch;
  }
}

.checkout-code {
  display: inline-flex;
  gap: .45rem;
  align-items: center;
  margin: 1rem 0 0;
  padding: .75rem 1rem;
  border-radius: .85rem;
  background: #f8f0d7;
  border: 1px solid rgba(183, 146, 47, .28);
  color: #17130f;
}


/* Feedbacks públicos com Toastr estável e sem travar barra de tempo. */
#toast-container,
#toast-container.toast-top-right {
  z-index: 50000 !important;
  top: 92px !important;
  right: 24px !important;
}
#toast-container > .toast {
  opacity: .99;
  transform: none !important;
  display: block;
  width: min(430px, calc(100vw - 32px)) !important;
  min-width: 0 !important;
  max-width: calc(100vw - 32px) !important;
  padding: 16px 44px 16px 16px !important;
  border-radius: 18px !important;
  border: 1px solid rgba(183,146,47,.28) !important;
  border-left: 6px solid var(--color-gold-500) !important;
  box-shadow: 0 24px 70px rgba(7,16,23,.22) !important;
  background-image: none !important;
  background-color: #fffdf8 !important;
  color: #17130f !important;
}
#toast-container > .toast-success { border-left-color: #0f7a4f !important; }
#toast-container > .toast-error { border-left-color: #b42318 !important; }
#toast-container > .toast-warning { border-left-color: #b7791f !important; }
#toast-container > .toast-info { border-left-color: #917024 !important; }
#toast-container .toast-title {
  color: #061019 !important;
  font-size: 14px !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
  margin-bottom: 5px !important;
}
#toast-container .toast-message {
  color: #5b5146 !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
  font-weight: 650 !important;
}
#toast-container .toast-close-button {
  color: #6f6659 !important;
  opacity: .99;
  text-shadow: none !important;
  right: -26px !important;
  top: -4px !important;
}
#toast-container .toast-progress {
  height: 4px !important;
  opacity: .9 !important;
  background: rgba(145,112,36,.36) !important;
  transition: none !important;
}
.toast-fa-message {
  display: flex !important;
  gap: 12px !important;
  align-items: flex-start !important;
}
.toast-fa-icon {
  width: 34px !important;
  height: 34px !important;
  border-radius: 999px !important;
  display: inline-grid !important;
  place-items: center !important;
  flex: 0 0 auto !important;
  color: #917024 !important;
  background: #f8f0d7 !important;
}
.toast-success .toast-fa-icon { color: #0f7a4f !important; background: #e5f6ed !important; }
.toast-error .toast-fa-icon { color: #b42318 !important; background: #fde8e5 !important; }
.toast-warning .toast-fa-icon { color: #9a5f00 !important; background: #fff4d6 !important; }
.toast-fa-text { display:block !important; padding-top: 2px !important; }

.checkout-next-steps {
  margin-top: 1.25rem;
  padding: 1.15rem;
  border: 1px solid rgba(183,146,47,.22);
  border-radius: var(--radius-md);
  background: #fbf8f1;
  text-align: left;
}
.checkout-next-steps h2 {
  margin: 0 0 .8rem;
  color: #061019;
  font-size: 1rem;
  font-weight: 900;
}
.checkout-next-steps ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: .65rem;
}
.checkout-next-steps li {
  display: flex;
  gap: .6rem;
  align-items: flex-start;
  color: #5b5146;
  font-weight: 650;
}
.checkout-next-steps i {
  margin-top: .15rem;
  color: var(--color-gold-700);
}


/* Correção definitiva do Toastr: não usar display/opacity com !important.
   Assim o próprio Toastr consegue esconder/remover o aviso no tempo correto. */
#toast-container > .toast {
  display: block;
  opacity: .99;
}
#toast-container > .toast[style*="display: none"] {
  display: none !important;
}
#toast-container .toast-close-button {
  pointer-events: auto !important;
  cursor: pointer !important;
  z-index: 2 !important;
}
#toast-container .toast-progress {
  pointer-events: none !important;
}

/* Toastr público definitivo com remoção forçada pelo JavaScript. */
#toast-container,
#toast-container.toast-top-right {
  position: fixed !important;
  top: 86px !important;
  right: 24px !important;
  z-index: 60000 !important;
  pointer-events: none !important;
}

#toast-container > .toast {
  display: block !important;
  opacity: 1 !important;
  transform: translateY(0) scale(1) !important;
  transition: opacity .18s ease, transform .18s ease !important;
  pointer-events: auto !important;
  width: min(430px, calc(100vw - 32px)) !important;
  min-width: 0 !important;
  max-width: calc(100vw - 32px) !important;
  min-height: 78px !important;
  padding: 16px 46px 16px 16px !important;
  border: 1px solid rgba(183,146,47,.26) !important;
  border-left: 7px solid var(--color-gold-600) !important;
  border-radius: 18px !important;
  background: #fffdf8 !important;
  background-image: none !important;
  color: var(--color-coal-950) !important;
  box-shadow: 0 24px 70px rgba(7,20,26,.22) !important;
  overflow: hidden !important;
}

#toast-container > .toast-error { border-left-color: #b42318 !important; }
#toast-container > .toast-success { border-left-color: #087443 !important; }
#toast-container > .toast-warning { border-left-color: #b7791f !important; }
#toast-container > .toast-info { border-left-color: var(--color-gold-600) !important; }

#toast-container > .toast.crm-toast-removing {
  opacity: 0 !important;
  transform: translateY(-8px) scale(.98) !important;
  pointer-events: none !important;
}

#toast-container .toast-title {
  display: none !important;
}

#toast-container .toast-message {
  padding: 0 !important;
  margin: 0 !important;
  color: inherit !important;
}

#toast-container .toast-close-button {
  position: absolute !important;
  top: 10px !important;
  right: 10px !important;
  width: 28px !important;
  height: 28px !important;
  display: grid !important;
  place-items: center !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: rgba(7,20,26,.08) !important;
  color: var(--color-coal-900) !important;
  opacity: 1 !important;
  text-shadow: none !important;
  cursor: pointer !important;
  pointer-events: auto !important;
  z-index: 2 !important;
  line-height: 1 !important;
  font-size: 14px !important;
}

#toast-container .toast-progress {
  display: none !important;
}

.crm-toast-layout {
  position: relative !important;
  display: flex !important;
  gap: 12px !important;
  align-items: flex-start !important;
}

.crm-toast-icon {
  width: 36px !important;
  height: 36px !important;
  border-radius: 999px !important;
  display: inline-grid !important;
  place-items: center !important;
  flex: 0 0 auto !important;
  color: #6b4f14 !important;
  background: rgba(183,146,47,.18) !important;
  font-size: 16px !important;
}

.toast-success .crm-toast-icon { color: #087443 !important; background: #d1fadf !important; }
.toast-error .crm-toast-icon { color: #b42318 !important; background: #fee4e2 !important; }
.toast-warning .crm-toast-icon { color: #93370d !important; background: #fef0c7 !important; }

.crm-toast-copy {
  display: grid !important;
  gap: 4px !important;
  min-width: 0 !important;
}

.crm-toast-title {
  display: block !important;
  color: var(--color-coal-950) !important;
  font-size: .92rem !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
}

.crm-toast-text {
  display: block !important;
  color: var(--color-coal-700) !important;
  font-size: .84rem !important;
  font-weight: 650 !important;
  line-height: 1.45 !important;
}

.crm-toast-progress {
  position: absolute !important;
  left: -16px !important;
  right: -46px !important;
  bottom: -16px !important;
  height: 4px !important;
  background: var(--color-gold-600) !important;
  transform-origin: left center !important;
  animation: crm-toast-countdown var(--crm-toast-duration, 5500ms) linear forwards !important;
}

.toast-error .crm-toast-progress { background: #b42318 !important; }
.toast-success .crm-toast-progress { background: #087443 !important; }
.toast-warning .crm-toast-progress { background: #b7791f !important; }

.crm-toast-paused .crm-toast-progress {
  animation-play-state: paused !important;
}

@keyframes crm-toast-countdown {
  from { transform: scaleX(1); }
  to { transform: scaleX(0); }
}

@media (max-width: 640px) {
  #toast-container,
  #toast-container.toast-top-right {
    top: 12px !important;
    right: 12px !important;
    left: 12px !important;
  }

  #toast-container > .toast {
    width: 100% !important;
  }
}

.checkout-status {
  text-align: center;
}
.checkout-success__icon--warning {
  background: #fff4d6;
  color: #9a5f00;
}
.checkout-success__icon--info {
  background: #eef6f5;
  color: #173b35;
}
.checkout-status-card {
  max-width: 640px;
  margin: 1.4rem auto 0;
  padding: 1.15rem;
  border: 1px solid rgba(183,146,47,.24);
  border-radius: var(--radius-lg);
  background: #fffdf8;
  text-align: left;
}
.checkout-status-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .75rem;
  margin-top: 1.35rem;
}
.checkout-status-actions form {
  margin: 0;
}
.student-section {
  min-height: calc(100vh - 200px);
  background:
    radial-gradient(circle at 0 0, rgba(212,178,78,.08), transparent 26rem),
    linear-gradient(180deg,var(--color-paper-200),var(--color-paper-50));
}
.student-auth-panel {
  max-width: 480px;
  margin: 0 auto;
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid rgba(183,146,47,.2);
  border-radius: var(--radius-xl);
  background: var(--color-paper-50);
  box-shadow: var(--shadow-soft);
}
.student-auth-links {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: .75rem;
  margin-top: 1rem;
  color: var(--color-gold-700);
  font-size: .9rem;
  font-weight: 850;
}
.student-auth-links a {
  text-decoration: none;
}
.student-auth-links a:hover,
.student-auth-links a:focus {
  text-decoration: underline;
}
.student-nav {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .55rem;
  margin-bottom: 1.25rem;
}
.student-nav a,
.student-nav button {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  gap: .48rem;
  padding: .62rem .9rem;
  border: 1px solid rgba(183,146,47,.28);
  border-radius: .85rem;
  color: #17130f;
  background: #fffdf8;
  font-size: .86rem;
  font-weight: 900;
  text-decoration: none;
}
.student-nav a.active {
  color: #12100a;
  background: linear-gradient(180deg, #e5c968 0%, var(--color-gold-500) 100%);
  border-color: rgba(183,146,47,.55);
}
.student-nav form {
  margin: 0 0 0 auto;
}
.student-nav button {
  cursor: pointer;
}
.student-hero {
  margin-bottom: 1.25rem;
}
.student-kpi-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .9rem;
}
.student-kpi,
.student-card {
  border: 1px solid rgba(183,146,47,.18);
  border-radius: var(--radius-lg);
  background: var(--color-paper-50);
  box-shadow: var(--shadow-soft);
}
.student-kpi {
  padding: 1.1rem;
}
.student-kpi strong {
  display: block;
  color: #0d473b;
  font-size: 1.8rem;
  line-height: 1;
  font-weight: 950;
}
.student-kpi span {
  color: var(--color-muted);
  font-size: .86rem;
  font-weight: 800;
}
.student-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.student-card {
  padding: 1.15rem;
}
.student-card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: .9rem;
}
.student-card__header h2 {
  margin: 0;
  color: #061019;
  font-family: var(--font-sans);
  font-size: 1rem;
  font-weight: 950;
}
.student-card__header a {
  color: var(--color-gold-700);
  font-size: .85rem;
  font-weight: 900;
  text-decoration: none;
}
.student-list {
  display: grid;
  gap: .65rem;
}
.student-list-item {
  display: grid;
  gap: .2rem;
  padding: .85rem;
  border: 1px solid rgba(183,146,47,.18);
  border-radius: var(--radius-md);
  color: inherit;
  background: #fffaf0;
  text-decoration: none;
}
.student-list-item strong {
  color: #17130f;
}
.student-list-item span,
.student-empty {
  color: var(--color-muted);
  font-size: .9rem;
  line-height: 1.45;
}
.student-table-wrap {
  overflow-x: auto;
}
.student-table {
  width: 100%;
  min-width: 760px;
  border-collapse: separate;
  border-spacing: 0 .55rem;
}
.student-table th {
  color: var(--color-muted);
  font-size: .74rem;
  font-weight: 950;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.student-table td {
  padding: .9rem;
  background: #fffaf0;
  border-top: 1px solid rgba(183,146,47,.18);
  border-bottom: 1px solid rgba(183,146,47,.18);
  vertical-align: middle;
}
.student-table td:first-child {
  border-left: 1px solid rgba(183,146,47,.18);
  border-radius: .85rem 0 0 .85rem;
}
.student-table td:last-child {
  border-right: 1px solid rgba(183,146,47,.18);
  border-radius: 0 .85rem .85rem 0;
}
.student-table-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .5rem;
}
.student-table-actions form {
  margin: 0;
}
.student-badge {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: .34rem .62rem;
  border-radius: 999px;
  color: #0d473b;
  background: #e5f6ed;
  font-size: .78rem;
  font-weight: 900;
}
.student-badge.warning {
  color: #93370d;
  background: #fef0c7;
}
.student-detail-lines {
  display: grid;
  gap: .65rem;
}
.student-detail-lines div {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: .65rem;
  border-bottom: 1px solid rgba(183,146,47,.18);
}
.student-detail-lines span {
  color: var(--color-muted);
  font-weight: 750;
}
.password-rules {
  display: grid;
  gap: .42rem;
  margin: 0 0 1rem;
  padding: .9rem;
  border: 1px solid rgba(183,146,47,.2);
  border-radius: var(--radius-md);
  background: #fffaf0;
}
.password-rules span {
  display: flex;
  align-items: center;
  gap: .45rem;
  color: var(--color-muted);
  font-size: .84rem;
  font-weight: 760;
}
.password-rules span.is-valid {
  color: #0f7a4f;
}
.password-rules span.is-invalid {
  color: #7a6550;
}
@media (max-width: 991.98px) {
  .student-kpi-grid,
  .student-grid {
    grid-template-columns: 1fr;
  }
  .student-nav form {
    margin-left: 0;
  }
}
@media (max-width: 575.98px) {
  .checkout-status-actions,
  .student-table-actions,
  .student-nav {
    align-items: stretch;
  }
  .checkout-status-actions > *,
  .checkout-status-actions .site-button,
  .student-table-actions > *,
  .student-table-actions .site-button,
  .student-table-actions button,
  .student-nav a,
  .student-nav form,
  .student-nav button {
    width: 100%;
  }
}

.message-form.is-submitting {
  position: relative;
}

.message-form.is-submitting::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: rgba(255, 253, 248, .58);
  pointer-events: none;
}

.site-button.is-loading {
  opacity: .82;
  cursor: wait;
  pointer-events: none;
}

.hero-panel {
  padding-top: clamp(.9rem, 1.35vw, 1.1rem);
}

.hero-panel__header {
  align-items: start;
  margin-bottom: .85rem;
}

.hero-panel__header > div,
.hero-panel__emblem {
  align-self: start;
}

.hero-panel__emblem {
  min-height: 0;
  place-items: start center;
}

/* .hero-panel__image {
  height: 240px;
  transform: none;
} */

.hero-panel__title {
  margin-top: .65rem;
}

@media (max-width: 991.98px) {
  .hero-panel__image {
    transform: none;
  }
}

#toast-container,
#toast-container.toast-top-right {
  top: 86px !important;
  right: 24px !important;
  z-index: 60000 !important;
}

#toast-container > .toast {
  width: min(430px, calc(100vw - 32px)) !important;
  min-width: 0 !important;
  max-width: calc(100vw - 32px) !important;
  min-height: 0 !important;
  padding: 16px 44px 16px 16px !important;
  border: 1px solid rgba(183,146,47,.26) !important;
  border-left: 6px solid var(--color-gold-600) !important;
  border-radius: 14px !important;
  background: #fffdf8 !important;
  background-image: none !important;
  box-shadow: 0 18px 50px rgba(7,20,26,.18) !important;
  color: var(--color-coal-950) !important;
  opacity: 1 !important;
  transform: none !important;
}

#toast-container > .toast-error { border-left-color: #b42318 !important; }
#toast-container > .toast-success { border-left-color: #087443 !important; }
#toast-container > .toast-warning { border-left-color: #b7791f !important; }
#toast-container > .toast-info { border-left-color: var(--color-gold-600) !important; }

#toast-container .toast-title {
  display: block !important;
  margin: 0 0 4px !important;
  padding: 0 !important;
  color: var(--color-coal-950) !important;
  font-size: .92rem !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
}

#toast-container .toast-message {
  margin: 0 !important;
  padding: 0 !important;
  color: var(--color-coal-700) !important;
  font-size: .84rem !important;
  font-weight: 650 !important;
  line-height: 1.45 !important;
}

#toast-container .toast-close-button {
  top: -4px !important;
  right: -28px !important;
  color: var(--color-coal-900) !important;
  opacity: 1 !important;
  text-shadow: none !important;
}

#toast-container .toast-progress {
  display: block !important;
  height: 4px !important;
  opacity: .85 !important;
  background: rgba(183,146,47,.45) !important;
}

@media (max-width: 640px) {
  #toast-container,
  #toast-container.toast-top-right {
    top: 12px !important;
    right: 12px !important;
    left: 12px !important;
  }

  #toast-container > .toast {
    width: 100% !important;
  }
}

/* Ajustes 2026-06-03: catálogo, área do aluno, notificações e popup público */
.site-button--nav {
  padding: .7rem 1rem;
  margin-left: .5rem;
  white-space: nowrap;
}

.navigation-menu__student-area {
  display: flex;
  align-items: center;
}

.public-page-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(3.5rem, 6vw, 6.5rem) 0 clamp(2.7rem, 5vw, 4.6rem);
  background:
    radial-gradient(circle at top right, rgba(183,146,47,.18), transparent 34rem),
    linear-gradient(135deg, rgba(13,46,52,.98), rgba(7,20,26,.96));
  color: #fff;
}

.public-page-hero::before {
  content: '';
  position: absolute;
  inset: auto -10% -40% 45%;
  width: 36rem;
  height: 36rem;
  border-radius: 50%;
  background: rgba(255,255,255,.06);
  pointer-events: none;
}

.public-page-hero .container {
  position: relative;
  z-index: 1;
}

.public-page-hero .hero-title,
.public-page-hero .hero-description,
.public-page-hero .section-kicker {
  color: #fff;
}

.public-page-hero .hero-description {
  max-width: 820px;
  color: rgba(255,255,255,.86);
}

.public-page-hero .public-breadcrumb {
  margin: 0 0 1rem;
}

.public-page-hero .public-breadcrumb__link,
.public-page-hero .public-breadcrumb__item {
  color: rgba(255,255,255,.86);
}

.public-page-hero .public-breadcrumb__link:hover {
  color: #fff;
}

.student-nav {
  gap: .7rem;
}

.student-nav a,
.student-nav button {
  position: relative;
}

.student-nav-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.55rem;
  height: 1.55rem;
  margin-left: .35rem;
  padding: 0 .42rem;
  border-radius: 999px;
  background: #b42318;
  color: #fff;
  font-size: .75rem;
  font-weight: 900;
  line-height: 1;
}

.student-card__meta {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  color: var(--color-coal-600);
  font-size: .86rem;
  font-weight: 800;
}

.student-notification-list {
  display: grid;
  gap: .85rem;
}

.student-notification-item {
  display: grid;
  grid-template-columns: 2.7rem 1fr;
  gap: .9rem;
  padding: 1rem;
  border: 1px solid rgba(13,46,52,.1);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 14px 38px rgba(7,20,26,.06);
}

.student-notification-item.is-unread {
  border-left: 5px solid var(--color-gold-600);
  background: #fffdf7;
}

.student-notification-item__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.7rem;
  height: 2.7rem;
  border-radius: 999px;
  background: rgba(183,146,47,.12);
  color: var(--color-gold-700);
}

.student-notification-item__title-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.student-notification-item h3 {
  margin: 0;
  font-size: 1rem;
  font-weight: 900;
  color: var(--color-coal-950);
}

.student-notification-item p {
  margin: .45rem 0 0;
  color: var(--color-coal-700);
}

.student-notification-status {
  flex: 0 0 auto;
  padding: .28rem .55rem;
  border-radius: 999px;
  background: rgba(13,46,52,.08);
  color: var(--color-coal-800);
  font-size: .72rem;
  font-weight: 900;
}

.student-notification-item.is-unread .student-notification-status {
  background: rgba(183,146,47,.16);
  color: var(--color-gold-800);
}

.student-notification-item__meta {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin-top: .65rem;
  color: var(--color-coal-500);
  font-size: .8rem;
  font-weight: 700;
}

body.site-popup-open {
  overflow: hidden;
}

.site-popup[hidden] {
  display: none !important;
}

.site-popup {
  position: fixed;
  inset: 0;
  z-index: 70000;
  display: grid;
  place-items: center;
  padding: 1rem;
}

.site-popup__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(7,20,26,.68);
  backdrop-filter: blur(5px);
}

.site-popup__dialog {
  position: relative;
  z-index: 1;
  width: min(620px, calc(100vw - 2rem));
  padding: clamp(1.4rem, 4vw, 2rem);
  border-radius: 26px;
  background: #fffdf8;
  box-shadow: 0 30px 90px rgba(7,20,26,.34);
  border: 1px solid rgba(183,146,47,.24);
}

.site-popup__dialog h2 {
  margin: .6rem 0 .75rem;
  color: var(--color-coal-950);
}

.site-popup__dialog p {
  color: var(--color-coal-700);
  font-weight: 650;
}

.site-popup__close {
  position: absolute;
  top: .9rem;
  right: .9rem;
  width: 2.35rem;
  height: 2.35rem;
  border: 0;
  border-radius: 999px;
  background: rgba(13,46,52,.08);
  color: var(--color-coal-900);
}

@media (max-width: 991px) {
  .navigation-menu__student-area {
    margin-top: .7rem;
  }

  .site-button--nav {
    margin-left: 0;
    width: 100%;
    justify-content: center;
  }
}

@media (max-width: 640px) {
  .student-notification-item,
  .student-notification-item__title-row {
    display: block;
  }

  .student-notification-item__icon {
    margin-bottom: .7rem;
  }

  .student-notification-status {
    display: inline-flex;
    margin-top: .55rem;
  }
}

/* Ajustes visuais v4 — catálogo compacto, busca, popup modal e notificações */
.public-page-hero {
  padding: 1rem 0 !important;
  min-height: auto !important;
  background: linear-gradient(135deg, rgba(13,46,52,.98), rgba(7,20,26,.96)) !important;
}
.public-page-hero::before { display: none !important; }
.public-page-hero .public-breadcrumb { margin-bottom: .35rem !important; }
.public-page-hero .section-kicker { margin-bottom: .35rem !important; }
.public-page-hero .hero-title {
  margin: .15rem 0 .25rem !important;
  font-size: clamp(1.6rem, 3vw, 2.45rem) !important;
  line-height: 1.04 !important;
}
.public-page-hero .hero-description {
  margin: 0 !important;
  max-width: 760px !important;
  font-size: .98rem !important;
}
.courses-section {
  padding-top: clamp(1.75rem, 4vw, 3rem) !important;
}
.catalog-search {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: .85rem;
  align-items: end;
  margin: 0 0 1rem;
  padding: 1rem;
  border: 1px solid rgba(183,146,47,.24);
  border-radius: 20px;
  background: rgba(255,253,248,.86);
  box-shadow: 0 16px 46px rgba(7,20,26,.07);
}
.catalog-search__field {
  display: grid;
  gap: .4rem;
  margin: 0;
  color: var(--color-coal-800);
  font-size: .8rem;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.catalog-search .form-control {
  min-height: 48px;
  border-radius: 14px;
  border-color: rgba(13,46,52,.16);
  background: #fff;
  font-weight: 700;
}
.catalog-search__result {
  margin: 0 0 1.35rem;
  color: var(--color-coal-600);
  font-weight: 750;
}
.site-popup {
  position: fixed !important;
  inset: 0 !important;
  z-index: 2147483000 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 1rem !important;
}
.site-popup[hidden] { display: none !important; }
.site-popup__backdrop {
  position: absolute !important;
  inset: 0 !important;
  background: rgba(7,20,26,.72) !important;
  backdrop-filter: blur(7px) !important;
}
.site-popup__dialog {
  position: relative !important;
  z-index: 1 !important;
  width: min(560px, calc(100vw - 2rem)) !important;
  max-height: min(82vh, 680px) !important;
  overflow: auto !important;
  padding: 0 !important;
  border-radius: 24px !important;
  background: #fffdf8 !important;
  box-shadow: 0 36px 120px rgba(0,0,0,.35) !important;
  border: 1px solid rgba(183,146,47,.34) !important;
}
.site-popup__dialog::before {
  content: '';
  display: block;
  height: 7px;
  background: linear-gradient(90deg, var(--color-gold-600), #f3dc87, var(--color-gold-700));
}
.site-popup__dialog > .section-kicker,
.site-popup__dialog > h2,
.site-popup__dialog > p,
.site-popup__dialog > a {
  margin-left: clamp(1.25rem, 4vw, 2rem) !important;
  margin-right: clamp(1.25rem, 4vw, 2rem) !important;
}
.site-popup__dialog > .section-kicker {
  margin-top: clamp(1.25rem, 4vw, 1.8rem) !important;
}
.site-popup__dialog h2 {
  margin-top: .65rem !important;
  margin-bottom: .75rem !important;
  color: var(--color-coal-950) !important;
  font-size: clamp(1.45rem, 3.3vw, 2rem) !important;
}
.site-popup__dialog p {
  margin-bottom: 1.25rem !important;
  color: var(--color-coal-700) !important;
  font-size: 1rem !important;
  font-weight: 650 !important;
  line-height: 1.65 !important;
}
.site-popup__dialog > a {
  margin-bottom: clamp(1.25rem, 4vw, 2rem) !important;
}
.site-popup__close {
  position: absolute !important;
  top: .85rem !important;
  right: .85rem !important;
  left: auto !important;
  width: 2.4rem !important;
  height: 2.4rem !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 1px solid rgba(13,46,52,.12) !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: var(--color-coal-900) !important;
  box-shadow: 0 12px 28px rgba(7,20,26,.14) !important;
}
.student-notification-list {
  gap: .75rem !important;
}
.student-notification-item {
  grid-template-columns: 2.6rem 1fr !important;
  align-items: flex-start !important;
  padding: .95rem 1rem !important;
  border-radius: 16px !important;
  box-shadow: 0 10px 30px rgba(7,20,26,.045) !important;
}
.student-notification-item__icon {
  width: 2.55rem !important;
  height: 2.55rem !important;
}
.student-notification-item h3 {
  font-size: .98rem !important;
}
.student-notification-item p {
  line-height: 1.55 !important;
}
.student-notification-status {
  min-width: 4.4rem !important;
  text-align: center !important;
}
@media (max-width: 760px) {
  .catalog-search { grid-template-columns: 1fr; }
  .catalog-search .site-button { width: 100%; justify-content: center; }
}


/* Ajustes públicos - 2026-06-15 */
.public-breadcrumb__item + .public-breadcrumb__item::before {
  content: "›" !important;
  font-size: 1.18em !important;
  line-height: 1 !important;
  color: rgba(255,255,255,.72) !important;
  font-weight: 900 !important;
}
.site-popup__dialog.has-media::before {
  display: none !important;
}
.site-popup__media {
  margin: 0 !important;
  width: 100% !important;
  aspect-ratio: 1 / 1 !important;
  max-height: min(52vh, 420px) !important;
  overflow: hidden !important;
  background: #f8f0d7 !important;
}
.site-popup__media img {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  object-fit: cover !important;
}
.public-error-hero {
  min-height: 62vh !important;
  display: flex !important;
  align-items: center !important;
}
.public-error-card {
  padding: clamp(1.5rem, 4vw, 2.5rem) !important;
  border-radius: 32px !important;
  box-shadow: 0 30px 80px rgba(7,20,26,.16) !important;
  border: 1px solid rgba(183,146,47,.22) !important;
  color: var(--color-coal-900) !important;
}
.public-error-card .hero-title,
.public-error-card .hero-description {
  color: var(--color-coal-950) !important;
}
.public-error-card__status {
  display: inline-flex !important;
  margin: .9rem 0 .35rem !important;
  padding: .45rem .8rem !important;
  border-radius: 999px !important;
  background: rgba(183,146,47,.14) !important;
  color: var(--color-coal-900) !important;
  font-weight: 900 !important;
}
.public-error-card__code {
  margin: 1rem 0 0 !important;
  color: var(--color-coal-700) !important;
  font-weight: 700 !important;
}
.public-error-card__actions {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: .85rem !important;
  margin-top: 1.35rem !important;
}
@media (max-width: 640px) {
  .public-error-card__actions .site-button {
    width: 100% !important;
    justify-content: center !important;
  }
}

/* Correção global de formulários públicos: evita campos quebrados em telas menores */
.form-grid,
.checkout-grid,
.checkout-form-grid,
.site-form-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));
  gap:16px;
  align-items:start;
}
.form-group,
.checkout-form label,
.site-form label{
  min-width:0;
}
.form-control,
.checkout-form input:not([type="checkbox"]):not([type="radio"]),
.checkout-form select,
.checkout-form textarea,
.site-form input:not([type="checkbox"]):not([type="radio"]),
.site-form select,
.site-form textarea{
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
}
textarea.form-control,
.checkout-form textarea,
.site-form textarea{
  resize:vertical;
}

.password-rules .password-rule-icon {
  width: .9rem;
  height: .9rem;
  min-width: .9rem;
  border: 1px solid rgba(111, 102, 89, .35);
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  color: #fff;
  font-size: .64rem;
  line-height: 1;
}
.password-rules span.is-valid .password-rule-icon {
  background: #0f7a4f;
  border-color: #0f7a4f;
}
.password-rules span.is-valid .password-rule-icon::before {
  content: "✓";
  font-weight: 900;
}

/* Páginas públicas de Documentos: lista de PDFs anexados */
.document-files-card{
  border:1px solid rgba(148,163,184,.32);
  border-radius:24px;
  padding:24px;
  background:#fff;
  box-shadow:0 20px 45px rgba(15,23,42,.08);
}
.document-files-card .section-title{
  margin-bottom:18px;
  font-size:1.6rem;
}
.document-files-list{
  display:grid;
  gap:12px;
}
.document-file-link{
  display:flex;
  align-items:center;
  gap:14px;
  padding:14px 16px;
  border:1px solid rgba(148,163,184,.32);
  border-radius:18px;
  color:inherit;
  background:#f8fafc;
  text-decoration:none;
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.document-file-link:hover,
.document-file-link:focus-visible{
  transform:translateY(-2px);
  border-color:rgba(185,28,28,.35);
  box-shadow:0 14px 30px rgba(15,23,42,.08);
}
.document-file-link i{
  color:#b91c1c;
  font-size:1.8rem;
  flex:0 0 auto;
}
.document-file-link span{
  min-width:0;
}
.document-file-link strong{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.document-file-link small{
  display:block;
  margin-top:2px;
  color:#64748b;
}

/* Alternância visual dinâmica das seções da home.
   As classes são aplicadas pela view conforme as seções realmente visíveis,
   evitando blocos consecutivos com a mesma cor quando artigos, orações ou documentos forem ativados/desativados. */
.home-section-alternate{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background:var(--home-section-bg, var(--color-paper-100)) !important;
}
.home-section-alternate::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:var(--home-section-ornament, none);
  opacity:1;
}
.home-section-alternate > .container{
  position:relative;
  z-index:1;
}
.home-section-alternate .section-title{
  color:var(--home-section-title, #121820);
}
.home-section-alternate .section-description{
  color:var(--home-section-text, var(--color-muted));
}
.home-section-alternate .section-kicker{
  color:var(--home-section-kicker, var(--color-gold-700));
}
.home-section-alternate .course-card{
  background:var(--home-section-card, var(--color-paper-50));
  border-color:var(--home-section-card-border, rgba(183,146,47,.26));
}
.home-section-tone-0{
  --home-section-bg:
    radial-gradient(circle at 50% 0, rgba(212,178,78,.10), transparent 30rem),
    linear-gradient(180deg, var(--color-paper-200) 0%, #f8f2e6 100%);
  --home-section-ornament:radial-gradient(circle at 10% 20%, rgba(255,255,255,.46), transparent 18rem);
  --home-section-card:#fffdf8;
  --home-section-card-border:rgba(183,146,47,.28);
}
.home-section-tone-1{
  --home-section-bg:
    radial-gradient(circle at 92% 8%, rgba(23,59,53,.075), transparent 26rem),
    linear-gradient(180deg, #fffdf8 0%, #ffffff 100%);
  --home-section-ornament:radial-gradient(circle at 0 100%, rgba(212,178,78,.075), transparent 22rem);
  --home-section-card:#ffffff;
  --home-section-card-border:rgba(7,16,23,.10);
}
.home-section-tone-2{
  --home-section-bg:
    radial-gradient(circle at 8% 0, rgba(212,178,78,.105), transparent 22rem),
    linear-gradient(180deg, #eef4ef 0%, #f7fbf7 100%);
  --home-section-ornament:radial-gradient(circle at 100% 72%, rgba(23,59,53,.09), transparent 24rem);
  --home-section-title:#0e2521;
  --home-section-text:#52635d;
  --home-section-kicker:#2f665d;
  --home-section-card:#fffffb;
  --home-section-card-border:rgba(23,59,53,.18);
}
.home-section-tone-3{
  --home-section-bg:
    radial-gradient(circle at 85% 0, rgba(212,178,78,.16), transparent 21rem),
    linear-gradient(180deg, #fbf5e6 0%, #fffaf0 100%);
  --home-section-ornament:radial-gradient(circle at 7% 78%, rgba(183,146,47,.10), transparent 20rem);
  --home-section-title:#271f13;
  --home-section-text:#6a5d44;
  --home-section-kicker:#9b7624;
  --home-section-card:#fffef9;
  --home-section-card-border:rgba(183,146,47,.32);
}
.home-section-tone-2 .site-button--soft,
.home-section-tone-3 .site-button--soft{
  background:#fff7df;
  border-color:rgba(183,146,47,.38);
}
