/* Shared mobile contract. Every rule is restricted to screens up to 767px. */
@media (max-width:767px) {
  *,*::before,*::after { box-sizing:border-box; }
  :root { --nav-side:20px; --side:20px; --nav-height:calc(104px + env(safe-area-inset-top)); --header-height:calc(80px + env(safe-area-inset-top)); }
  html { width:100%; max-width:100%; scroll-padding-top:calc(var(--header-height) + 20px); }
  #eventos { scroll-margin-top:calc(-1 * (var(--header-height) + 20px)); }
  body { width:100%; min-width:0; max-width:100%; min-height:100dvh; font-size:16px; overflow-wrap:anywhere; }
  main,section,article,header,footer,nav,form,fieldset,div,figure,dl { min-width:0; }
  img,picture,video,canvas { max-width:100%; }
  img { object-fit:contain; }
  h1,h2,h3,h4,p,li,dd,dt,label,a,button { overflow-wrap:anywhere; }
  h1,h2,h3,h4 { max-width:100%; }
  input,select,textarea,button { max-width:100%; }
  input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,textarea { width:100%; min-width:0; min-height:48px; font-size:16px; }
  input[type="checkbox"],input[type="radio"] { flex:0 0 auto; }
  button,[role="button"],summary { min-height:48px; font-size:16px; }
  a,button,input,select,textarea { scroll-margin-block:calc(var(--header-height) + 20px) 32px; }
  .container,.agenda-container,.about-container,.event-page-main,.portal-container,.client-main { width:100%; max-width:100%; margin-inline:auto; padding-inline:max(20px,env(safe-area-inset-left)) max(20px,env(safe-area-inset-right)); }
  .section { padding-block:56px; border-block:0; }
  /* Both photos reach the same opaque tone before the join, without a visible edge. */
  .hero,.events,.about { border:0; outline:0; box-shadow:none; }
  .events,.about { margin-top:0; box-shadow:0 -2px 0 var(--section-seam); }
  /* Paint the seam above the photo layers, keeping content and the horse in front. */
  .hero::after,.events::after,.about::after { z-index:0; border:0; outline:0; box-shadow:none; pointer-events:none; }
  .hero-content.container,.about-container { position:relative; z-index:1; }
  .events .agenda-motion { z-index:1; }
  .hero::after { bottom:0; height:112px; background:linear-gradient(to top,var(--section-seam) 0 6px,rgba(36,26,18,.85) 28%,rgba(36,26,18,.35) 65%,rgba(36,26,18,0) 100%); }
  .events::after { inset:0; background-image:linear-gradient(to bottom,var(--section-seam) 0 6px,rgba(36,26,18,0) 100%),linear-gradient(to top,var(--section-seam) 0 6px,rgba(36,26,18,0) 100%); background-size:100% 112px; }
  .about::after { inset:0 0 auto; height:112px; background:linear-gradient(to bottom,var(--section-seam) 0 6px,rgba(36,26,18,0) 100%); }
  /* A fotografia termina suavemente no mesmo tom do rodapé público. */
  .public-home .about::after {
    inset:0; height:auto;
    background-image:linear-gradient(to bottom,var(--section-seam) 0 6px,rgba(36,26,18,0) 100%),linear-gradient(to top,#1c1510 0%,rgba(28,21,16,.75) 35%,rgba(28,21,16,0) 100%);
    background-position:top,bottom; background-size:100% 112px,100% 48px; background-repeat:no-repeat;
  }
  .public-home .site-footer { border-top:0; }
  .site-footer-location::before,.site-footer-location::after { content:none; }

  /* Public navigation: crest and two direct, compact account actions. */
  .header-inner { display:grid; grid-template-columns:auto minmax(0,1fr); gap:0; height:var(--nav-height); padding:env(safe-area-inset-top) 20px 0; }
  .header .header-brand { margin:0; top:0; justify-self:start; }
  .header-brand img { height:72px; width:auto; }
  .header .desktop-nav { display:none; }
  .header .header-actions { display:flex; align-items:center; justify-content:flex-end; justify-self:end; width:auto; max-width:100%; gap:8px; }
  .header .header-actions :is(a,button) { width:auto; min-width:0; height:48px; min-height:48px; padding:0 10px; border-radius:5px; font-size:15px; line-height:1.25; letter-spacing:-.015em; white-space:nowrap; text-align:center; }
  .header .header-actions .account-button { padding-inline:6px; background:transparent; border:0; border-radius:0; color:var(--action-cream); box-shadow:none; }
  .header .header-actions .account-button:hover { background:transparent; color:var(--action-hover); }
  .header .header-actions .account-button::after { content:none; }
  .header .header-toggle { display:none; justify-self:end; align-items:center; justify-content:center; min-width:96px; min-height:48px; height:48px; padding:0; font-size:16px; }
  .header-toggle-icon { width:40px; height:48px; flex:0 0 40px; }
  .header-toggle-label { padding-right:16px; font-size:16px; }
  .mobile-menu { width:100%; height:100dvh; max-height:100dvh; padding:max(20px,env(safe-area-inset-top)) 20px max(20px,env(safe-area-inset-bottom)); overflow-y:auto; overscroll-behavior:contain; }
  .mobile-menu-top { grid-template-columns:48px minmax(0,1fr) 48px; gap:12px; }
  .mobile-menu-brand img { height:72px; }
  .mobile-menu-close { width:48px; min-height:48px; }
  .mobile-nav { display:grid; grid-template-columns:minmax(0,1fr); gap:12px; padding:32px 0 12px; }
  .mobile-menu-actions { display:grid; grid-template-columns:minmax(0,1fr); gap:12px; }
  .mobile-menu .mobile-nav a,.mobile-menu .mobile-menu-actions :is(a,button) { display:flex; width:100%; min-height:48px; height:auto; padding:14px 20px; border:1px solid var(--action-border); border-radius:var(--action-radius); background:var(--action-bg); color:var(--action-cream); font-size:16px; white-space:normal; text-align:center; }
  .mobile-menu .mobile-menu-actions .register-button { background:var(--action-gold); color:var(--action-dark); border-color:var(--action-gold); }
  .mobile-menu :is(.mobile-nav a,.account-button)::after { content:none; }
  .header-announcement { padding-inline:20px; font-size:13px; }
  .announcement-text { white-space:normal; }
  .announcement-link { font-size:13px; }

  /* Public hero: same photo, palette and typefaces; one readable column. */
  .hero { min-height:100dvh; height:auto; --hero-title-size:clamp(52px,14vw,62px); }
  .hero .hero-image { width:100%; height:100%; max-width:none; object-fit:cover; object-position:62% center; }
  .hero::before { background:linear-gradient(to right,var(--hero-shade-start) 0%,var(--hero-shade-inner) 55%,var(--hero-shade-edge) 100%); }
  .hero-content.container { grid-template-columns:minmax(0,1fr); gap:24px; padding:calc(var(--nav-height) + 48px) 20px 56px; }
  .hero-identity { width:100%; max-width:100%; text-align:left; }
  .hero .hero-lockup { width:100% !important; min-width:0; max-width:100%; }
  .hero .hero-eyebrow { width:auto; min-width:0; max-width:100%; margin-inline:0; margin-bottom:10px; font-size:13px; font-weight:500; line-height:1.5; letter-spacing:.13em; white-space:normal; }
  .hero h1 { width:max-content; max-width:100%; margin-left:0; font-size:clamp(52px,14vw,62px); font-weight:500; line-height:1.08; letter-spacing:-.025em; white-space:nowrap; text-wrap:nowrap; }
  .hero .hero-lockup .hero-brand-location { width:auto; max-width:100%; margin-top:20px; font-size:16px; line-height:1.6; white-space:normal; }
  .hero .hero-lockup .hero-brand-location span { min-width:0; flex:1; white-space:normal; }
  .hero-description { max-width:100%; margin-top:24px; font-size:16px; line-height:1.75; }
  .hero-actions { display:grid; grid-template-columns:minmax(0,1fr); gap:12px; width:100%; margin-top:24px; }
  .hero-actions .hero-primary { width:100%; min-height:48px; font-size:16px; }

  /* Public program and about section. Existing mobile artwork is preserved. */
  .events,.events:has(.agenda-announcement) { min-height:0; padding-top:56px; }
  .events .agenda-container,.events:has(.agenda-announcement) .agenda-container { padding-inline:20px; }
  .events .agenda-heading,.events:has(.agenda-announcement) .agenda-heading { max-width:100%; margin-bottom:32px; }
  .events .agenda-heading h2 { font-size:clamp(30px,8vw,38px); line-height:1.18; letter-spacing:-.03em; }
  .events .agenda-heading .agenda-reserve { font-size:20px; }
  .events .agenda-intro,.events .agenda-meta,.events .agenda-attractions { font-size:16px; }
  .events .agenda-announcement { top:0; width:100%; max-width:100%; }
  .events[data-agenda-motion]:has(.agenda-announcement) { padding-bottom:calc(var(--agenda-horse-size) + 56px); }
  .agenda-feature,.client-portal .portal-event-banner { grid-template-columns:minmax(0,1fr); }
  .agenda-feature-copy,.client-portal .agenda-feature-copy { padding:20px; }
  .agenda-poster { min-height:0; }
  .agenda-feature-copy :is(h1,h3),.client-portal .agenda-feature-copy :is(h1,h3) { font-size:clamp(24px,6.5vw,30px); }
  .agenda-row,.events .agenda-row,.events .agenda-content .agenda-empty,.portal-empty { width:100%; padding:20px; }
  .agenda-actions { display:flex; flex-direction:column; gap:12px; align-items:stretch; }
  .agenda-actions :is(a,button),.agenda-button,.client-portal .agenda-button { min-height:48px; font-size:16px; white-space:normal; }
  .agenda-actions :is(a,button) { width:100%; }
  .agenda-stats { grid-template-columns:minmax(0,1fr); gap:20px; }
  .agenda-stat dt,.agenda-tag,.agenda-date-block span:last-child { font-size:13px; }
  .agenda-categories { overflow-x:auto; max-width:100%; overscroll-behavior-x:contain; }
  .agenda-categories table { width:100%; min-width:540px; font-size:16px; }
  .agenda-categories thead th { font-size:13px; }
  .agenda-categories :is(th,td) { overflow-wrap:normal; }
  .about { min-height:0; padding-block:56px; }
  .about-container { padding-inline:20px; }
  .about-layout { grid-template-columns:minmax(0,1fr); gap:24px; }
  .about-story { max-width:100%; }
  .about-story h2 { font-size:clamp(32px,8.5vw,38px); }
  .about-copy { gap:24px; margin-top:24px; }
  .about-copy p { font-size:16px; line-height:1.75; }
  .about-identity { gap:16px; }
  .about-identity-location { font-size:16px; line-height:1.6; }
  .about-identity-location span { white-space:normal; }
  .site-footer { padding:24px 20px max(24px,env(safe-area-inset-bottom)); border-top:0; }
  .site-footer-inner { grid-template-columns:minmax(0,1fr); gap:20px; text-align:center; }
  .site-footer-brand,.site-footer-location,.site-footer-legal { grid-column:auto; grid-row:auto; justify-self:stretch; }
  .site-footer-brand { justify-items:center; gap:6px; }
  .site-footer-name { font-size:40px; line-height:1.05; }
  .site-footer-location { justify-content:center; font-size:16px; line-height:1.6; min-height:32px; }
  .site-footer-legal { display:flex; align-items:center; flex-direction:column; gap:12px; border:0; padding:0; }
  .site-footer-privacy { width:100%; justify-content:center; min-height:48px; font-size:16px; text-align:center; }
  .site-footer-legal small { font-size:13px; line-height:1.6; }
  .site-footer-subtitle { font-size:13px; letter-spacing:.06em; }

  /* Login and registration: one field column, no inner scrolling. */
  body:has(.access-main) { min-height:100dvh; }
  .access-header { width:100%; padding:calc(16px + env(safe-area-inset-top)) 20px 16px; gap:12px; flex-wrap:wrap; }
  .access-brand { gap:10px; min-width:0; }
  .access-brand img { width:44px; flex-shrink:0; }
  .access-brand>span { max-width:130px; font-size:28px; white-space:normal; }
  .access-brand small { font-size:13px; line-height:1.4; letter-spacing:0; }
  .access-back { font-size:16px; min-height:48px; padding:0; white-space:normal; }
  .access-main,.access-main:has(.access-card[data-mode="register"]) { padding:16px 20px 32px; align-content:start; }
  .access-card { width:100%; max-width:100%; min-height:0; }
  .access-content { padding:20px; }
  .access-switch { grid-template-columns:repeat(2,minmax(0,1fr)); margin-bottom:24px; }
  .access-switch a { min-height:48px; padding:12px 8px; font-size:16px; }
  .access-register-grid,#panel-register .access-register-grid,.access-columns,#panel-register .access-columns,.access-register-grid .access-columns { grid-template-columns:minmax(0,1fr); gap:20px; }
  .access-register-grid>.access-field,.access-register-grid>.access-columns { grid-column:auto; }
  .access-field label { font-size:16px; }
  .access-field input,.access-field select,#panel-register .access-field input,#panel-register .access-field select { height:52px; min-height:52px; font-size:16px; }
  .access-label-row { gap:8px 12px; }
  .access-text-button,.access-reveal,.access-register-grid .access-reveal { min-height:48px; font-size:16px; }
  .access-reveal,.access-register-grid .access-reveal { top:2px; right:2px; min-width:76px; }
  .access-password input,.access-register-grid .access-password input { padding-right:88px; }
  .access-hint,.access-error,.access-demo-entry,.access-demo-label { font-size:13px; line-height:1.6; }
  .access-description,.access-switch-note,.access-alert,.access-message { font-size:16px; }
  .access-trap input { min-height:0; }
  .access-submit { width:100%; min-height:48px; font-size:16px; }
  .access-register-title { font-size:clamp(26px,7vw,32px); }
  .access-footer { padding-inline:20px; padding-bottom:max(20px,env(safe-area-inset-bottom)); font-size:16px; }
  .access-privacy { min-height:48px; }

  /* Client header and full-screen menu reuse the desktop links and button styles. */
  .portal-shell { min-height:100dvh; }
  .portal-header-inner { height:var(--header-height); grid-template-columns:minmax(0,1fr) auto; gap:12px; padding-top:env(safe-area-inset-top); }
  .portal-brand img { height:48px; width:auto; }
  .portal-header-inner .portal-brand-name { display:none; }
  .portal-mobile-menu-button,.portal-mobile-menu-close { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:12px 18px; border:0; border-radius:3px; background:var(--header-account,#6a5339); color:#fff4de; font:600 16px/1.4 var(--sans); cursor:pointer; }
  .portal-mobile-dialog { position:fixed; inset:0; margin:0; width:100%; max-width:100%; height:100dvh; max-height:100dvh; padding:max(20px,env(safe-area-inset-top)) 20px max(20px,env(safe-area-inset-bottom)); border:0; border-radius:0; background:var(--header-paper,#24211d); color:#f0e1c7; overflow-y:auto; overscroll-behavior:contain; }
  .portal-mobile-dialog:not([open]) { display:none; }
  .portal-mobile-dialog[open] { display:flex; flex-direction:column; gap:24px; }
  .portal-mobile-dialog::backdrop { background:var(--header-paper,#24211d); }
  .portal-mobile-dialog-top { display:flex; align-items:center; justify-content:space-between; gap:12px; }
  .portal-mobile-dialog-top h2 { font:600 clamp(24px,6.5vw,30px)/1.3 var(--sans); }
  .portal-mobile-dialog .portal-navigation { position:static; display:grid; grid-template-columns:minmax(0,1fr); gap:12px; width:100%; height:auto; padding:0; border:0; background:none; }
  .portal-mobile-dialog .portal-navigation a { flex-direction:row; width:100%; min-height:48px; height:auto; padding:14px 20px; border:0; border-radius:3px; background:rgba(217,178,124,.06); font-size:16px; letter-spacing:.055em; white-space:normal; }
  .portal-mobile-dialog .portal-navigation a[aria-current],.portal-mobile-dialog .portal-navigation a[aria-current]:hover { background:var(--header-selected); color:#271b0d; }
  .portal-mobile-dialog .portal-navigation a::after { content:none; }
  .portal-mobile-dialog .portal-account { display:grid; grid-template-columns:minmax(0,1fr); width:100%; gap:12px; justify-self:stretch; }
  .portal-mobile-dialog .portal-identity { width:100%; max-width:100%; min-height:48px; padding:14px 20px; justify-content:center; }
  .portal-mobile-dialog .portal-identity-label,.portal-mobile-dialog .portal-identity:not(:has([data-client-name]:not([hidden]))) .portal-identity-label { font-size:16px; }
  .portal-mobile-dialog .portal-identity strong { font-size:16px; white-space:normal; }
  .portal-mobile-dialog .portal-identity-cpf { font-size:13px; white-space:normal; }
  .portal-mobile-dialog .portal-header-exit { display:flex; align-items:center; justify-content:center; gap:8px; width:100%; min-height:48px; padding:14px 20px; border:0; border-radius:3px; background:var(--header-exit); color:#fff7ee; font-size:16px; font-weight:600; letter-spacing:.05em; text-transform:uppercase; }
  .portal-mobile-dialog .portal-identity-icon { width:20px; height:20px; }
  .portal-mobile-dialog .portal-identity-copy { min-width:0; }
  .portal-mobile-dialog .portal-identity-label { white-space:normal; }
  .portal-mobile-dialog .portal-header-exit:hover { background:var(--header-exit-hover); }
  html.portal-mobile-menu-open { overflow:hidden; }
  .portal-footer { padding:0 20px max(24px,env(safe-area-inset-bottom)); }
  .portal-footer a { min-height:48px; font-size:16px; }
  .client-portal .portal-main,body:has([data-client-view="conta"]:not([hidden])) .portal-main,body:has([data-client-view="vaquejadas"]:not([hidden])) .portal-main { padding-top:24px; padding-bottom:32px; }
  .portal-page-heading h1 { font-size:clamp(26px,7vw,32px); }
  .portal-page-heading p,.portal-empty p,.portal-event-about p { font-size:16px; line-height:1.7; }
  .portal-page-heading { margin-bottom:24px; }
  .portal-filters,.portal-pass-filters,.portal-profile-fields,.portal-reservation-body { grid-template-columns:minmax(0,1fr); gap:20px; }
  .portal-profile-field,.portal-profile-field:has(input),.portal-profile-field:has(select) { grid-column:1/-1; }
  .portal-pass-panel,.portal-account-card,.portal-event-empty,.portal-error,.portal-event-about,.portal-reservation { width:100%; padding:20px; }
  .portal-profile-form { padding:20px; }
  [data-client-view="conta"] .portal-account-card { padding:0; }
  .portal-profile-form-footer { display:flex; flex-direction:column; align-items:stretch; gap:20px; margin:24px -20px -20px; padding:20px; }
  .portal-profile-form-actions { display:flex; flex-direction:column; gap:12px; width:100%; margin:0; }
  .portal-profile-form-actions .agenda-button { width:100%; min-height:48px; font-size:16px; }
  .portal-profile-field label,.portal-pass-filters label>span,.portal-reservation-field label { font-size:16px; }
  .portal-profile-hint,.portal-field-error,.portal-profile-form-status,.portal-panel-heading>span,.portal-pass-meta dt,.portal-pass-filters label>span,.portal-results { font-size:13px; line-height:1.6; }
  .portal-profile-field :is(input,select),.portal-pass-filters :is(input,select),.portal-reservation-field select { height:52px; min-height:52px; font-size:16px; }
  .portal-profile-section-title { font-size:20px; }
  .portal-pass-meta { grid-template-columns:minmax(0,1fr); gap:20px; }
  .portal-pass-meta dd { font-size:16px; }
  .portal-pass-actions { display:flex; flex-direction:column; gap:12px; }
  .portal-pass-actions .agenda-button { width:100%; }
  .portal-pass-top { gap:12px; }
  .portal-empty h3 { font-size:clamp(22px,6vw,26px); }
  .portal-current-event { gap:56px; }
  .portal-event-stage { max-width:100%; }
  .portal-event-sheet,.portal-event-sheet.portal-event-sheet-artwork { width:100%; margin:0; }
  .portal-event-sheet { padding:20px; }
  .portal-event-sheet.portal-event-sheet-artwork { padding:0; }
  .portal-event-sheet-heading { grid-template-columns:minmax(0,1fr); }
  .portal-event-date { grid-row:auto; }
  .portal-event-sheet h2 { font-size:clamp(24px,6.5vw,30px); }
  .portal-event-directory dd,.portal-event-location strong,.portal-event-location>span { font-size:16px; }
  .portal-event-directory dt,.portal-event-date-month,.portal-event-highlights dt,.portal-event-value-note { font-size:13px; }
  .portal-event-highlights { grid-template-columns:minmax(0,1fr); gap:20px; }
  .portal-event-sheet-footer { grid-template-columns:minmax(0,1fr); margin-inline:-20px; padding:20px; }
  .portal-event-sheet-artwork .portal-event-sheet-footer { margin:0; padding:20px; }
  .portal-event-sheet-actions,.portal-event-sheet-artwork .portal-event-sheet-actions { display:flex; flex-direction:column; align-items:stretch; gap:12px; }
  .client-portal .portal-event-sheet-actions .agenda-button { width:100%; min-width:0; min-height:48px; font-size:16px; }

  /* Purchase flow: one column, touch targets and contained tables. */
  .compra-conteudo { gap:24px; }
  .compra-topo { flex-direction:column; align-items:stretch; gap:16px; }
  .compra-topo h2 { font-size:clamp(24px,6.5vw,30px); }
  .compra-etapas { display:grid; grid-template-columns:minmax(0,1fr); gap:12px; font-size:16px; }
  .compra-etapa-numero { width:28px; height:28px; font-size:13px; }
  .compra-intro,.compra-etapa-descricao,.compra-local,.compra-aviso,.compra-condicao-texto p { font-size:16px; line-height:1.7; }
  .compra-cards { grid-template-columns:minmax(0,1fr); gap:24px; }
  .compra-card { width:100%; padding:20px; }
  .compra-card-cabecalho { margin:-20px -20px 0; padding:20px; }
  .compra-card-nome,.compra-card-cabecalho .compra-card-nome { font-size:20px; }
  .compra-card-preco { font-size:clamp(28px,8vw,34px); }
  .compra-card-tipo,.compra-card-cabecalho .compra-card-tipo,.compra-card-valores dt,.compra-card-valores dd,.compra-vigente,.compra-card-nota,.compra-carrinho-qtd { font-size:13px; line-height:1.6; }
  .compra-card-valores { grid-template-columns:minmax(0,1fr); gap:16px; }
  .compra-card-valores div,.compra-card-valores div+div { padding:0; border-left:0; }
  .compra-premio,.compra-premio strong,.compra-card-fatos,.compra-total,.compra-carrinho-item,.compra-carrinho-valor,.compra-legenda { font-size:16px; }
  .compra-premio strong { margin-left:0; }
  .compra-card-rodape { gap:20px; }
  .client-portal .compra-card-botao { min-height:48px; font-size:16px; }
  .compra-mapa,.compra-carrinho,.compra-formulario,.compra-resumo,.compra-competidor { padding:20px; max-width:100%; }
  .compra-campos { grid-template-columns:minmax(0,1fr); gap:20px; }
  .compra-campo-largo { grid-column:auto; }
  .compra-campo label { font-size:16px; }
  .compra-campo :is(input,select) { min-height:52px; height:52px; font-size:16px; }
  .compra-carrinho-lista li { grid-template-columns:minmax(0,1fr); gap:12px; }
  .compra-carrinho-rodape { display:flex; flex-direction:column; align-items:stretch; gap:20px; margin:0 -20px -20px; padding:20px; }
  .compra-carrinho-rodape .agenda-button { width:100%; }
  .compra-acoes,.compra-mapa-botoes { display:flex; flex-direction:column; gap:12px; width:100%; }
  .compra-acoes .agenda-button,.compra-mapa-botoes .agenda-button { width:100%; min-height:48px; font-size:16px; }
  .compra-erro,.compra-form-status,.compra-mapa-ajuda,.compra-mapa-contagem,.compra-mapa-status { font-size:13px; line-height:1.7; }
  .compra-termos { align-items:flex-start; font-size:16px; }
  .compra-termos label { font-size:16px; }
  .compra-link { font-size:16px; min-height:48px; }
  .compra-resumo { overflow:visible; }
  .mobile-table-scroll { width:100%; min-width:0; max-width:100%; overflow-x:auto; overscroll-behavior-x:contain; }
  .compra .compra-tabela { display:table; width:100%; min-width:580px; font-size:16px; }
  .compra .compra-tabela thead { position:static; display:table-header-group; width:auto; height:auto; overflow:visible; clip-path:none; }
  .compra .compra-tabela tbody { display:table-row-group; }
  .compra .compra-tabela tfoot { display:table-footer-group; }
  .compra .compra-tabela tr { display:table-row; }
  .compra .compra-tabela :is(th,td) { display:table-cell; padding:12px; font-size:16px; }
  .compra .compra-tabela thead th { font-size:13px; }
  .compra .compra-tabela :is(th,td)::before { content:none; }
  .compra-dialogo { width:calc(100% - 40px); max-width:calc(100% - 40px); max-height:calc(100dvh - 40px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); margin:auto; overflow:auto; }
  .compra-dialogo .compra-mapa { max-height:none; padding:20px 20px 0; }
  .compra-dialogo .compra-grade { min-height:96px; max-height:32dvh; grid-template-columns:repeat(auto-fill,minmax(48px,1fr)); gap:12px; }
  .compra-numero { min-height:48px; font-size:16px; }
  .compra-amostra { width:24px; height:24px; font-size:13px; }
  .compra-dialogo .compra-mapa-acoes { margin-inline:-20px; padding:20px; }
  .portal-pass-dialog { width:calc(100% - 40px); max-width:calc(100% - 40px); max-height:calc(100dvh - 40px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); padding:20px; margin:auto; }
  .portal-pass-dialog dl { grid-template-columns:minmax(0,1fr); gap:20px; }
  .portal-pass-dialog dt { font-size:13px; }
  .portal-pass-dialog dd { font-size:16px; }
  .portal-pass-dialog .agenda-button { width:100%; min-height:48px; font-size:16px; }

  /* Public event details, privacy and the legacy local access page. */
  .event-page-header { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:20px; }
  .event-page-header img { width:auto; height:48px; }
  .event-page-header>[data-event-back] { min-height:48px; max-width:220px; font-size:16px; white-space:normal; text-align:right; }
  .event-page-main { margin-block:32px 56px; }
  .agenda-page .agenda-feature-copy { padding:20px; }
  .agenda-page .agenda-meta,.agenda-page .agenda-attractions { font-size:16px; }
  .policy-masthead-inner { height:auto; min-height:88px; padding:calc(16px + env(safe-area-inset-top)) 20px 16px; gap:12px; flex-wrap:wrap; }
  .policy-brand { gap:10px; min-width:0; }
  .policy-brand img { height:48px; }
  .policy-brand>span { max-width:90px; font-size:28px; white-space:normal; }
  .policy-brand small { font-size:13px; line-height:1.4; letter-spacing:0; }
  .policy-back { min-height:48px; padding:10px; font-size:16px; white-space:normal; }
  .wrap { display:grid; grid-template-columns:minmax(0,1fr); gap:24px; width:100%; max-width:100%; margin:0; padding:32px 20px 56px; }
  .policy-intro,.policy-contents,.policy-document,.wrap>footer { grid-column:1; grid-row:auto; width:100%; max-width:100%; }
  .policy-sidebar { display:none; }
  .policy-intro h1 { font-size:clamp(28px,7.5vw,36px); }
  .lead,.policy-document p,.policy-document li { font-size:16px; line-height:1.8; }
  .policy-document { padding:20px; }
  .policy-document section { padding-inline:0; scroll-margin-top:160px; }
  .policy-document h2 { font-size:clamp(22px,6vw,28px); }
  .policy-document h3 { font-size:20px; }
  .policy-contents summary { min-height:48px; padding:20px; }
  .policy-contents-label { font-size:16px; }
  .policy-contents-label>span,.policy-document .n,.ref,.wrap>footer { font-size:13px; }
  .toc { columns:1; padding:20px; }
  nav.toc ol { columns:1; }
  nav.toc a { display:flex; align-items:center; min-height:48px; font-size:16px; }
  .tabela { max-width:100%; overflow-x:auto; overscroll-behavior-x:contain; }
  .tabela table { min-width:580px; font-size:16px; }
  .demo-header { padding:20px; gap:12px; flex-wrap:wrap; }
  .demo-main { width:100%; padding:24px 20px 56px; }
  .demo-card { width:100%; max-width:100%; padding:20px; }
  .demo-card h1 { font-size:clamp(28px,7.5vw,36px); }
  .demo-card p,.demo-card .muted,.demo-credentials,.form-field label { font-size:16px; }
  .demo-card .eyebrow { font-size:13px; }
  .form-field input { min-height:52px; font-size:16px; }
  .demo-card .client-button { width:100%; min-height:48px; font-size:16px; }
  .demo-header .client-link { font-size:16px; min-height:48px; }
  .demo-password input { padding-right:90px; }
  .demo-password button { min-height:48px; font-size:16px; }
  .demo-footer { padding:0 20px max(20px,env(safe-area-inset-bottom)); font-size:16px; }
}

/* Marca do rodape oculta somente na pagina inicial em celulares. */
@media screen and (max-width:767px) {
  .public-home .site-footer .site-footer-brand { display:none; }
  .public-home .site-footer { padding:24px 20px max(28px,env(safe-area-inset-bottom)); }
  .public-home .site-footer-inner { gap:12px; }
  .public-home .site-footer-location { margin:0; gap:8px; font-size:14px; line-height:1.6; }
  .public-home .site-footer-location svg { width:17px; height:21px; flex-basis:17px; }
  .public-home .site-footer-legal { width:100%; gap:16px; }
  .public-home .site-footer-privacy { width:auto; min-height:44px; padding:10px 12px; font-size:14px; font-weight:500; }
  .public-home .site-footer .site-footer-support { width:100%; min-height:48px; justify-content:center; margin:0; padding:8px 0; border-radius:0; background:transparent; text-align:center; }
  .public-home .site-footer-support>span { align-items:center; gap:5px; }
  .public-home .site-footer .site-footer-support small { font-size:13px; line-height:1.4; }
  .public-home .site-footer-support strong { font-size:16px; font-weight:600; line-height:1.5; }
  .public-home .site-footer-support:hover { background:transparent; }
}

/* Conheca o Parque: leitura mobile uniforme, sem alterar o enquadramento desktop. */
@media screen and (max-width:767px) {
  .public-home .about { min-height:0; padding-block:48px; }
  .public-home .about .about-layout { grid-template-columns:minmax(0,1fr) clamp(112px,30vw,140px); gap:24px 16px; align-items:center; }
  .public-home .about .about-story { display:contents; }
  .public-home .about .about-story h2 { grid-column:1/-1; margin:0; font-size:clamp(30px,8vw,38px); line-height:1.18; letter-spacing:-.03em; }
  .public-home .about .about-copy { grid-column:1/-1; grid-row:3; display:grid; gap:20px; margin:0; padding:0; max-width:100%; }
  .public-home .about .about-copy p { margin:0; max-width:100%; font-size:16px; line-height:1.8; letter-spacing:0; text-wrap:pretty; overflow-wrap:break-word; }
  .public-home .about .about-copy p:first-child { font-size:17px; line-height:1.85; color:rgba(243,233,216,.94); }
  .public-home .about .about-info-icon { width:19px; height:19px; margin-right:7px; }
  .public-home .about .about-copy p+p { display:none; }
  .public-home .about .about-map-link { grid-column:1; grid-row:2; display:grid; grid-template-columns:24px minmax(0,1fr); align-items:center; gap:10px; width:100%; margin:0; padding:14px 0; min-height:88px; border-radius:7px; background:transparent; }
  .public-home .about .about-map-link>img { width:24px; height:32px; margin:0; }
  .public-home .about .about-map-copy { gap:4px; }
  .public-home .about .about-map-copy strong { font-size:15px; line-height:1.5; font-weight:600; letter-spacing:-.01em; }
  .public-home .about .about-map-copy>span { font-size:13px; line-height:1.6; }
  .public-home .about .about-identity { grid-column:2; grid-row:2; min-width:0; margin:0; padding:0; gap:0; }
  .public-home .about .about-crest { display:block; width:100%; max-width:140px; height:auto; margin:0; }
}
