/* Shared visual refinements, layered over the original site styles. */
:root {
  --primary-color: #bc4126;
  --button-color: #bc4126;
  --body-text-color: #303935;
  --card-text-color: #303935;
  --tertiary-color: #f4f3ef;
  --tertiary-text-color: #303935;
  --footer-color: #f4f3ef;
  --navigation-text-color: #303935;
  --navigation-secondary-text-color1: #bc4126;
}
body { font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; line-height: 1.7; color: #303935; }
h1, h2, h3, h4, .card-title { font-family: Oswald, sans-serif; line-height: 1.2; letter-spacing: -.015em; }
p, li, .card-description { overflow-wrap: anywhere; }
.container-parent .container-child { max-width: 1180px; padding-inline: 28px; }
.section.section-space-md { padding-block: 72px; }
.section-header .card-title { font-size: clamp(30px, 4vw, 44px); margin-bottom: 24px; }
.section-header .card-description { font-size: 17px; line-height: 1.8; }
.rich-text h1 { font-size: clamp(28px, 3vw, 38px); margin-bottom: 20px; }
.rich-text h3 { font-size: 25px; margin-bottom: 16px; }
.rich-text p + p { margin-top: 12px; }
.rich-text > p.ql-align-center { max-width: 780px; margin-inline: auto; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid #bc4126; outline-offset: 4px; }
.nav { position: relative; z-index: 20; }
.nav .nav-wrapper .nav-container { min-height: 80px; }
.nav .logo img { display: block; height: 58px; max-width: 190px; object-fit: contain; }
.nav .nav-wrapper ul li a { font-size: 14px; font-weight: 600; }
.nav .nav-wrapper ul li a:hover { color: #bc4126; }
.nav .nav-wrapper .nav-hamburger { border: 0; background: transparent; }
body .btn { padding: 13px 24px; border-radius: 7px; font-size: 14px; line-height: 1.5; font-weight: 650; transition: background-color .18s, box-shadow .18s; }
body .btn:hover { filter: none; background-color: #96331e; box-shadow: 0 4px 12px #00000014; }
body .btn.btn-secondary { background: #ffffffed; color: #303935; border: 1px solid #ffffffa0; }
body .btn.btn-secondary:hover { background: #fff; }
.carousel .carousel-track .slide { height: auto; min-height: 520px; padding-block: 88px; }
.carousel .slide .overlay { background: #101e19 !important; opacity: .62 !important; }
.carousel .slide .section-header { max-width: 860px; margin-inline: auto; }
.carousel .slide .card-title { font-size: clamp(38px, 5.2vw, 64px); text-wrap: balance; }
.carousel .slide .card-description { font-family: inherit; font-size: clamp(17px, 2vw, 21px); font-weight: 400; line-height: 1.6; max-width: 650px; margin-inline: auto; }
.carousel .slide .btn { margin: 12px 5px 0; }
.card.service-card, .card.portfolio-card { border: 1px solid #e3e5df; border-radius: 12px; overflow: hidden; height: 100%; box-sizing: border-box; background: #fff; }
.card.product-style .card-image.service-style { margin: 24px auto 0; }
.card.product-style .card-content { padding: 26px; }
.card.product-style .card-description { line-height: 1.7; }
.card.review-card { border: 0; }
.review-card .quote-text { font-size: 16px; line-height: 1.85; }
.review-card .author { margin-top: 24px; }
.review-card .author-name span { font-size: 14px; color: #616c65; }
.avatar-img { max-width: 210px; padding-bottom: 0; aspect-ratio: 1; margin: 26px auto; box-shadow: 0 0 0 8px #ffffff; }
body table.tabel-clasic { font-family: inherit; font-size: 13px; line-height: 1.6; }
body .tabel-clasic th, body .tabel-clasic td { border-color: #dce1da; padding: 12px 10px; }
body .tabel-clasic th { background: #e9ede7; color: #303935; font-weight: 650; }
body .tabel-clasic tbody tr:nth-child(even) { background: #f7f8f5; }
.table-scroll { max-width: 100%; overflow-x: auto; margin-block: 20px; }
.download-link { display: inline-block; padding-block: 8px; color: #a63820; text-underline-offset: 4px; }
body input:not([type='checkbox']):not([type='radio']):not([type='submit']), body select, body textarea { box-sizing: border-box; max-width: 100%; border: 1px solid #cbd2ca; border-radius: 6px; padding: 12px 14px; font: inherit; background: #fff; color: #303935; }
body input[type='submit'] { border-radius: 7px; font: inherit; cursor: pointer; }
.footer { border-top: 1px solid #e3e5df; margin-top: 0; }
.footer .footer-end-area { padding-block: 28px; }
.footer .footer-end-text { font-size: 13px; color: #66716a; }
@media (max-width: 768px) {
  .container-parent .container-child { padding-inline: 20px; }
  .section.section-space-md { padding-block: 44px; }
  .row > .col { flex: 0 0 100%; max-width: 100%; }
  .nav .nav-wrapper .nav-hamburger { padding: 12px; line-height: 1; }
  .nav .nav-wrapper .nav-hamburger .hamburger-line { width: 24px; height: 2px; margin: 5px 0; background: #303935; }
  .nav .nav-wrapper ul { top: 80px; padding: 12px 20px; box-sizing: border-box; border-top: 1px solid #e3e5df; box-shadow: 0 12px 20px #18251c12; }
  .nav .nav-wrapper ul li { margin-right: 0; }
  .nav .nav-wrapper ul li a { line-height: 48px; }
  .carousel .carousel-track .slide { min-height: 440px; padding-block: 56px; }
  .carousel .slide .btn { display: block; width: fit-content; margin: 12px auto 0; }
  .card.product-style .card-content { padding: 22px; }
  .review-card .card-content { padding-inline: 0; }
  .avatar-img { max-width: 150px; margin-top: 8px; }
  .table-scroll table { min-width: 480px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
.wordwall-table, .wordwall-table * { box-sizing: border-box; }

/* Keep the home calendar readable against its terracotta background. */
.calendar-section .rich-text { color: #fff; }

/* Resource editions */
.edition-resources { padding: 30px; margin-bottom: 48px; background: #f4f3ef; border: 1px solid #e3e5df; border-radius: 12px; }
.edition-resources h3 { font-size: 30px; margin-bottom: 16px; }
.edition-availability { color: #96331e; font-weight: 600; }
.edition-files { list-style: none; padding: 0; margin-top: 24px; }
.edition-files li { padding-block: 15px; border-top: 1px solid #dce1da; }
.edition-files span { display: inline-block; margin-left: 6px; font-size: 12px; color: #616c65; }
.previous-edition-title { margin-bottom: 20px; }
@media (max-width: 768px) {
  .edition-resources { padding: 22px; }
}

.edition-upcoming { margin-top: 16px; border-top: 1px solid #dce1da; padding-top: 16px; }
.edition-upcoming summary { cursor: pointer; color: #a63820; font-weight: 600; padding-block: 8px; }
.edition-upcoming summary:focus-visible { outline: 3px solid #bc4126; outline-offset: 4px; border-radius: 3px; }
.edition-upcoming .edition-availability { margin-top: 12px; }

/* Active navigation remains visible independently of hover or keyboard focus. */
.nav .nav-wrapper .nav-ul > li > a[aria-current="page"] {
  color: #a63820;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 8px;
}
.nav .logo a[aria-current="page"] { display: inline-block; border-bottom: 2px solid #bc4126; }

.calendar-local-note { border-top: 1px solid #ffffff66; padding-top: 28px; }

.bibliography-section .tabel-clasic { width: 100%; border-collapse: collapse; }
.bibliography-section .tabel-clasic th, .bibliography-section .tabel-clasic td { border: 1px solid #dce1da; text-align: left; vertical-align: top; }
.bibliography-section .tabel-clasic tbody th { background: transparent; font-weight: 600; }

/* On-demand video presentation. */
.presentation-section { background: #203e33; color: #fff; padding-block: 36px; }
.presentation-layout { display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.presentation-label { color: #e5cf9f; font-size: 12px; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 10px; }
.presentation-section h2 { font-size: clamp(28px, 3vw, 36px); margin-bottom: 10px; }
.presentation-section p:last-child { color: #e0e8e2; font-size: 15px; }
.presentation-play { display: inline-flex; align-items: center; gap: 14px; color: #fff; text-decoration: none; font-weight: 650; flex-shrink: 0; padding: 12px 0; }
.presentation-play-icon { display: grid; place-items: center; width: 54px; height: 54px; border: 1px solid #d0ddcf; border-radius: 50%; font-size: 18px; padding-left: 3px; box-sizing: border-box; }
.presentation-play:hover .presentation-play-icon { background: #ffffff20; }
.presentation-play:focus-visible { outline-color: #e5cf9f; }
body.presentation-open { overflow: hidden; }
.presentation-dialog { box-sizing: border-box; width: min(420px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); padding: 0; margin: auto; border: 1px solid #46594d; border-radius: 12px; background: #14231d; color: #fff; overflow: auto; }
.presentation-dialog::backdrop { background: #08130ee6; }
.presentation-dialog-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 20px; }
.presentation-dialog-header h2 { font-size: 24px; margin: 0; }
.presentation-dialog-header button { width: 44px; height: 44px; flex-shrink: 0; background: #ffffff12; color: #fff; border: 1px solid #ffffff40; border-radius: 50%; font: 30px/1 system-ui; cursor: pointer; }
.presentation-dialog video { display: block; width: 100%; aspect-ratio: 9 / 16; max-height: 65dvh; object-fit: contain; background: #000; }
.presentation-download, #presentation-error { padding: 12px 20px; font-size: 14px; }
.presentation-download a { color: #e5cf9f; text-underline-offset: 4px; }
@media (max-width: 768px) {
  .presentation-layout { flex-direction: column; align-items: flex-start; gap: 16px; }
  .presentation-dialog-header { padding: 10px 14px; }
  .presentation-dialog-header h2 { font-size: 20px; }
}
