.lottery-order .lottery-order-body{padding:clamp(20px,3vw,30px)}
.lottery-order .lottery-order-body h3{font-size:clamp(1.85rem,3.5vw,2.6rem);line-height:1.05;margin-bottom:18px}
.lottery-order .lottery-price{display:flex;align-items:center;gap:12px;flex-wrap:wrap;line-height:1.2}
.lottery-price strong{font:400 2.7rem/1 "Bangers",sans-serif;color:var(--red)}
.lottery-price span{font-weight:700;font-size:1rem}
.lottery-order .lottery-breakdown{font-size:.88rem;margin-top:6px}
.lottery-buy-steps{margin:20px 0;padding-left:24px;display:grid;gap:14px;font-size:1rem;line-height:1.4}
.lottery-buy-steps li{padding-left:4px}
.lottery-buy-steps li::marker{font-weight:800;color:var(--red)}
.lottery-buy-steps strong,.lottery-buy-steps span,.lottery-buy-steps small{display:block}
.lottery-buy-steps strong{margin-bottom:3px}
.lottery-buy-steps b{white-space:nowrap}
.lottery-buy-steps small{margin-top:3px;font-size:.85rem}
.lottery-order .lottery-whatsapp{font-size:.9rem;letter-spacing:.06em;line-height:1.3}
.lottery-order .lottery-confirmation{margin-top:18px;font-size:.92rem;line-height:1.5}
.lottery-confirmation strong{color:var(--red)}
.lottery-conditions{margin-top:17px;border-top:1px solid rgba(23,35,31,.25);padding-top:10px}
.lottery-order .lottery-conditions summary{display:list-item;list-style:disclosure-closed;min-height:44px;padding:12px 0;background:none;text-align:left;font:600 .85rem/1.4 "League Spartan",sans-serif;letter-spacing:0;text-transform:none}
.lottery-order .lottery-conditions[open] summary{list-style:disclosure-open}
.lottery-order .lottery-conditions summary::after{display:none}
.lottery-order .lottery-conditions summary::-webkit-details-marker{display:revert}
.lottery-conditions p{font-size:.85rem;line-height:1.5;margin:0 0 8px}
.lottery-conditions summary:focus-visible{outline:2px solid var(--red);outline-offset:3px}
.lottery-cart{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 16px;margin-top:20px;padding:16px;border:2px solid var(--ink);background:var(--yellow);box-shadow:4px 4px 0 var(--ink)}
.lottery-cart-label{grid-column:1/-1;font-weight:800;font-size:1rem}
.lottery-counter{display:inline-flex;align-items:center;justify-self:start;border:2px solid var(--ink);background:var(--cream)}
.lottery-order .lottery-counter button{display:grid;place-items:center;flex:0 0 44px;width:44px;height:48px;padding:0;border:0;border-radius:0;background:var(--ink);color:var(--cream);font:700 1.65rem/1 "League Spartan",sans-serif;cursor:pointer;animation:none!important;transform:none!important;translate:none!important;scale:none!important}
.lottery-order .lottery-counter button:hover:not(:disabled){background:var(--red)}
.lottery-order .lottery-counter button:focus-visible{outline:3px solid var(--red);outline-offset:3px;position:relative;z-index:1}
.lottery-order .lottery-counter button:disabled{opacity:.4;cursor:default}
.lottery-counter [data-lottery-quantity]{min-width:44px;padding:0 6px;text-align:center;font:800 1.3rem/1 "League Spartan",sans-serif;font-variant-numeric:tabular-nums}
.lottery-cart-total{text-align:right;line-height:1.1}
.lottery-cart-total>span{display:block;font-size:.8rem;font-weight:700}
.lottery-cart-total strong{display:block;margin-top:4px;font:400 2.3rem/1 "Bangers",sans-serif;color:var(--red);white-space:nowrap;font-variant-numeric:tabular-nums}
.lottery-order .lottery-whatsapp{flex-wrap:wrap;gap:8px}
.lottery-whatsapp [data-lottery-total]{white-space:nowrap;font-variant-numeric:tabular-nums}
.lottery-name-label{display:block;margin-top:18px;font-size:.9rem;font-weight:600;line-height:1.4}
.lottery-name-label input{display:block;width:100%;max-width:100%;box-sizing:border-box;min-height:44px;margin-top:6px;padding:9px 12px;border:1px solid #b9aa89;border-radius:2px;background:#fff9ed;color:#26352b;font:400 1rem/1.4 "League Spartan",sans-serif}
.lottery-name-label input:focus-visible{outline:2px solid #7c3037;outline-offset:2px}
.lottery-order .lottery-receipt-hint{margin-top:14px;font-size:.82rem;line-height:1.45;color:#5d604f}
.lottery-receipt-result{margin-top:14px;padding:12px;border:1px solid #b9aa89;background:#ede0c3;border-radius:2px}
.lottery-receipt-result[hidden],.lottery-receipt-download[hidden]{display:none!important}
.lottery-receipt-status{margin:0 0 8px;font-size:.88rem;line-height:1.45}
.lottery-receipt-download{display:inline-block;padding:10px 0;color:#7c3037;font-size:.92rem;font-weight:800;text-decoration:underline;text-underline-offset:3px;min-height:44px;box-sizing:border-box}
.lottery-receipt-download:focus-visible{outline:2px solid #7c3037;outline-offset:3px}

/* Mercado de Adviento: abeto, papel cálido y artesanía de madera. */
.lottery.lottery-festive{position:relative;isolation:isolate;padding:88px 0 62px;border-block:1px solid #ad8c53;background:radial-gradient(ellipse at 8% 10%,rgba(185,145,71,.13),transparent 44%),radial-gradient(ellipse at 95% 85%,rgba(7,24,19,.4),transparent 65%),#183b31;color:#f3e7cf}
.lottery-festive::before{content:"";position:absolute;inset:10px 12px;border:1px solid rgba(211,178,118,.22);pointer-events:none}
.lottery-advent-stars{position:absolute;top:0;left:50%;transform:translateX(-50%);width:min(1120px,calc(100% - 28px));height:90px;pointer-events:none;user-select:none}
.lottery-advent-stars>span{position:absolute;top:0;width:62px;height:74px;transform-origin:50% 0;animation:lottery-star-sway 8s ease-in-out infinite}
.lottery-advent-stars>span::before{content:"";position:absolute;top:0;bottom:30px;left:50%;width:1px;background:rgba(238,207,145,.6)}
.lottery-advent-stars>span::after{content:"";position:absolute;left:0;bottom:0;width:100%;aspect-ratio:1;background:url('christmas-paper-star.svg') center/contain no-repeat;filter:drop-shadow(0 0 12px rgba(239,196,103,.3))}
.lottery-advent-stars>span:nth-child(1){left:3%;height:63px;width:49px;animation-delay:-2s}
.lottery-advent-stars>span:nth-child(2){left:43%;height:78px;width:66px;animation-delay:-5s}
.lottery-advent-stars>span:nth-child(3){right:3%;height:57px;width:46px;animation-delay:-.5s}
.lottery-festive .lottery-head{display:flex;align-items:center;justify-content:flex-start;gap:12px;min-height:28px}
.lottery-festive .lottery-head::before{content:"";width:26px;height:1px;background:#cfad6f;flex-shrink:0}
.lottery-festive .lottery-head .kicker{margin:0;padding:0;border:0;background:none;box-shadow:none;color:#edcf95;font:700 .8rem/1.4 "League Spartan",sans-serif;letter-spacing:.15em}
.lottery-festive .lottery-poster{padding:12px 12px 0;border:1px solid #ad8351;background:repeating-linear-gradient(92deg,transparent 0 27px,rgba(35,14,7,.13) 28px 29px,transparent 30px 49px),linear-gradient(90deg,#64452f,#825c3b 35%,#67452e);box-shadow:0 16px 30px rgba(0,0,0,.24),inset 0 0 0 4px rgba(208,164,100,.19);transform:rotate(-.4deg)}
.lottery-festive .lottery-poster img{border:1px solid rgba(245,227,185,.8)}
.lottery-festive .lottery-poster::after{content:"";display:block;height:120px;margin:8px -3px 0;background:url('christmas-woodland.svg') center bottom/contain no-repeat;pointer-events:none}
.lottery-festive .lottery-order{position:relative;color:#26352b;border:1px solid #c9b07c;border-top:6px solid #7c3037;border-radius:2px;background:#f7efdf;box-shadow:0 15px 36px rgba(0,0,0,.2),0 0 0 4px rgba(212,177,111,.08)}
.lottery-festive .lottery-order .lottery-order-body{padding:clamp(22px,3vw,32px);background:linear-gradient(135deg,rgba(255,255,255,.3),transparent 70%)}
.lottery-festive .lottery-order .lottery-order-body h3{max-width:15ch;font:700 clamp(1.9rem,3.2vw,2.65rem)/1.06 Georgia,"Times New Roman",serif;text-transform:none;letter-spacing:-.04em;color:#78343a;margin-bottom:20px}
.lottery-festive .lottery-price strong{font:700 2.6rem/1 Georgia,"Times New Roman",serif;color:#78343a;letter-spacing:-.05em}
.lottery-festive .lottery-price span{font-size:.95rem}
.lottery-festive .lottery-breakdown{color:#5d604f}
.lottery-festive .lottery-cart{padding:16px;border:1px solid #c8b483;border-radius:2px;background:#ede0c3;box-shadow:inset 0 0 0 3px rgba(255,252,237,.5)}
.lottery-festive .lottery-cart-label{font-size:.95rem;color:#294637}
.lottery-festive .lottery-counter{border:1px solid #284e3d;border-radius:3px;overflow:hidden;background:#fff9ed}
.lottery-festive .lottery-counter button{background:#284e3d;color:#fff5df}
.lottery-festive .lottery-counter button:hover:not(:disabled){background:#78343a}
.lottery-festive .lottery-counter button:focus-visible{outline:3px solid #cfad6f;outline-offset:-4px}
.lottery-festive .lottery-cart-total strong{font:700 2.2rem/1 Georgia,"Times New Roman",serif;letter-spacing:-.04em;color:#78343a}
.lottery-festive .lottery-buy-steps{gap:12px;font-size:.95rem}
.lottery-festive .lottery-buy-steps li::marker{color:#78343a}
.lottery-festive .lottery-buy-steps strong{color:#284e3d}
.lottery-festive .lottery-whatsapp{position:relative;overflow:hidden;background:#7c3037;border:1px solid #61262c;border-radius:3px;box-shadow:0 4px 0 #53282c;color:#fff7e4;font-size:.85rem;letter-spacing:.035em;animation:none!important;transition:background .2s,box-shadow .2s}
.lottery-festive .lottery-whatsapp::after{content:"";position:absolute;top:-50%;bottom:-50%;left:-45%;width:32%;background:linear-gradient(90deg,transparent,rgba(255,238,188,.3),transparent);transform:translateX(0) skewX(-18deg);opacity:0;pointer-events:none;animation:lottery-button-glimmer 10s ease-in-out infinite}
.lottery-festive .lottery-whatsapp:hover,.lottery-festive .lottery-whatsapp:focus-visible{background:#294e3c;box-shadow:0 4px 0 #183b31}
.lottery-festive .lottery-confirmation{color:#4b5545}
.lottery-festive .lottery-confirmation strong{color:#78343a}
.lottery-festive .lottery-conditions{border-top-color:#d0c1a1}
.lottery-festive .lottery-order .lottery-conditions summary{color:#4b5545}
.lottery-festive .lottery-share{background:transparent;color:#f0d9ac;border:1px solid #ac8c54;border-radius:2px;box-shadow:none;transform:none;font-size:.72rem;letter-spacing:.06em;animation:none!important}
.lottery-festive .lottery-share:hover,.lottery-festive .lottery-share:focus-visible{background:#f0d9ac;color:#183b31}
.lottery-festive .lottery-note{color:#e4d8bf;border-top-color:rgba(211,178,118,.3)}
.lottery-festive .lottery-note strong{color:#f3d9a1}
@keyframes lottery-star-sway{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}
@keyframes lottery-button-glimmer{0%,74%{transform:translateX(0) skewX(-18deg);opacity:0}79%{opacity:.8}94%,100%{transform:translateX(500%) skewX(-18deg);opacity:0}}
@media(max-width:760px){.lottery-festive .lottery-head{justify-content:center}.lottery-festive .lottery-head::before{width:18px}}
@media(max-width:560px){.lottery.lottery-festive{padding:78px 0 44px}.lottery-festive::before{inset:8px}.lottery-advent-stars>span:nth-child(1){left:5%;height:53px;width:42px}.lottery-advent-stars>span:nth-child(2){left:calc(50% - 25px);height:65px;width:50px}.lottery-advent-stars>span:nth-child(3){right:5%;height:49px;width:38px}.lottery-festive .lottery-poster{padding:8px 8px 0}.lottery-festive .lottery-poster::after{height:90px;margin-top:5px}.lottery-festive .lottery-order .lottery-order-body h3{max-width:15ch;font-size:2rem}.lottery-festive .lottery-cart{padding:14px 12px;gap:10px}.lottery-festive .lottery-counter button{width:42px;flex-basis:42px}.lottery-festive .lottery-cart-total strong{font-size:2rem}}
@media(prefers-reduced-motion:reduce){.lottery-advent-stars>span{animation:none;transform:none}.lottery-festive .lottery-whatsapp::after{animation:none;display:none}}

/* Selección combinable para comprar, compartir y regalar. */
.lottery-festive .lottery-personalized{display:block;padding:16px}
.lottery-purposes{margin:0;padding:0;border:0;min-width:0}
.lottery-purposes legend{padding:0;font-size:1rem;font-weight:800;color:#294637}
.lottery-order .lottery-purpose-hint{margin:5px 0 12px;font-size:.8rem;line-height:1.35;color:#5d604f}
.lottery-purpose-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.lottery-purpose{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:70px;padding:8px 3px;box-sizing:border-box;border:1px solid #b9aa89;border-radius:3px;background:#fff9ed;text-align:center;font-size:.82rem;font-weight:700;line-height:1.15;cursor:pointer}
.lottery-purpose input{width:18px;height:18px;margin:0;accent-color:#284e3d}
.lottery-purpose:has(input:checked){border-color:#284e3d;background:#284e3d;color:#fff7e4;box-shadow:inset 0 0 0 1px #fff7e422}
.lottery-purpose:has(input:focus-visible){outline:3px solid #7c3037;outline-offset:2px}
.lottery-allocation{margin-top:14px;padding-top:14px;border-top:1px solid #c8b483;min-width:0}
.lottery-allocation[hidden],.lottery-selection-error[hidden]{display:none!important}
.lottery-allocation-title{display:block;font-size:.9rem;color:#294637}
.lottery-allocation-amount{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:9px}
.lottery-allocation-amount>strong{font:700 1.35rem/1.2 Georgia,serif;color:#78343a;white-space:nowrap}
.lottery-recipient-label{display:block;margin-top:8px;font-size:.8rem;font-weight:600;line-height:1.35}
.lottery-recipient-label input{display:block;width:100%;box-sizing:border-box;min-height:44px;margin-top:5px;padding:9px 10px;border:1px solid #b9aa89;border-radius:2px;background:#fff9ed;color:#26352b;font:400 1rem/1.4 "League Spartan",sans-serif}
.lottery-recipient-label input:focus-visible{outline:2px solid #7c3037;outline-offset:2px}
.lottery-order-total{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;padding-top:14px;border-top:1px solid #c8b483}
.lottery-order-total>span{font-size:.8rem;line-height:1.3;max-width:15ch}
.lottery-order .lottery-selection-error{margin:12px 0 0;color:#7c3037;font-size:.85rem}
.lottery-whatsapp[aria-disabled="true"]{opacity:.55;cursor:default}

/* Cartel y participación originales, enmarcados con el ambiente de Navidad. */
.lottery-festive .lottery-simple{grid-template-columns:minmax(0,.94fr) minmax(0,1fr);width:min(1100px,calc(100% - 38px));column-gap:clamp(24px,4vw,48px)}
.lottery-festive .lottery-campaign{position:relative;width:100%;max-width:490px;padding:7px;margin:0;border:1px solid #d7b976;border-radius:4px;background:#e5cc94;transform:none;box-shadow:0 22px 50px #061d1866,0 0 0 5px #d7b97618;overflow:hidden}
.lottery-festive .lottery-campaign::after{display:none}
.lottery-festive .lottery-campaign .lottery-campaign-art{display:block;width:100%;height:auto;border:0;border-radius:1px}
.lottery-festive .lottery-campaign .lottery-campaign-caption{display:block;padding:12px 18px 8px;background:#fbf2df;color:#254535;letter-spacing:0;text-transform:none;font-family:"League Spartan",sans-serif}
.lottery-campaign-cta{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:46px;margin-top:0;padding:12px 14px;box-sizing:border-box;background:#7c3037;color:#fff7e4;text-decoration:none;font-weight:700;font-size:.92rem;line-height:1.3;border-radius:2px}
.lottery-campaign-cta:hover{background:#284e3d}
.lottery-campaign-cta>span:last-child{font-size:1.3rem}
.lottery-campaign-original{display:flex;align-items:center;justify-content:center;gap:5px;min-height:44px;margin-top:4px;font-size:.75rem;line-height:1.3;text-decoration:underline;text-underline-offset:3px;color:#4d5b47}
.lottery-campaign-cta:focus-visible,.lottery-campaign-original:focus-visible{outline:3px solid #c9a15b;outline-offset:3px}
#lottery-purchase{scroll-margin-top:100px}
@media(max-width:760px){.lottery-festive .lottery-simple{grid-template-columns:1fr;row-gap:18px}.lottery-festive .lottery-head{grid-column:1;grid-row:1;justify-content:center}.lottery-festive .lottery-campaign{grid-column:1;grid-row:2;max-width:460px;margin-inline:auto}.lottery-festive .lottery-order{grid-column:1;grid-row:3}.lottery-festive .lottery-share{grid-column:1;grid-row:4;justify-self:center}.lottery-festive .lottery-note{grid-column:1;grid-row:5;text-align:center}}
@media(max-width:380px){.lottery-festive .lottery-campaign .lottery-campaign-caption{padding:10px 10px 6px}}

/* Música opcional, con control explícito y pausa fuera de la sección. */
.lottery-festive .lottery-head{flex-wrap:wrap;row-gap:12px}
.lottery-music{flex:1 1 190px;display:flex;justify-content:flex-end}
.lottery-music button{display:inline-flex;align-items:center;gap:9px;min-height:44px;padding:8px 12px;border:1px solid #c8aa70;border-radius:4px;background:#102c24;color:#f5e5c4;cursor:pointer;text-align:left;line-height:1.2;font-family:"League Spartan",sans-serif;box-shadow:none;animation:none!important}
.lottery-music button strong{display:block;font-size:.78rem;font-weight:700}
.lottery-music button small{display:block;margin-top:3px;font-size:.65rem;color:#d6bd8d}
.lottery-music-note{font-size:1.55rem;line-height:1;color:#edcf95}
.lottery-music button[aria-pressed="true"]{background:#f4e5c4;color:#183b31}
.lottery-music button[aria-pressed="true"] small,.lottery-music button[aria-pressed="true"] .lottery-music-note{color:#6c4b2b}
.lottery-music button:focus-visible{outline:3px solid #edcf95;outline-offset:3px}
.lottery-music button:disabled{opacity:.55;cursor:default}
@media(max-width:760px){.lottery-music{flex:0 1 auto;justify-content:center}}

.lottery-festive .lottery-music-credit{display:block;margin-top:12px;font:400 .65rem/1.5 "League Spartan",sans-serif;color:#d5c6aa}
.lottery-music-credit a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.lottery-music-credit a:focus-visible{outline:2px solid #edcf95;outline-offset:3px}

/* Compartir a medias o regalar: mensajes separados para cada destinatario. */
.lottery-order .lottery-contact-hint{margin:7px 0 10px;font-size:.78rem;line-height:1.45;color:#4d5b47}
.lottery-half-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0;padding:10px 0;border-block:1px dashed #b9aa89}
.lottery-half-summary>span{display:flex;flex-direction:column;gap:5px;font-size:.76rem;line-height:1.3}
.lottery-half-summary>span:last-child{text-align:right}
.lottery-half-summary strong{font:700 1.2rem/1.2 Georgia,serif;color:#78343a;white-space:nowrap}
.lottery-order .lottery-contact-send{display:flex;align-items:center;justify-content:center;gap:9px;min-height:48px;margin-top:14px;padding:11px 12px;box-sizing:border-box;border:2px solid #284e3d;border-radius:2px;background:#284e3d;color:#fff7e4;box-shadow:2px 3px 0 #183b31;text-decoration:none;font:700 .82rem/1.35 "League Spartan",sans-serif;letter-spacing:0;text-transform:none}
.lottery-contact-send:hover{background:#183b31}
.lottery-contact-send:focus-visible{outline:3px solid #7c3037;outline-offset:3px}
.lottery-contact-icon{flex:0 0 22px;width:22px;height:22px}
.lottery-contact-send>span:last-child{margin-left:auto;font-size:1.1rem}
.lottery-order .lottery-contact-flow{margin:14px 0 0;font-size:.76rem;line-height:1.5;color:#4d5b47}
.lottery-contact-flow[hidden]{display:none!important}

/* Fotos locales de la participación: cámara, galería y envío desde el móvil. */
.lottery-photos{margin-top:16px;padding-top:14px;border-top:1px dashed #b9aa89;min-width:0}
.lottery-photos>strong{display:block;font-size:.82rem;line-height:1.4;color:#294637}
.lottery-photo-actions{display:flex;flex-wrap:wrap;gap:8px}
.lottery-order .lottery-photos button{min-height:44px;padding:9px 11px;border:1px solid #7b896e;border-radius:2px;background:#fff9ed;color:#284e3d;font:700 .78rem/1.35 "League Spartan",sans-serif;letter-spacing:0;text-transform:none;cursor:pointer;box-shadow:none;animation:none!important;transform:none!important}
.lottery-order .lottery-photos button:hover:not(:disabled){background:#ede0c3}
.lottery-photos button:focus-visible,.lottery-photos a:focus-visible{outline:3px solid #7c3037;outline-offset:3px}
.lottery-photos button:disabled{opacity:.5;cursor:default}
.lottery-photo-previews{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}
.lottery-photo-previews:empty{display:none}
.lottery-photo-previews figure{display:flex;flex-direction:column;gap:4px;min-width:0;margin:0;padding:5px;border:1px solid #b9aa89;background:#fff9ed}
.lottery-photo-previews a{display:block;min-width:0}
.lottery-photo-previews img{display:block;width:100%;aspect-ratio:4/3;object-fit:contain;background:#f7efdf;font-size:.75rem}
.lottery-order .lottery-photo-previews button{width:100%;padding:6px;font-size:.73rem;border:0;color:#7c3037}
.lottery-order .lottery-photo-status,.lottery-photo-fallback p{margin:10px 0 0;font-size:.77rem;line-height:1.5;color:#4d5b47}
.lottery-photo-fallback{margin-top:10px;padding:10px;border:1px solid #b9aa89;background:#fff9ed}
.lottery-photo-downloads{display:flex;flex-wrap:wrap;gap:5px 12px}
.lottery-photo-fallback a{display:inline-block;min-height:44px;padding-block:12px;box-sizing:border-box;font-size:.78rem;font-weight:700;color:#284e3d;text-decoration:underline;text-underline-offset:3px}
.lottery-photo-fallback textarea{display:block;box-sizing:border-box;width:100%;min-height:160px;margin:8px 0;padding:8px;font:400 .85rem/1.45 "League Spartan",sans-serif;color:#284e3d;background:#fff9ed;border:1px solid #b9aa89}
.lottery-photos [hidden]{display:none!important}
.lottery-contact-send[aria-busy="true"]{opacity:.65;cursor:wait}

/* Acceso discreto al regalo preparado por la asociación. */
.lottery-association-access{display:flex;justify-content:flex-end;margin-top:4px}
.lottery-order .lottery-association-access button{display:grid;place-items:center;width:40px;min-height:40px;padding:0;border:0;background:transparent;color:#6e7767;box-shadow:none;cursor:pointer;animation:none!important}
.lottery-association-access button:hover{color:#7c3037}
.lottery-association-access button:focus-visible{outline:2px solid #7c3037;outline-offset:2px}
.lottery-association-dialog{width:min(520px,calc(100vw - 24px));max-width:none;max-height:90dvh;margin:auto;padding:0;border:2px solid #284e3d;border-radius:4px;background:#f7efdf;color:#284e3d;box-shadow:6px 7px 0 #7c3037;overflow:auto;font-family:"League Spartan",sans-serif}
.lottery-association-dialog::backdrop{background:rgba(8,27,22,.76)}
.lottery-association-dialog:not([open]),.lottery-association-dialog [hidden]{display:none!important}
.lottery-association-dialog .lottery-order{border:0;box-shadow:none;background:transparent}
.lottery-association-dialog .lottery-order-body{padding:30px 24px 24px}
.lottery-association-eyebrow{margin:0 44px 8px 0;font-size:.68rem;font-weight:800;letter-spacing:.09em}
.lottery-association-dialog h2{margin:0 34px 18px 0;font:400 1.7rem/1.15 "Bangers",sans-serif;color:#284e3d}
.lottery-association-dialog .lottery-association-gift-title{margin:0 0 10px;font-size:1.5rem;line-height:1.15;color:#7c3037}
.lottery-association-close{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;background:transparent;color:#284e3d;font:400 1.8rem/1 sans-serif;cursor:pointer}
.lottery-association-pin input{max-width:180px;letter-spacing:.3em;font-size:1.3rem}
.lottery-association-unlock{display:block;min-height:44px;width:100%;margin-top:14px;padding:12px;border:0;border-radius:2px;background:#284e3d;color:#fff7e4;font:700 .9rem/1.3 "League Spartan",sans-serif;cursor:pointer}
.lottery-association-unlock:disabled{opacity:.6;cursor:wait}
.lottery-association-error{font-size:.85rem;line-height:1.4;color:#7c3037}
.lottery-association-quantity{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0;font-size:.83rem;line-height:1.4;font-weight:700}
.lottery-association-lock{display:block;margin:12px auto 0;min-height:44px;padding:8px 12px;border:0;background:transparent;color:#6e7767;text-decoration:underline;text-underline-offset:3px;font:600 .8rem/1.4 "League Spartan",sans-serif;cursor:pointer}
.lottery-association-dialog button:focus-visible{outline:3px solid #7c3037;outline-offset:3px}

/* Informational disclosures: association purpose, donations and custody. */
.lottery-info{margin:26px 0 12px;border:2px solid #243b30;border-radius:5px;background:#fff5df;box-shadow:5px 5px 0 #c6a958;overflow:hidden}
.lottery-info>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;background:#7c3037;color:#fff3dc;font:900 clamp(1.6rem,5vw,2.2rem)/1.15 system-ui,sans-serif;cursor:pointer;list-style:none;min-height:64px;box-sizing:border-box}
.lottery-info>summary::-webkit-details-marker,.lottery-info-topic>summary::-webkit-details-marker{display:none}
.lottery-info>summary::after{content:'⌄';font-size:1.6rem}
.lottery-info[open]>summary::after{content:'⌃'}
.lottery-info-body{padding:8px 20px 16px}
.lottery-info-topic{border-bottom:1px solid #cbbd9b}
.lottery-info-topic:last-child{border-bottom:0}
.lottery-info-topic>summary{display:flex;justify-content:space-between;gap:14px;padding:16px 0;font-weight:800;line-height:1.4;cursor:pointer;list-style:none;color:#19382e}
.lottery-info-topic>summary::after{content:'+';flex-shrink:0}
.lottery-info-topic[open]>summary::after{content:'−'}
.lottery-info-topic p{font-size:1rem;line-height:1.6;margin:0 0 16px;color:#19382e}
.lottery-info-topic a{text-decoration:underline;text-underline-offset:3px;color:inherit}
.lottery-info summary:focus-visible{outline:3px solid #bd902c;outline-offset:-4px}

/* Compact, neutral association disclosures. */
body .lottery-info{margin:18px 0 8px!important;border:0!important;border-top:1px solid #19382e33!important;border-bottom:1px solid #19382e33!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;overflow:visible!important}
body .lottery-info>summary,body .lottery-info .lottery-info-topic>summary{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;min-height:44px!important;padding:10px 0!important;margin:0!important;background:transparent!important;color:#19382e!important;font:600 14px/1.4 system-ui,sans-serif!important;letter-spacing:0!important;text-transform:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;list-style:none!important;cursor:pointer}
body .lottery-info>summary{font-weight:750!important}
body .lottery-info summary::before{display:none!important}
body .lottery-info summary::after{position:static!important;display:block!important;content:'+'!important;width:20px!important;height:auto!important;min-width:20px!important;min-height:0!important;padding:0!important;margin:0!important;border:0!important;background:transparent!important;box-shadow:none!important;transform:none!important;color:#19382e!important;font:400 18px/1 system-ui,sans-serif!important;text-align:center!important}
body .lottery-info[open]>summary::after,body .lottery-info-topic[open]>summary::after{content:'−'!important}
body .lottery-info-body{padding:0 0 4px 10px!important;background:transparent!important}
body .lottery-info-topic{margin:0!important;padding:0!important;border:0!important;border-top:1px solid #19382e20!important;background:transparent!important;box-shadow:none!important;border-radius:0!important}
body .lottery-info-topic p{font:400 14px/1.6 system-ui,sans-serif!important;margin:2px 24px 12px 0!important;color:#19382e!important}
body .lottery-info summary:focus-visible{outline:2px solid #7c3037!important;outline-offset:2px!important}

/* El Calvo y la historia: dos controles pequeños, en la cabecera existente. */
.lottery-festive .lottery-head{align-items:center}
.lottery-memory-actions{display:flex;flex-wrap:wrap;gap:8px;flex:1 0 100%;margin:3px 0 2px}
.lottery-festive .lottery-memory-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;max-width:100%;padding:10px 12px;border:1px solid #c8aa70;border-radius:4px;background:#102c24;color:#f5e5c4;font:600 .85rem/1.3 "League Spartan",sans-serif;text-align:center;letter-spacing:0;cursor:pointer;box-shadow:none;animation:none!important;transform:none!important}
.lottery-memory-button>span[aria-hidden]{font-size:1.15rem}
.lottery-festive .lottery-memory-button:hover,.lottery-festive .lottery-memory-button[aria-expanded="true"]{background:#f4e5c4;color:#183b31}
.lottery-memory-button:focus-visible{outline:3px solid #edcf95;outline-offset:3px}
.lottery-music-panel{flex:1 0 100%;min-width:0;max-width:100%;box-sizing:border-box;padding:16px;background:#102c24;border:1px solid #a88a56;border-radius:5px;color:#f5e5c4;text-align:left}
.lottery-music-panel[hidden]{display:none!important}
.lottery-music-panel>strong{display:block;font:700 1.05rem/1.3 Georgia,serif}
.lottery-music-panel p{margin:7px 0 14px;font:.82rem/1.5 "League Spartan",sans-serif}
.lottery-music-panel iframe{display:block;border:0;border-radius:12px;max-width:100%}
.lottery-music-panel small{display:block;margin-top:10px;font:.76rem/1.5 "League Spartan",sans-serif;color:#d6bd8d}
.lottery-music-links{display:flex;flex-wrap:wrap;gap:0 18px;margin-top:7px}
.lottery-music-links a{display:inline-flex;align-items:center;min-height:44px;color:#f5e5c4;font-size:.82rem;text-decoration:underline;text-underline-offset:3px}
.lottery-music-links a:focus-visible{outline:2px solid #edcf95;outline-offset:3px}
.lottery-history-dialog{width:min(650px,calc(100% - 28px));max-width:650px;max-height:88vh;max-height:88dvh;padding:0;border:1px solid #c8aa70;border-radius:8px;background:#f7efdf;color:#263b30;box-shadow:0 24px 90px #0008;overscroll-behavior:contain}
.lottery-history-dialog::backdrop{background:#081e17cc}
.lottery-history-top{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 22px;background:#183b31;color:#f5e5c4;z-index:1;font:600 .85rem/1.3 "League Spartan",sans-serif}
.lottery-history-top button{display:flex;align-items:center;gap:10px;min-height:44px;padding:8px 12px;border:1px solid #c8aa70;border-radius:4px;background:transparent;color:inherit;font:inherit;cursor:pointer}
.lottery-history-top button span{font-size:1.3rem}
.lottery-history-top button:focus-visible{outline:2px solid #edcf95;outline-offset:3px}
.lottery-history-body{padding:26px 30px 30px}
.lottery-history-body h2{margin:0 0 26px;color:#7c3037;font:700 clamp(1.8rem,6vw,2.5rem)/1.1 Georgia,serif;letter-spacing:-.025em}
.lottery-history-body article{padding:0 0 18px 18px;margin:0 0 18px;border-left:2px solid #c8aa70}
.lottery-history-body h3{margin:0 0 8px;color:#7c3037;font:700 1rem/1.35 "League Spartan",sans-serif}
.lottery-history-body p{margin:0;font:400 1rem/1.65 "League Spartan",sans-serif}
.lottery-history-sources{border-top:1px solid #c8aa70;padding-top:8px;font:.85rem/1.5 "League Spartan",sans-serif}
.lottery-history-sources summary{min-height:44px;align-content:center;cursor:pointer;font-weight:700}
.lottery-history-sources ul{margin:5px 0 0;padding-left:20px}
.lottery-history-sources li{margin-bottom:10px}
.lottery-history-sources a{color:#284e3d;text-decoration:underline;text-underline-offset:3px}
body:has(.lottery-history-dialog[open]){overflow:hidden}
@media(max-width:760px){.lottery-memory-actions{justify-content:center}.lottery-music-panel{max-width:490px;flex-basis:100%}.lottery-history-body{padding:22px 20px}.lottery-history-top{padding:10px 16px}}
@media(max-width:380px){.lottery-festive .lottery-memory-button{padding:9px 10px;font-size:.78rem;gap:6px}}

/* Ilustración original de los bombos y San Ildefonso, como marca de agua. */
.lottery.lottery-festive::after{content:"";position:absolute;inset:65px 0 0;z-index:-1;pointer-events:none;background:url('loteria-bombos-san-ildefonso.png') center top/min(1600px,150vw) auto no-repeat;opacity:.18}
.lottery-history-body{position:relative;isolation:isolate}
.lottery-history-body::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:url('loteria-bombos-san-ildefonso.png') center 45%/100% auto no-repeat;opacity:.14}
@media(max-width:760px){.lottery.lottery-festive::after{inset:52px 0 0;background-size:auto 670px;background-position:center top;opacity:.16}.lottery-history-body::before{background-size:auto 550px;background-position:45% 45%;opacity:.11}}

/* Premios por los 8 € jugados: consulta breve, desplegable y legible. */
body .lottery-prizes{margin:14px 0 18px!important;scroll-margin-top:110px}
.lottery-order .lottery-prizes-body{padding:2px 0 12px;color:#263b30;font:400 .83rem/1.45 system-ui,sans-serif}
.lottery-order .lottery-prizes-intro{margin:4px 0 12px;font:inherit}
.lottery-prizes strong{font-weight:750}
.lottery-prizes-table{width:100%;border-collapse:collapse;table-layout:fixed;font:inherit;text-align:left}
.lottery-prizes-table caption{text-align:left;margin:0 0 8px;font-size:.75rem;color:#53624d}
.lottery-prizes-table th,.lottery-prizes-table td{padding:8px 5px;border-bottom:1px solid #c9bca0;vertical-align:middle}
.lottery-prizes-table th{width:65%;font-weight:400}
.lottery-prizes-table thead th{font-size:.7rem;font-weight:600;color:#53624d;padding-top:0}
.lottery-prizes-table td,.lottery-prizes-table thead th:last-child{width:35%;text-align:right}
.lottery-prizes-table td{font-variant-numeric:tabular-nums;color:#78343a;white-space:nowrap}
.lottery-prizes-table small{display:block;margin-top:3px;font-size:.72rem;line-height:1.4;color:#53624d}
.lottery-prizes-jackpot{background:#eaddbd}
.lottery-prizes-jackpot td{font-size:1.05rem}
.lottery-prizes-approximations>span{display:block;line-height:1.65}
.lottery-order .lottery-prizes-example{margin:12px 0 8px;padding-left:10px;border-left:2px solid #b7914f;font:inherit}
.lottery-order .lottery-prizes-note{margin:10px 0 0;font:400 .72rem/1.5 system-ui,sans-serif;color:#53624d}
.lottery-prizes-source{display:inline-flex;align-items:center;min-height:44px;color:#284e3d;font-size:.72rem;line-height:1.4;text-decoration:underline;text-underline-offset:3px}
.lottery-prizes-source:focus-visible{outline:2px solid #7c3037;outline-offset:2px}

/* La lista de SELAE es la referencia oficial para verificar los premios. */
.lottery-order .lottery-prizes-official{margin:0 0 16px;padding:10px 12px;border-left:3px solid #7c3037;background:#eaddbd80;color:#263b30;font:400 .8rem/1.55 system-ui,sans-serif}
.lottery-prizes-official a{color:#78343a;text-decoration:underline;text-underline-offset:3px}
.lottery-prizes-official a:focus-visible{outline:2px solid #7c3037;outline-offset:3px}

/* Acceso destacado a los premios, con el granate y el dorado de la web. */
body .lottery-info.lottery-prizes{margin:18px 0 24px!important;border:0!important}
body .lottery-info.lottery-prizes>summary{min-height:60px!important;padding:15px 17px!important;border:1px solid #b18b47!important;border-radius:4px!important;background:#7c3037!important;color:#fff3dc!important;font:800 clamp(1rem,3.9vw,1.12rem)/1.35 system-ui,sans-serif!important;box-shadow:0 4px 0 #bd9c60,0 7px 12px #19382e20!important;text-align:left!important}
body .lottery-info.lottery-prizes>summary::after{display:grid!important;place-items:center!important;flex:0 0 28px!important;width:28px!important;min-width:28px!important;height:28px!important;border:1px solid #d9ba7a!important;border-radius:50%!important;background:#fff3dc12!important;color:#fff3dc!important;font:400 22px/1 system-ui,sans-serif!important}
body .lottery-info.lottery-prizes>summary:hover{background:#67272e!important}
body .lottery-info.lottery-prizes>summary:focus-visible{outline:3px solid #284e3d!important;outline-offset:4px!important}
.lottery-prizes[open]>.lottery-prizes-body{padding-top:18px}

/* Bizum o SEPA: datos de pago claros y copiables. */
.lottery-order .lottery-payment-methods{min-width:0;margin:22px 0 12px;padding:0;border:0}
.lottery-payment-methods legend{padding:0;font-size:1rem;line-height:1.35;font-weight:750;color:#284e3d}
.lottery-order .lottery-payment-methods>p{margin:8px 0 12px;font-size:.85rem;line-height:1.5;color:#53624d}
.lottery-payment-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.lottery-payment-options label{display:flex;align-items:center;gap:9px;min-height:54px;box-sizing:border-box;padding:11px 12px;border:1px solid #b9aa89;border-radius:3px;background:#fff9ed;color:#284e3d;font:650 .85rem/1.35 system-ui,sans-serif;cursor:pointer}
.lottery-payment-options label:has(input:checked){background:#284e3d;border-color:#284e3d;color:#fff7e4}
.lottery-payment-options input{flex:0 0 18px;width:18px;height:18px;margin:0;accent-color:#bd9c60}
.lottery-payment-options label:has(input:focus-visible){outline:3px solid #7c3037;outline-offset:3px}
.lottery-order .lottery-payment-panel{margin:0 0 14px;padding:14px;border:1px solid #c8b483;border-radius:3px;background:#ede0c3;color:#263b30;min-width:0}
.lottery-order .lottery-payment-panel p{margin:8px 0;font-size:.85rem;line-height:1.5}
.lottery-payment-panel p:first-child{margin-top:0}
.lottery-payment-panel[hidden]{display:none!important}
.lottery-payment-data{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:7px 8px;margin:12px 0;padding:12px 0;border-block:1px solid #bdac88}
.lottery-payment-data>strong{grid-column:1/-1;font-size:.76rem}
.lottery-payment-data code{grid-column:1/-1;font:650 clamp(.82rem,3.3vw,.94rem)/1.55 ui-monospace,monospace;letter-spacing:0;color:#19382e;overflow-wrap:anywhere;user-select:all}
.lottery-order .lottery-payment-data button{justify-self:start;min-height:44px;padding:8px 12px;border:1px solid #284e3d;border-radius:3px;background:#fff9ed;color:#284e3d;font:700 .76rem/1.3 system-ui,sans-serif;text-transform:none;letter-spacing:0;cursor:pointer;box-shadow:none;animation:none!important;transform:none!important}
.lottery-payment-data button:focus-visible{outline:3px solid #7c3037;outline-offset:3px}
.lottery-order .lottery-payment-copy-status{margin:8px 0 0;font-size:.78rem;color:#284e3d}
.lottery-payment-copy-status:empty{display:none}
.lottery-order .lottery-payment-proof{margin:16px 0;font-size:.85rem;line-height:1.55;color:#284e3d}
.lottery-payment-proof>strong{display:block}
.lottery-payment-proof a{display:inline-block;min-height:44px;align-content:center;color:#7c3037;font-weight:750;text-decoration:underline;text-underline-offset:3px}
.lottery-name-label[hidden],.lottery-recipient-label[hidden],#lottery-bizum-hint[hidden]{display:none!important}
