/* Finishing touches shared by the event and registration pages. */
:root{--focus-ring:#8054aa;--motion-ease:cubic-bezier(.22,1,.36,1)}
html{scroll-padding-top:100px}
body{text-rendering:optimizeLegibility}
::selection{background:#dbc0ee;color:#392052}
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--focus-ring);outline-offset:4px}
:where(.hero,.navbar,.place,footer) :where(a,button):focus-visible{outline-color:#dbc0ee}
.skip-link{position:fixed;z-index:10000;top:12px;left:16px;transform:translateY(-180%);padding:12px 20px;border-radius:12px;background:#fff;color:#392052;font:700 14px Manrope,Arial;text-decoration:none;box-shadow:0 8px 28px #1e102f30}
.skip-link:focus{transform:none}
.nav-brand{min-height:44px}.nav-toggle{min-width:44px;min-height:44px}
.navbar{height:84px;border:0}
.navbar .nav{height:84px}
.event-home .hero{margin-top:-84px;padding-top:84px}
.navbar.solid{border-bottom-color:#dbc0ee20}
.navbar.nav-open{background:#241333f5;backdrop-filter:blur(16px)}
.nav-toggle svg{transition:transform .25s var(--motion-ease)}
.nav-open .nav-toggle svg{transform:rotate(90deg)}
.hero-title,.font-display{text-wrap:balance}
.hero-copy,.lead{text-wrap:pretty}
.hero .btn{min-height:52px}.hero .ctas{gap:12px}
.countdown .num{font-variant-numeric:tabular-nums;display:inline-block;min-width:2ch}
.countdown .unit:first-child .num{min-width:3ch}
.card,.category-tariffs article{transition:box-shadow .25s var(--motion-ease),border-color .25s var(--motion-ease),transform .55s var(--motion-ease),opacity .55s ease}
.reveal{transform:none}
.motion-ready:not(.in-view){opacity:0;transform:translateY(18px)}
.motion-ready.in-view{opacity:1;transform:none;transition-delay:var(--reveal-delay,0ms)}
.schedule dl>div{transition:transform .55s var(--motion-ease),opacity .55s ease}
.venue-map{isolation:isolate}.venue-map iframe{color-scheme:normal}
.btn,.booking-next,.booking-back{touch-action:manipulation}
.site-header{background:rgba(30,16,47,.88)!important;backdrop-filter:blur(16px);border-bottom:1px solid #dbc0ee26!important}
.site-footer-dev a{color:#dbc0ee;text-underline-offset:4px}.site-footer-dev a:hover{text-decoration:underline}
.registration-contact{display:grid;justify-items:start;gap:4px;margin:24px 0 0;color:#d7c2e5;font-size:.88rem;line-height:1.6}
.registration-contact a,.footer-contact a{display:inline-flex;align-items:center;min-height:44px;max-width:100%;overflow-wrap:anywhere;color:#f0dcff;text-underline-offset:4px;font-weight:700}
.registration-contact a:hover,.footer-contact a:hover{color:#fff}
.registration-contact a:focus-visible{outline-color:#dbc0ee}
.footer-contact{margin-top:12px}
.category-tariffs article{display:flex;flex-direction:column}.category-tariffs strong{margin-top:auto}
.category-card .category-price{margin-top:auto}
.booking-step-heading p,.summary-location,.summary-room small,.summary-cost,.summary-footnote,.room-caption{color:#79638b}
.summary-footnote,.room-caption{font-size:12px}.booking-step-heading p{font-size:13px}
.booking-progress button{min-height:44px}.booking-progress button:disabled{opacity:.8}
.category-card{transition:border-color .2s,box-shadow .2s,background .2s,transform .2s}
.category-card small{color:#79638b}.category-card .category-price small{font-size:11px}
.booking-step:not([hidden]){animation:step-appear .28s var(--motion-ease) both}
.booking-page #btn-submit{display:flex;align-items:center;justify-content:center}
.booking-controls button,.actions .btn{transition:background .2s,box-shadow .2s,transform .2s}
.site-header .btn-back{min-height:44px}.btn:active,.booking-next:active{transform:translateY(0) scale(.985)}
.error-page{min-height:70vh;display:grid;align-content:center;text-align:center;max-width:650px;margin:auto;padding:60px 20px}
.error-page h1{font:600 clamp(2rem,6vw,3.5rem) Fraunces,Georgia;color:#392052;line-height:1.1;margin:12px 0 20px}
.error-page p{color:#73627f}.error-page .actions{justify-content:center}
@keyframes step-appear{from{opacity:.4;transform:translateY(7px)}to{opacity:1;transform:none}}
@keyframes hero-appear{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:no-preference){.hero-title,.hero .hero-subtitle,.hero-copy,.hero .ctas{animation:hero-appear .7s var(--motion-ease) both}.hero .hero-subtitle{animation-delay:.06s}.hero-copy{animation-delay:.12s}.hero .ctas{animation-delay:.18s}}
@media(hover:hover) and (pointer:fine){.category-tariffs article:hover{border-color:#dbc0ee80;transform:translateY(-4px);box-shadow:0 16px 36px -20px #0006}.category-option:hover .category-card{border-color:#b18acb;transform:translateY(-2px);box-shadow:0 8px 22px #69498412}.event-invite:hover{box-shadow:0 20px 44px -26px #65408b66}}
@media(max-width:860px){.navbar.nav-ready:not(.nav-open) .nav-links{visibility:hidden}.navbar.nav-open .nav-links{visibility:visible}.nav-links{max-height:calc(100dvh - 100px);overflow:auto}.nav-links a{min-height:44px}}
@media(max-width:640px){.hero-copy{max-width:36ch}.hero .ctas{display:grid;grid-template-columns:1fr;max-width:390px}.hero .btn{padding:14px 15px;font-size:.84rem}.booking-intro>p:last-of-type{font-size:14px}.booking-step-heading p{font-size:13px}.booking-page .demo-note{font-size:12px}.category-card strong{font-size:13px}.category-card .category-price small{font-size:10px}input,select,textarea{font-size:16px!important}.category-card{min-height:190px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.motion-ready:not(.in-view){opacity:1;transform:none}.reveal{transform:none!important}}
@media print{.skip-link{display:none}.motion-ready{opacity:1!important;transform:none!important}.venue-map{display:none}}

.schedule dl{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.schedule dl>div{padding:24px 18px;min-width:0}
.schedule dd{font-size:.88rem;line-height:1.6}
.schedule dd ul{padding-left:18px;margin-top:10px;display:grid;gap:8px;font-size:.8rem}
.schedule-note{display:block;margin-top:8px;font-size:.8rem;color:#8054aa}
.schedule dl>div:last-child{grid-column:auto}
@media(max-width:980px){.schedule dl{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.schedule dl{grid-template-columns:1fr;gap:12px}.schedule dl>div{display:grid;grid-template-columns:62px 1fr;gap:10px;padding:20px 16px}.schedule dt{font-size:1.55rem;margin:0}.schedule dd{font-size:.86rem}.schedule dl>div:before{left:19px}}
/* Birth-date access stays visible on browsers that hide the native picker icon. */
.calendar-trigger{display:inline-flex;align-items:center;min-height:40px;margin-top:8px;padding:8px 12px;border:1px solid #cbb3dc;border-radius:8px;background:#f2e9f8;color:#53326e;font:600 13px/1.3 Manrope,sans-serif;cursor:pointer}
.calendar-trigger:focus-visible{outline:3px solid #9768b5;outline-offset:3px}
.password-field{position:relative;width:100%}
.password-field input{width:100%;padding-right:56px!important}
.password-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:44px;height:44px;min-height:44px;margin:0;padding:10px;border:0;border-radius:8px;background:transparent;color:#795198;cursor:pointer;touch-action:manipulation}
.password-toggle svg{display:block;width:22px;height:22px}
.password-toggle:hover{background:#7951980d}
.password-toggle:focus-visible{outline:2px solid #795198;outline-offset:-2px}
input[aria-invalid="true"],select[aria-invalid="true"]{border-color:#ba3545!important;box-shadow:0 0 0 2px #ba35451c!important}
.site-credit{margin:26px auto 0;padding:16px 20px 0;border-top:1px solid #dbc0ee24;text-align:center;font:500 12px/1.6 Manrope,Arial,sans-serif}
.site-credit a,.site-footer-dev .site-credit a{display:inline-flex;align-items:center;min-height:32px;color:#cbb6db;text-decoration:none;text-underline-offset:4px}
.site-credit a:hover,.site-footer-dev .site-credit a:hover{color:#fff;text-decoration:underline}
.site-credit a:focus-visible{outline:2px solid #dbc0ee;outline-offset:4px;border-radius:3px}
input[type="date"]::-webkit-calendar-picker-indicator{opacity:1;cursor:pointer;padding:7px}
.event-ticket{border:2px solid #b99acd;background:linear-gradient(135deg,#fff,#f5eef9);break-inside:avoid}
.event-ticket .ticket-code{font:700 clamp(1.1rem,4vw,1.65rem) Manrope,sans-serif;letter-spacing:.08em;overflow-wrap:anywhere;padding:18px 0;border-top:1px dashed #b99acd;border-bottom:1px dashed #b99acd}
@media print{.app-content:has(.event-ticket)>:not(.event-ticket){display:none!important}.event-ticket{margin:0;max-width:700px;border-color:#795198;background:white!important;color:#352045!important}}
.payment-qr{display:block;width:260px;max-width:100%;height:auto;margin:24px auto;padding:12px;background:#fff;border:1px solid #e5d9ed;border-radius:16px;image-rendering:pixelated}
.checkout-total{font-family:Fraunces,serif;font-size:2rem;font-weight:600;margin:.5rem 0}
.checkout-summary h2{overflow-wrap:anywhere}
#payment-copy{box-sizing:border-box;width:100%;resize:vertical;font-family:monospace;font-size:.85rem;overflow-wrap:anywhere}
.checkout-backup{margin-top:24px;font-size:.85rem}
.card-checkout{max-width:620px}
.card-checkout .campo{min-width:0}
.card-fields-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.card-checkout input{box-sizing:border-box;width:100%}
.card-checkout h3{margin-top:24px}
@media(max-width:480px){.card-fields-row{grid-template-columns:repeat(2,minmax(0,1fr))}.card-fields-row>.campo:last-child:nth-child(3){grid-column:1/-1}}
