.registration.native-registration{align-items:start;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:48px}
.registration.native-registration .registration-price{margin-top:32px}
/* Race facts as a short ledger instead of loose paragraphs. */
.registration-form-panel{position:relative;min-width:0;width:100%;color:#482b1a}
.private-mode{font-size:13px;line-height:1.5;margin:0 0 18px;padding:10px 14px;background:#e9dcc5;border:1px dashed #ad9678;color:#5b3a22}
.native-registration [hidden]{display:none!important}

/* The form is the blank race ticket from «Antes de correr»; once saved, the same ticket carries the code and a stamp. */
.entry-ticket{--notch:14px;position:relative;min-width:0;margin:0;padding:0;background:#fbf6ec;border:1px solid #c7ad88}
.native-registration .entry-ticket .ticket-stub{padding:26px 30px}
.native-registration .entry-ticket .ticket-label{margin-bottom:18px}
.native-registration fieldset{border:0;padding:0;margin:0;min-width:0}
.native-registration fieldset.entry-ticket{border:1px solid #c7ad88}
.native-registration label,.native-registration .choice-field legend{display:block;margin:20px 0 7px;padding:0;font-size:15px;font-weight:600;line-height:1.35}
.native-registration .choice-field{margin-top:20px}
.native-registration .choice-field legend{margin-top:0}
.native-registration .ticket-label+label,.native-registration .ticket-label+.choice-field{margin-top:0}
.native-registration label span{font-weight:400;color:#72553b}
.native-registration input,.native-registration select{display:block;width:100%;max-width:100%;min-width:0;min-height:50px;border:1px solid #ad9678;border-radius:0;background:#fffdf8;color:#482b1a;font:inherit;font-size:17px;padding:10px 13px;box-sizing:border-box;transition:border-color .16s}
.native-registration input::placeholder{color:#a08b72}
.native-registration input:hover{border-color:#8a6a4d}
.native-registration input:focus,.native-registration select:focus{border-color:#4d2b17;outline:2px solid #27616b;outline-offset:3px}
.native-registration [aria-invalid=true]{border-color:#a13822}
.native-registration .age-input{max-width:150px}

/* Choices read as one segmented strip you tap, like the 5K/10K switch on the route map. */
.choices{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);border:1px solid #ad9678;background:#fffdf8}
.native-registration .choices label{position:relative;margin:0;font-weight:600}
.native-registration .choices input{position:absolute;inset:0;width:100%;height:100%;min-height:0;margin:0;padding:0;border:0;opacity:0;cursor:pointer}
.native-registration .choices span{display:flex;align-items:center;justify-content:center;min-height:48px;padding:0 4px;color:#482b1a;font-weight:600;font-size:16px;transition:background-color .16s,color .16s}
.choices label+label span{border-left:1px solid #d8c7ae}
.choices input:hover:not(:checked)+span{background:#f3e7d4}
.native-registration .choices input:checked+span{background:#4d2b17;color:#faf4e9}
.choices input:focus-visible+span{outline:3px solid #27616b;outline-offset:-3px}
.native-registration .choices-distance span{min-height:66px;font:400 36px/1 Bodoni,Didot,serif;letter-spacing:-.03em}
.choice-field[aria-invalid=true] .choices{border-color:#a13822}

.native-registration .guardian-consent label{display:flex;gap:12px;align-items:flex-start;margin:0;font-size:16px;font-weight:400;line-height:1.45}
.native-registration .guardian-consent label span{color:#482b1a}
.native-registration .guardian-consent input{appearance:none;-webkit-appearance:none;flex:none;width:24px;min-width:24px;height:24px;min-height:24px;margin:0;padding:0;border:1.5px solid #4d2b17;background:#fffdf8 center/15px no-repeat;cursor:pointer;transition:background-color .16s}
.native-registration .guardian-consent input:checked{background-color:#4d2b17;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.5l3.2 3L13 4.5' fill='none' stroke='%23faf4e9' stroke-width='2'/%3E%3C/svg%3E")}
.native-registration .guardian-consent input[aria-invalid=true]{border-color:#a13822}
#guardian-consent-field{margin-bottom:18px;padding-bottom:18px;border-bottom:1px solid #e0d1ba}
.registration-terms details{margin:8px 0 0 36px;font-size:15px;line-height:1.5;color:#72553b}
.registration-terms summary{cursor:pointer;width:max-content;max-width:100%;color:#482b1a;text-decoration:underline;text-underline-offset:3px;text-decoration-color:#ad9678;padding:8px 0}
.registration-terms summary:focus-visible{outline:2px solid #27616b;outline-offset:3px}
.registration-terms ul{margin:6px 0 0;padding-left:18px}
.registration-terms li+li{margin-top:6px}

.field-error{margin:6px 0 0;font-size:14px;line-height:1.4;color:#a13822}
.field-error:empty{display:none}
.form-message{margin:0;color:#8f2f1b;font-size:15px;line-height:1.5}
.form-message:not(:empty){margin-top:16px;padding:11px 14px;border-left:3px solid #a13822;background:#f5e3d6}
.turnstile-slot{margin-top:16px;min-height:65px;max-width:100%;overflow:hidden}
.form-footnote{font-size:14px;line-height:1.5;color:#72553b;margin:12px 0 0}
.privacy-note{margin-top:4px;font-size:13px}

.native-registration button{min-height:48px;max-width:100%;border:1px solid #4d2b17;border-radius:0;background:#4d2b17;color:#faf4e9;font:inherit;padding:12px 18px;cursor:pointer;transition:background-color .16s}
.native-registration button:hover:not(:disabled){background:#643d26}
.native-registration button:focus-visible{outline:3px solid #27616b;outline-offset:3px}
.native-registration button:disabled{opacity:.6;cursor:default}
.native-registration #register-button{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;width:100%;min-height:60px;margin-top:16px;font-size:18px;font-weight:600}
/* While saving, a short stripe runs along the button instead of a spinner. */
.native-registration #register-button[aria-busy]{opacity:1}
#register-button[aria-busy]::after{content:"";position:absolute;left:0;bottom:0;width:30%;height:3px;background:#e2a35c;animation:amels-run 1.1s cubic-bezier(.45,0,.55,1) infinite}
@keyframes amels-run{from{transform:translateX(-100%)}to{transform:translateX(340%)}}
.native-registration .secondary,.native-registration #copy-code,.native-registration #refresh-receipt,.native-registration .bank-list button{background:transparent;color:#482b1a;border-color:#ad9678}
.native-registration #copy-code:hover,.native-registration #refresh-receipt:hover:not(:disabled),.native-registration .bank-list button:hover{background:#f3e7d4}

/* Outside the dates: one date or one word, large, and when to come back. */
.notice-mark{display:grid;gap:4px;margin:0 0 14px}
.notice-mark small{font:600 12px/1.3 Source,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#196368}
.notice-mark small:empty{display:none}
.notice-mark strong{font:400 clamp(68px,8vw,104px)/.95 Bodoni,Didot,serif;letter-spacing:-.045em;color:#482b1a}
.notice-text{margin:0;max-width:36ch;font-size:17px;line-height:1.5}
#recover-panel .notice-text{margin-bottom:18px}

/* Receipt. */
.registration-receipt:focus{outline:none}
.receipt-stamp{float:right;margin:-2px -4px 10px 14px;padding:6px 11px;border:2px solid currentColor;outline:1px solid currentColor;outline-offset:2px;border-radius:3px;color:#984021;font:600 12px/1.15 Source,sans-serif;letter-spacing:.16em;text-transform:uppercase;transform:rotate(-7deg);opacity:.9}
.receipt-stamp:empty{display:none}
.registration-receipt[data-paid=true] .receipt-stamp{color:#196368}
.registration-receipt h3{margin:0;font:400 clamp(30px,3.2vw,38px)/1.08 Bodoni,Didot,serif;letter-spacing:-.03em}
.receipt-code-row{clear:both;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px -30px 14px;padding:16px 30px;border-block:1px dashed #ad9678;background:#f3eadb}
.native-registration .receipt-code{margin:0;font:600 clamp(30px,4vw,40px)/1.1 Source,sans-serif;letter-spacing:.06em;color:#482b1a;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.native-registration #copy-code{flex:none;min-height:44px;padding:8px 14px}
.registration-receipt p{font-size:16px;line-height:1.5}
#receipt-detail{margin:0;color:#5b3a22}
#receipt-detail:empty{display:none}

/* Paid: the bib itself. Pin holes in the corners and the shirt's stripes on top. */
.race-bib{display:grid;justify-items:center;gap:2px;padding:26px 20px 18px;text-align:center;border:1.5px solid #482b1a;background:linear-gradient(90deg,#984021 0 33.4%,#c99a4a 0 66.7%,#196368 0) top/100% 7px no-repeat,radial-gradient(circle at 16px 22px,#f3eadb 3.5px,#b49a77 4px 5px,transparent 5.5px),radial-gradient(circle at calc(100% - 16px) 22px,#f3eadb 3.5px,#b49a77 4px 5px,transparent 5.5px),radial-gradient(circle at 16px calc(100% - 16px),#f3eadb 3.5px,#b49a77 4px 5px,transparent 5.5px),radial-gradient(circle at calc(100% - 16px) calc(100% - 16px),#f3eadb 3.5px,#b49a77 4px 5px,transparent 5.5px),#fffdf8}
.race-bib-event{font:600 11.5px/1.3 Source,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#984021}
.race-bib strong{font:400 clamp(96px,13vw,136px)/1 Bodoni,Didot,serif;letter-spacing:-.05em;color:#482b1a;font-variant-numeric:lining-nums}
.race-bib-distance{font:600 15px/1.2 Source,sans-serif;letter-spacing:.12em;color:#196368}
.native-registration .receipt-pickup{margin:16px 0 0;font-size:16px}

/* Pending: the three things left, in order, with the accounts inside the first one. */
.pay-steps{list-style:none;margin:0;padding:0;counter-reset:pay}
.pay-steps>li{counter-increment:pay;display:grid;grid-template-columns:30px minmax(0,1fr);column-gap:10px;padding:16px 0;border-top:1px solid #e0d1ba}
.pay-steps>li:first-child{padding-top:0;border-top:0}
.pay-steps>li:last-child{padding-bottom:0}
.pay-steps>li::before{content:counter(pay);grid-row:1/span 3;font:400 26px/1.05 Newsreader,Georgia,serif;color:#984021}
.pay-steps>li>*{grid-column:2}
.pay-steps strong{font:400 22px/1.15 Newsreader,Georgia,serif}
.pay-steps li>span{display:block;margin-top:4px;font-size:15.5px;line-height:1.45;color:#72553b}
.receipt-bank{margin-top:12px}
.bank-list{list-style:none;margin:0;padding:0;border-top:1px solid #e0d1ba}
.bank-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 14px;padding:12px 0;border-bottom:1px solid #e0d1ba}
.bank-list span{grid-column:1;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:#196368;font-weight:600}
.bank-list strong{grid-column:1;font:600 21px/1.25 Source,sans-serif;letter-spacing:.03em;color:#482b1a;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.native-registration .bank-list button{grid-column:2;grid-row:1/span 2;min-height:44px;padding:8px 14px}
.native-registration .registration-receipt .bank-holder{display:grid;gap:2px;margin:0 0 12px;padding:12px 14px;background:#f3eadb;border-left:3px solid #984021}
.bank-holder span{font:600 12.5px/1.3 Source,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#196368}
.bank-holder strong{font:600 19px/1.3 Source,sans-serif;color:#482b1a;overflow-wrap:anywhere}
.whatsapp-actions{margin-top:14px}
.native-registration #store-whatsapp{width:100%;min-height:54px;font-weight:600}

.native-registration .registration-receipt .receipt-kit{margin:0 0 6px;padding-left:12px;border-left:3px solid #c99a4a;font:400 18px/1.35 Newsreader,Georgia,serif;color:#482b1a}
#popup-note{margin:10px 0 0;font-size:15px;color:#196368}
#popup-note:empty{display:none}
.native-registration #refresh-receipt{margin-top:14px}

/* The ticket prints, the code inks in, then the stamp lands. Final frame is the resting state. */
@media (prefers-reduced-motion:no-preference){
 .registration-receipt.is-printed{animation:ticket-print .7s cubic-bezier(.2,.75,.15,1) both}
 .registration-receipt.is-printed .receipt-code{animation:code-ink .55s ease-out .25s both}
 .registration-receipt.is-printed .receipt-stamp{animation:stamp-drop .34s cubic-bezier(.3,1.35,.5,1) .6s both}
 .registration-receipt.is-printed .race-bib strong{animation:code-ink .6s ease-out .3s both}
}
@keyframes ticket-print{from{clip-path:inset(0 -24px 100% -24px);transform:translateY(-10px)}to{clip-path:inset(0 -24px -24px -24px);transform:none}}
@keyframes code-ink{from{opacity:0;filter:blur(3px)}to{opacity:1;filter:none}}
@keyframes stamp-drop{from{opacity:0;transform:rotate(-15deg) scale(1.8)}70%{opacity:1;transform:rotate(-6deg) scale(.96)}to{opacity:.9;transform:rotate(-7deg) scale(1)}}

.native-registration dialog{max-width:min(520px,calc(100vw - 32px));max-height:calc(100dvh - 32px);box-sizing:border-box;border:1px solid #ad9678;background:#faf4e9;color:#482b1a;padding:24px;overflow:auto}
.native-registration dialog::backdrop{background:#482b1a66}
.native-registration dialog h3{font:400 26px/1.2 Newsreader,Georgia,serif;padding:0}
.native-registration dialog p{font-size:16px;line-height:1.6;overflow-wrap:anywhere}

@media(max-width:760px){
 .registration.native-registration{grid-template-columns:1fr;gap:28px}
 .registration.native-registration .registration-price{margin-top:24px}
 .native-registration .entry-ticket .ticket-stub{padding:22px 20px}
 .receipt-code-row{margin-inline:-20px;padding-inline:20px}
 .receipt-stamp{float:none;display:block;width:max-content;margin:-2px -4px 16px auto}
 .native-registration dialog button{width:100%}
}
@media(max-width:359px){
 .native-registration .entry-ticket .ticket-stub{padding:20px 16px}
 .receipt-code-row{margin-inline:-16px;padding-inline:16px;flex-wrap:wrap}
}

/* Getting back to a receipt: the personal link lives in the receipt; the lookup is a quiet last resort under the form. */
.receipt-link{margin:14px 0 0;padding:14px 0 0;border-top:1px dashed #c7ad88}
.native-registration .registration-receipt .receipt-link p{margin:0 0 10px;font-size:15px;color:#5b3a22}
.receipt-link strong{color:#482b1a}
.native-registration #save-link{width:100%;font-weight:600;background:transparent;color:#482b1a;border-color:#4d2b17}
.native-registration #save-link:hover{background:#f3e7d4}
.lookup-entry{margin:18px 0 0;text-align:center}
.native-registration .lookup-entry button{min-height:44px;padding:8px 4px;background:transparent;border:0;color:#196368;font-size:15px;font-weight:600;text-decoration:underline;text-underline-offset:3px;text-decoration-color:#7aa9ab}
.native-registration .lookup-entry button:hover:not(:disabled){background:transparent;color:#0f4a4e}
.lookup-form{margin-top:18px}
.lookup-form .notice-text{font-size:15.5px;margin-bottom:4px}
.lookup-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.lookup-actions button{flex:1 1 160px}
