.skip-link { position: fixed; top: 0.75rem; left: 0.75rem; z-index: 10; padding: 0.75rem 1rem; color: white; background: var(--cri-navy-dark); transform: translateY(-180%); }
.skip-link:focus { transform: translateY(0); }
.site-header { color: white; border-bottom: 0.25rem solid var(--cri-light-blue); background: var(--cri-navy); }
.site-navigation { min-height: 7.25rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.site-identity { min-width: 0; display: inline-flex; align-items: center; gap: 0.8rem; color: white; text-decoration: none; }
.site-identity:hover, .site-identity:focus-visible { color: white; }
.site-identity:hover .site-identity__name, .site-identity:focus-visible .site-identity__name { color: var(--color-on-brand-muted); text-decoration: underline; text-decoration-color: var(--cri-light-blue); text-decoration-thickness: 0.14rem; text-underline-offset: 0.2em; }
.site-identity__logo { width: 4.5rem; height: 4.5rem; flex: 0 0 auto; object-fit: contain; }
.site-identity__text { min-width: 0; display: inline-flex; flex-direction: column; }
.site-identity__context, .eyebrow { margin: 0 0 0.35rem; color: var(--color-text-muted); font-size: 0.78rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.site-identity__context { max-width: 38rem; color: var(--color-on-brand-muted); font-size: 0.7rem; }
.site-identity__name { font-family: var(--font-heading); font-size: clamp(1.1rem, 3vw, 1.45rem); font-weight: 600; line-height: 1.15; }
.site-identity__location { margin-top: 0.15rem; color: var(--color-on-brand-muted); font-size: 0.78rem; }
.site-navigation__link { min-height: 2.75rem; display: inline-flex; align-items: center; padding-inline: 0.5rem; color: white; font-weight: 600; }
.site-navigation__link:hover { color: white; text-decoration-thickness: 0.14rem; }
.page-content { flex: 1; padding-block: clamp(2rem, 6vw, 4rem); }
.service-hero { padding: clamp(1.5rem, 5vw, 3rem); border: 1px solid var(--color-border); border-top: 0.25rem solid var(--cri-light-blue); border-radius: 0.25rem; background: var(--color-surface); }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--font-heading); font-weight: 600; }
h1 { max-width: 20ch; margin-bottom: 1rem; font-size: clamp(1.8rem, 2vw, 2.9rem); line-height: 1.1; letter-spacing: -0.02em; }
h2 { font-size: clamp(1.2rem, 2.5vw, 1.6rem); line-height: 1.2; }
.service-hero__lead, .content-page__lead { max-width: 62ch; color: var(--color-text-muted); font-size: clamp(1.05rem, 2vw, 1.25rem); }
.notice { max-width: 46rem; margin-block: 2rem; padding: 1rem 1.15rem; border: 1px solid var(--color-border); border-left: 0.3rem solid var(--cri-light-blue); border-radius: 0.2rem; background: var(--color-surface-subtle); }
.message-box { --message-enter-y: -0.75rem; --message-exit-y: -0.45rem; width: min(calc(100% - 2rem), 32rem); position: fixed; top: 8.5rem; right: 1rem; z-index: 1000; display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 1rem 1.1rem; border: 1px solid var(--color-border); border-left: 0.35rem solid var(--cri-navy); border-radius: 0.25rem; background: white; box-shadow: 0 0.45rem 1rem rgba(26, 58, 107, 0.08); transform-origin: top right; animation: message-box-enter 300ms cubic-bezier(0.2, 0.8, 0.2, 1) both; }
.message-box--saindo { pointer-events: none; animation: message-box-exit 180ms ease-in both; }
.message-box[hidden] { display: none; }
.message-box p { margin: 0.25rem 0 0; color: var(--color-text-muted); }
.message-box button { width: 2.75rem; min-width: 2.75rem; min-height: 2.75rem; display: inline-flex; align-items: center; justify-content: center; margin: -0.55rem -0.55rem 0 0; border: 0; background: transparent; color: inherit; cursor: pointer; font: inherit; font-size: 1.4rem; line-height: 1; }
.message-box--info { border-left-color: var(--cri-navy); background: var(--color-field); }
.message-box--erro { color: var(--color-danger-strong); border-color: #e7b8bd; border-left-color: var(--color-danger-border); background: var(--color-danger-surface); }
.message-box--erro p { color: var(--color-danger-strong); }
@keyframes message-box-enter { 0% { opacity: 0; transform: translateY(var(--message-enter-y)) scale(0.97); box-shadow: 0 0.2rem 0.45rem rgba(26, 58, 107, 0.04); } 65% { opacity: 1; transform: translateY(0.08rem) scale(1.01); box-shadow: 0 0.7rem 1.35rem rgba(26, 58, 107, 0.12); } 100% { opacity: 1; transform: translateY(0) scale(1); box-shadow: 0 0.45rem 1rem rgba(26, 58, 107, 0.08); } }
@keyframes message-box-exit { from { opacity: 1; transform: translateY(0) scale(1); } to { opacity: 0; transform: translateY(var(--message-exit-y)) scale(0.98); } }
.button { display: inline-flex; min-height: 2.75rem; align-items: center; justify-content: center; padding: 0.65rem 1.1rem; border-radius: 0.25rem; font-weight: 700; border: 0; cursor: pointer; text-decoration: none; transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, box-shadow 160ms ease, transform 160ms ease; }
.button:not(:disabled):hover { transform: translateY(-1px); }
.button:disabled { cursor: not-allowed; opacity: 0.58; }
.button--primary { color: white; background: var(--color-action); }
.button--primary:hover { color: white; background: var(--color-action-hover); box-shadow: 0 0.45rem 1rem rgba(26, 58, 107, 0.18); }
.button--secondary { color: var(--cri-navy); border: 1px solid var(--cri-navy); background: white; }
.button--secondary:hover { color: white; border-color: var(--color-action-hover); background: var(--color-action-hover); box-shadow: 0 0.45rem 1rem rgba(26, 58, 107, 0.14); }
.button--quiet, .button--danger-link { color: var(--color-action); background: transparent; text-decoration: underline; text-underline-offset: 0.18em; }
.button--danger-link { color: var(--color-danger); }
.button--quiet:hover { color: var(--cri-navy-dark); background: var(--color-brand-tint); }
.button--danger-link:hover { color: var(--color-danger-strong); background: rgba(154, 47, 53, 0.08); }
.button--disabled { color: #56606f; border: 1px solid #aab6c5; background: var(--color-surface-secondary); }
.preparation { margin-top: 1.5rem; padding: clamp(1.5rem, 5vw, 2.5rem); border: 1px solid var(--color-border); border-radius: 0.25rem; background: var(--color-surface); }
.preparation__heading { max-width: 38rem; }
.preparation-list { margin: 0; padding: 0; list-style: none; margin-top: 1.5rem; counter-reset: item; }
.preparation-list li { display: grid; grid-template-columns: 2rem 1fr; gap: 0.75rem; align-items: center; padding: 0.85rem 0; border-bottom: 1px solid var(--color-border); font-weight: 600; counter-increment: item; }
.preparation-list li:first-child { border-top: 1px solid var(--color-border); }
.preparation-list li::before { content: counter(item, decimal-leading-zero); color: var(--cri-navy); font-family: var(--font-heading); font-size: 0.9rem; }
.content-page { padding: clamp(1.5rem, 5vw, 3rem); border: 1px solid var(--color-border); border-top: 0.25rem solid var(--cri-light-blue); border-radius: 0.25rem; background: var(--color-surface); }
.content-page h1 { font-size: clamp(2rem, 2.5vw, 3.1rem); }
.site-footer { color: var(--color-text-muted); border-top: 1px solid var(--color-border); background: var(--color-surface-subtle); }
.site-footer__content { min-height: 5rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: 1rem; }
.site-footer p { margin: 0; }
.site-footer a { color: var(--cri-navy); }
code { overflow-wrap: anywhere; }

@media (max-width: 42rem) {
  .site-navigation { min-height: auto; align-items: flex-start; flex-direction: column; padding-block: 0.85rem; }
  .site-identity { width: 100%; align-items: flex-start; }
  .site-identity__logo { width: 3rem; height: 3rem; }
  .site-identity__context { font-size: 0.65rem; line-height: 1.35; }
  .site-navigation__link { align-self: flex-end; margin-top: -0.4rem; }
  .page-content { padding-block: 1.5rem 2.5rem; }
  .message-box { --message-enter-y: 0.75rem; --message-exit-y: 0.45rem; top: auto; right: 0.75rem; bottom: max(0.75rem, env(safe-area-inset-bottom)); width: min(calc(100% - 1.5rem), 32rem); max-height: min(50vh, 22rem); overflow-y: auto; transform-origin: bottom right; }
  .service-hero, .content-page, .preparation { padding: 1.25rem; }
  .site-footer__content { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 22rem) {
  .site-identity__logo { width: 3rem; height: 3rem; }
  .site-identity__context { display: none; }
  .site-navigation__link { align-self: flex-start; margin-top: 0; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; } }
@media (forced-colors: active) { .service-hero, .content-page, .notice { border: 1px solid CanvasText; } }
