/* "Paper" theme (Connaissance '27, Vetere Novum): off-white ground, black type, dark blue and red for tabs and calls to action.
   Palette from the design head: off-white #E2D4BF, blue #2D4F8A, red #95060B. Loaded AFTER site.css; scoped to body.site (the admin console is untouched).
   To go back to the previous blue-glass look: `git checkout ui-blue-glass-v3 -- public` (see the README). */
@font-face{font-family:'Lato';font-style:normal;font-weight:900;font-display:swap;src:url(/fonts/lato-900-latin.woff2) format('woff2')}
body.site{
  --paper:#E2D4BF; --paper-2:#ECE1CE; --paper-3:#D8C8AD; --blue:#2D4F8A; --blue-d:#223C6B; --red:#95060B; --red-d:#740409;
  --ink:#0d0d0d; --ink-2:#2a251d; --muted:#5a5144; --line:rgba(13,13,13,.18);
  --blue-600:#2D4F8A; --blue-500:#2D4F8A; --bad:#95060B; --ok:#2D4F8A; --warn:#95060B;
  --glass:var(--paper-2); --glass-b:rgba(13,13,13,.16); --ice:var(--paper-2);
  --shadow:0 10px 28px -18px rgba(13,13,13,.45); --shadow-lg:0 26px 56px -26px rgba(13,13,13,.5);
  --grad:var(--blue);
  color:var(--ink);background:var(--paper);background-image:none;background-attachment:scroll;
}
/* background watermark: the logo in black, very faint, still turning */
body.site .bg-logo::before{opacity:.05;filter:none}

/* ---------- navigation ---------- */
body.site .nav{background:rgba(226,212,191,.94);border-bottom:1px solid var(--ink);backdrop-filter:blur(8px)}
body.site .brand,body.site .brand b,body.site .brand i{color:var(--ink)}
body.site .links a{color:var(--ink);font-weight:700;letter-spacing:.1em}
body.site .links a:hover{color:var(--blue)}
body.site .links a.active,body.site .links a[aria-current]{background:var(--blue);color:var(--paper);border-radius:999px}
body.site .links a.active::after{display:none}
body.site .nav-search input{background:var(--paper-2);border:1px solid var(--line);color:var(--ink)}
body.site .nav-search input::placeholder,body.site .nav-search svg{color:var(--muted)}
body.site .nav-search input:focus{background:#fff8ea;border-color:var(--blue)}
body.site .cart-btn{background:var(--red);color:var(--paper);box-shadow:none;border:0}
body.site .cart-btn:hover{background:var(--red-d)}
body.site .cart-btn em{background:var(--paper);color:var(--red)}
body.site .links .authnav a.signup{background:var(--blue)!important;color:var(--paper)!important;border:0;border-radius:999px}
body.site .links .authnav a.signup:hover{background:var(--blue-d)!important}
body.site .links .authnav a{color:var(--ink)}
body.site .links .authnav .av{background:var(--blue);color:var(--paper)}
body.site #burger,body.site .burger{color:var(--ink)}

/* ---------- buttons ---------- */
body.site .btn{font-weight:700;letter-spacing:.04em}
body.site .btn-primary{background:var(--red);color:var(--paper);border-color:var(--red);box-shadow:none}
body.site .btn-primary:hover{background:var(--red-d);border-color:var(--red-d);box-shadow:none}
body.site .btn-outline{background:transparent;color:var(--ink);border:1.5px solid var(--ink)}
body.site .btn-outline:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
body.site .btn-light{background:transparent;color:var(--paper);border:1.5px solid var(--paper)}
body.site .btn-light:hover{background:rgba(226,212,191,.16);color:var(--paper)}
body.site .btn-ghost{background:var(--paper);color:var(--blue);border:1.5px solid var(--paper)}
body.site .btn-ghost:hover{background:var(--paper-2);color:var(--blue)}
body.site .btn-danger{background:transparent;color:var(--red);border-color:var(--red)}
body.site .btn.in-cart{background:var(--blue);color:var(--paper);border-color:var(--blue)}
body.site .btn-primary:disabled,body.site .btn[aria-disabled=true],body.site .btn:disabled{background:transparent;color:var(--muted);border:1.5px solid var(--line);opacity:1;box-shadow:none}
body.site .link,body.site a.link-arrow,body.site .meta-link,body.site .link-arrow{color:var(--blue)}
body.site a{color:inherit}
body.site .cartbar{background:var(--blue);color:var(--paper)}
body.site .cartbar .btn-primary{background:var(--red);color:var(--paper);border-color:var(--red)}

/* ---------- hero and page headers ---------- */
body.site .hero,body.site .hero.ed{background:none;color:var(--ink)}
body.site .hero::before,body.site .hero-art .orb{display:none}
body.site .hero-meta{color:var(--muted);border-bottom:1px solid var(--ink)}
body.site .hero-meta .meta-link{color:var(--blue);border-bottom-color:var(--blue)}
body.site .stack{color:var(--ink)}
body.site .stack .ln.serif,body.site .hero.ed h1 .ln.serif>span{color:var(--ink)}
body.site .stack .ln.serif em,body.site .hero.ed h1 .ln.serif>span em,body.site .s h2 em,body.site .ed-h h2 em,body.site .page-head h1 em{color:var(--red)}
body.site .hero.ed .lead{color:var(--ink-2)}
body.site .statline{border-top:1px solid var(--ink)}
body.site .statline>div{border-left-color:var(--line)}
body.site .statline small,body.site .hero-meta,body.site .ed-h .num{color:var(--muted)}
body.site .statline b{color:var(--ink)}
/* the hollow word: Lato Black has no overlapping contours, so the outline is one clean line */
body.site .stack .ln.out,body.site .stack .ln.out span{font-family:'Lato',var(--font-h),sans-serif;font-weight:900;color:transparent;-webkit-text-stroke:2px var(--ink);text-stroke:2px var(--ink);letter-spacing:.005em;paint-order:stroke fill}
body.site .stack .ln.out{-webkit-text-fill-color:transparent}
body.site .page-head{background:none;border-bottom:1px solid var(--ink);color:var(--ink)}
body.site .page-head::after{display:none}
body.site .page-head h1{color:var(--ink)}
body.site .page-head p{color:var(--ink-2)}
body.site .eyebrow{color:var(--red);font-weight:700}
body.site .mq,body.site .marquee{color:var(--ink);border-color:var(--ink)}
body.site .marquee{background:var(--blue);color:var(--paper);border-block:1px solid var(--ink)}
body.site .marquee .mq span,body.site .marquee .mq span:nth-of-type(even),body.site .marquee i{color:var(--paper);-webkit-text-stroke:0;-webkit-text-fill-color:var(--paper);paint-order:normal}

/* ---------- sections and surfaces ---------- */
body.site section.s.alt{background:var(--paper-3)}
body.site section.s.dark{background:var(--paper-3)}
body.site .card,body.site .panel,body.site .tl-i,body.site .ev,body.site .stat,body.site .basket,body.site .person,body.site .soonbox,body.site .tile{background:var(--paper-2);border:1px solid var(--line);backdrop-filter:none;box-shadow:var(--shadow);color:var(--ink)}
body.site .card.hover:hover,body.site .ev:hover{border-color:var(--ink)}
body.site .card p,body.site .ev-body p,body.site .person p,body.site .soonbox span,body.site .prose p,body.site .prose ul{color:var(--ink-2)}
body.site .panel-h,body.site .basket-h,body.site .basket-f{background:var(--paper-3);border-bottom-color:var(--line)}
body.site .ico{background:var(--blue);color:var(--paper)}
body.site .note{background:var(--paper-2);border-left:4px solid var(--blue);color:var(--ink-2)}
body.site .note.warn{background:var(--paper-2);border-left-color:var(--red)}
body.site .note.bad{background:rgba(149,6,11,.08);border-left-color:var(--red);color:var(--ink)}
body.site .note.ok{background:rgba(45,79,138,.1);border-left-color:var(--blue)}
body.site .tag{background:transparent;color:var(--red);border:1px solid var(--red)}
body.site .tl::before{background:var(--ink)}body.site .tl-i::before{background:var(--paper);border-color:var(--ink)}body.site .tl-i small{color:var(--red)}
body.site .line{border-bottom-color:var(--line)}
body.site .sum .row{color:var(--muted)}body.site .sum .total{color:var(--ink);border-top-color:var(--ink)}
body.site .kv div{background:var(--paper-3);border-color:var(--line)}
body.site .kv small{color:var(--muted)}
body.site .refbox{background:var(--paper);color:var(--blue);border:1px dashed var(--blue)}
body.site .soonbox{border-style:dashed;border-color:var(--blue)}
body.site .soonbox b{color:var(--blue)}
body.site .person .ph{background:var(--paper-3);color:var(--muted)}
body.site .cta-band{background:var(--blue);color:var(--paper);border:0}
body.site .cta-band p,body.site .cta-band h2{color:var(--paper)}
body.site .idx-row{border-bottom:1px solid var(--ink);color:var(--ink)}
body.site .idx-row:hover{background:var(--paper-3)}
body.site .idx-row .n,body.site .idx-row .m{color:var(--muted)}body.site .idx-row .ar{color:var(--red)}
body.site .idx-row .m b{color:var(--blue)}

/* ---------- event cards ---------- */
body.site .ev-top{background:var(--blue);color:var(--paper)}
body.site .ev.wor .ev-top,body.site .ev.aca .ev-top{background:var(--red)}
body.site .ev.mha .ev-top{background:var(--blue)}
body.site .ev.closed .ev-top{filter:none}   /* closed / opening soon keep their palette colour (they used to wash out to grey) */
body.site .ev.food .ev-top,body.site .ev.tshirt .ev-top{background:var(--red)}
body.site .ev.accommodation .ev-top{background:var(--blue)}
body.site .ev-top::before{background:rgba(226,212,191,.12)}
body.site .ev-top .num{color:rgba(226,212,191,.4)}
body.site .ev-top .badge{background:rgba(226,212,191,.2);color:var(--paper)}
body.site .ev-top .ico{background:rgba(226,212,191,.2);color:var(--paper)}
body.site .ev-body h3,body.site .price{color:var(--ink)}
body.site .ev.closed .price{color:var(--muted)}
body.site .ev.closed{opacity:.92}
body.site .state{font-weight:700}
body.site .state.open{background:var(--blue);color:var(--paper)}
body.site .state.open::before{background:var(--paper);box-shadow:none}
body.site .state.soon{background:transparent;color:var(--red);border:1px solid var(--red)}
body.site .state.soon::before{background:var(--red);box-shadow:none}
body.site .state.shut{background:var(--paper-3);color:var(--muted)}
body.site .state.shut::before{background:var(--muted);box-shadow:none}
body.site .modal-top .state{background:var(--paper);color:var(--ink);border:0}
body.site .needpass{background:transparent;color:var(--red);border:1px solid var(--red)}
body.site .stock{color:var(--red)}

/* ---------- tabs, toolbar, search ---------- */
body.site .tabs{background:var(--paper-2);border:1px solid var(--ink);backdrop-filter:none}
body.site .tabs a,body.site .tabs button{color:var(--ink);font-weight:700}
body.site .tabs a:hover{color:var(--blue)}
body.site .tabs .on{background:var(--blue);color:var(--paper)}
body.site .vt button{color:var(--ink)}body.site .vt .on,body.site .vt button.on{background:var(--blue);color:var(--paper)}
body.site .vt{border:1px solid var(--ink);background:var(--paper-2)}
body.site .search{background:var(--paper-2);border:1px solid var(--ink);color:var(--ink);backdrop-filter:none}
body.site .search::placeholder{color:var(--muted)}
body.site .ev-row{border-bottom:1px solid var(--line)}body.site .ev-row:hover{background:var(--paper-3)}
body.site .ev-row .nm,body.site .ev-row .pr{color:var(--ink)}body.site .ev-row .n,body.site .ev-row .ct{color:var(--muted)}
body.site .slider-ctl button{background:var(--paper-2);border:1px solid var(--ink);color:var(--ink)}
body.site .slider-ctl button:hover{background:var(--ink);color:var(--paper)}

/* ---------- forms ---------- */
body.site .field label{color:var(--ink-2);font-weight:700}
body.site .input,body.site select.input,body.site textarea.input{background:#F4EBDA;color:var(--ink);border:1.5px solid rgba(13,13,13,.45)}
body.site .input::placeholder{color:#8a7f6d}
body.site .input:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(45,79,138,.22)}
body.site .input.err{border-color:var(--red)}
body.site select.input option{background:#F4EBDA;color:var(--ink)}
body.site .input:-webkit-autofill{-webkit-text-fill-color:var(--ink);-webkit-box-shadow:0 0 0 100px #F4EBDA inset}
body.site .ferr{color:var(--red)}
body.site .check{color:var(--ink-2)}
body.site .stepper{background:#F4EBDA;border-color:rgba(13,13,13,.45)}
body.site .stepper button{background:var(--paper-3);color:var(--ink)}

/* ---------- status, pills, toasts, modal ---------- */
body.site .pill{background:var(--paper-3);color:var(--ink)}
body.site .pill.confirmed,body.site .pill.successful{background:var(--blue);color:var(--paper)}
body.site .pill.failed,body.site .pill.cancelled,body.site .pill.refunded{background:var(--red);color:var(--paper)}
body.site .pill.pending{background:transparent;color:var(--red);border:1px solid var(--red)}
body.site .status{color:var(--paper)}
body.site .status.ok{background:var(--blue)}body.site .status.bad{background:var(--red)}body.site .status.pend{background:var(--ink)}
body.site .toast{background:var(--ink);color:var(--paper);border:0;border-left:4px solid var(--red);box-shadow:var(--shadow-lg)}
body.site .toast a{color:#ffd9cf!important}
body.site .toast.ok{border-left-color:var(--blue)}
body.site .modal-bg{background:rgba(13,13,13,.55)}
body.site .modal{background:var(--paper);color:var(--ink)}
body.site .modal-top{background:var(--blue);color:var(--paper)}
body.site .modal.wor .modal-top,body.site .modal.mha .modal-top{background:var(--red)}body.site .modal.aca .modal-top{background:var(--ink)}
body.site .modal-top .badge{background:rgba(226,212,191,.22);color:var(--paper)}
body.site .modal-f{background:var(--paper-3);border-top:1px solid var(--line)}
body.site .modal-b p,body.site .modal-b li{color:var(--ink-2)}
body.site .modal-x{background:rgba(226,212,191,.25);color:var(--paper)}
body.site .tagline{color:var(--red)}

/* ---------- Delegate Card ---------- */
body.site .pass-card{background:var(--blue);border:1px solid var(--ink);box-shadow:var(--shadow-lg)}
body.site .pass-card::before,body.site .pass-card::after{background:rgba(226,212,191,.1)}
body.site .pass-card,body.site .pass-card h2,body.site .pass-card p,body.site .pass-card .amt,body.site .pass-card small,body.site .pass-card .eyebrow{color:var(--paper)}
body.site .pass-card .ico{background:rgba(226,212,191,.2)}
body.site .pass-card .btn{background:var(--red);color:var(--paper);border:1.5px solid var(--red)}
body.site .pass-card .btn:hover{background:var(--red-d)}
body.site .pass-card .btn.in-cart{background:var(--paper);color:var(--blue);border-color:var(--paper)}
body.site .pass-own{background:var(--paper-2);border:1px solid var(--line);color:var(--ink)}
body.site .pass-own.yes{background:rgba(45,79,138,.12);border-color:var(--blue)}
body.site .pass-own small{color:var(--muted)}body.site .pass-own a{color:var(--blue)}
body.site .ticks li::before{background-color:var(--blue);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E2D4BF' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12.5 4 4 8-9'/%3E%3C/svg%3E")}
body.site .ticks li{color:var(--ink-2)}
body.site .step{background:var(--paper-2);border-color:var(--line)}body.site .step .n{background:var(--red)}

/* ---------- footer ---------- */
body.site footer{background:var(--blue);color:var(--paper);border-top:1px solid var(--ink);backdrop-filter:none}
body.site footer p,body.site footer a,body.site footer .brand,body.site footer .brand b,body.site footer .brand i{color:var(--paper)}
body.site footer a:hover{color:#fff;text-decoration:underline}
body.site footer h4{color:#f1c9b6;font-weight:700}
body.site footer .tag{color:#f1c9b6;border-color:#f1c9b6}
body.site .wordmark{font-family:'Lato',var(--font-h),sans-serif;font-weight:900;color:transparent;-webkit-text-stroke:1.5px rgba(226,212,191,.7);-webkit-text-fill-color:transparent}
body.site footer .brand img{filter:invert(1) brightness(1.2)}

/* ---------- basket, cart ---------- */
body.site .basket .bi span,body.site .basket-f .row{color:var(--ink)}
body.site .bi{border-bottom-color:var(--line)}body.site .bi small{color:var(--muted)}
body.site .bi .rm{color:var(--red)}
body.site .line .amt{color:var(--ink)}body.site .line small{color:var(--muted)}body.site .line .why{color:var(--blue)}
body.site .line .ctl .link{color:var(--red)}
body.site .dotc{background:var(--blue)!important}

/* ---------- fixes after the first look ---------- */
body.site .stack .ln:nth-child(1)>span{color:var(--ink)}
body.site .stack .ln.out>span{color:transparent;-webkit-text-stroke:2px var(--ink)}
body.site .links{gap:0;align-items:center;flex-wrap:nowrap}
body.site .links a{font-size:11.5px;letter-spacing:.08em;padding:9px 10px;white-space:nowrap;color:var(--ink);font-weight:700;border-radius:999px;background:none!important}
body.site .links a.active{background:var(--blue)!important;color:var(--paper)}
body.site .links a:hover:not(.active):not(.signup){color:var(--blue)}
body.site .links a::after{display:none}
body.site .links .authnav a.signup{padding:9px 14px;margin-left:4px}
body.site .links .authnav{display:flex;align-items:center;gap:2px;white-space:nowrap}
body.site .nav-search{max-width:170px}
@media(max-width:1180px){body.site .links a{font-size:11px;padding:8px 7px;letter-spacing:.05em}body.site .nav-search{max-width:120px}}
body.site .bg-logo::before{opacity:.045}

/* ---------- second pass ---------- */
body.site .toolbar{margin:24px 0 30px}
body.site .sci,body.site .accommodation{--grad:var(--blue)}
body.site .wor,body.site .mha,body.site .food,body.site .tshirt{--grad:var(--red)}
body.site .aca{--grad:var(--ink)}
body.site .ico,body.site .tile .ti{background:var(--grad,var(--blue));color:var(--paper)}
body.site .modal{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden}
body.site .modal-b{overflow:auto;flex:1 1 auto}
body.site .modal-top,body.site .modal-f{flex:0 0 auto}
body.site .stepper span{color:var(--ink);background:transparent}
body.site .stepper{border:1.5px solid rgba(13,13,13,.45)}
body.site .person .ph{aspect-ratio:1/1}
body.site .person{padding:14px}

/* ---------- phone layout ---------- */
body.site .burger span{background:var(--ink)}
@media(max-width:1100px){
  /* the full menu needs ~1100px: below that (tablets, small laptops) it collapses into the menu button, instead of making the page scroll sideways */
  body.site .burger{display:block;margin-left:auto}
  body.site .links{position:absolute;top:68px;left:0;right:0;flex-direction:column;flex-wrap:nowrap;display:none;padding:12px 20px 20px;margin:0}
  body.site .links.open{display:flex}
  body.site .links .authnav{margin:8px 0 0;flex-direction:column;align-items:stretch}
  body.site .cart-btn{margin-left:0}
  body.site .links{background:var(--paper);border-bottom:1px solid var(--ink);box-shadow:0 20px 30px -22px rgba(13,13,13,.5);align-items:stretch;gap:2px}
  body.site .links a{font-size:13px;padding:12px 14px;border-radius:12px;text-align:left}
  body.site .links .authnav{flex-direction:column;align-items:stretch;gap:2px;border-top:1px solid var(--line);padding-top:8px;margin-top:6px}
  body.site .links .authnav a.signup{margin:6px 0 0;text-align:center}
  body.site .nav-search{max-width:none}
}

/* footer: two stacked lines */
body.site .copy.copy-stack{flex-direction:column;align-items:flex-start;gap:4px}
body.site .copy.copy-stack span:last-child{opacity:.85;font-size:.95em}

/* ---------- card buttons: two equal columns, never wider than the card ---------- */
body.site .ev-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
body.site .ev-actions .btn,body.site .ev-actions .btn-outline,body.site .ev-actions .btn-primary{flex:none;width:100%;min-width:0;white-space:nowrap;padding:10px 6px;font-size:12.5px;letter-spacing:0;justify-content:center;text-align:center;overflow:hidden;text-overflow:ellipsis}
body.site .ev-row .act .btn{white-space:nowrap}

/* ---------- long button labels wrap instead of spilling out of the pill ---------- */
body.site .sum .btn,body.site .basket-f .btn,body.site .panel .btn.full,body.site .btn:disabled,body.site .btn[aria-disabled=true]{white-space:normal;line-height:1.3;text-align:center;max-width:100%}
body.site .sum .btn{width:calc(100% - 44px);border-radius:22px;padding:14px 18px;justify-content:center}
body.site .basket-f .btn{width:100%;border-radius:22px;padding:14px 18px;justify-content:center}

/* UPI QR block on the payment panel */
.upi{border-top:1.5px solid var(--line);padding-top:18px;margin-top:6px}.upi h4{margin:0 0 6px;font-size:17px}
.upi-img{display:block;width:min(260px,100%);height:auto;margin:14px 0;background:#fff;padding:8px;border:1.5px solid var(--ink)}
.upi-amt{font-size:16px;margin:4px 0 8px}.upi .row{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}

/* Page titles: the two typefaces swapped. The plain words are now the red italic serif; the emphasised word is the heavy black sans. */
body.site .page-head h1{font-family:var(--font-serif);font-style:italic;font-weight:400;text-transform:none;letter-spacing:-.01em;line-height:1;color:var(--red)}
body.site .page-head h1 em{font-family:var(--font-h);font-style:normal;font-weight:800;text-transform:uppercase;letter-spacing:-.04em;line-height:.92;color:var(--ink)}
body.site .cta-band .eyebrow{color:var(--paper)!important}

/* Brochure button (home hero) */
body.site .brochure.soon{cursor:default;opacity:.85;border-style:dashed}
body.site .brochure.soon:hover{background:transparent;color:var(--ink)}
body.site .brochure-set{display:inline-flex;gap:8px;flex-wrap:wrap}

/* Card rows: the grid cell (.reveal wrapper) is as tall as the tallest card, so the card inside must fill it: equal heights. */
body.site .grid>.reveal{display:flex}
body.site .grid>.reveal>.card{flex:1 1 auto;min-width:0}

/* Home: long intro paragraph under the title, and the five registration steps */
body.site .lead-long{font-size:16px;line-height:1.6;max-width:900px}
body.site .hero-row:has(.lead-long){display:flex;flex-direction:column;align-items:flex-start;gap:22px}
body.site .hero-row:has(.lead-long) .hero-cta{margin-left:0}
.grid.g5{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:1180px){.grid.g5{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.grid.g5{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.grid.g5{grid-template-columns:1fr}}
body.site .grid.g5 .card p{font-size:14px}

/* Delegate Card page: where the card is needed */
body.site .pass-uses{margin-top:6px}
body.site .pass-uses h3{margin:0 0 8px}
body.site .pass-uses ol{margin:8px 0 12px 22px;display:grid;gap:4px;font-weight:600}
body.site .hero.ed .lead.lead-long{max-width:880px}

/* cancel an unpaid order */
body.site .cancel-order{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line)}
body.site .cancel-order .linkbtn{color:var(--red);font-size:13px}
body.site .linkbtn{background:none;border:0;padding:0;font:inherit;text-decoration:underline;cursor:pointer}

/* date and time at a glance on every event card / row */
body.site .ev-when{margin:2px 0 6px;font-size:14px;color:var(--ink-2)}
body.site .ev-when b{font-weight:700;color:var(--blue);letter-spacing:.02em}
body.site .ev-when span{color:var(--muted);font-style:italic}
body.site .ev-row .when{font-weight:700;color:var(--blue);white-space:nowrap}
/* committee secretaries under a title */
body.site .contacts{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin:2px 0 8px;font-size:14px;color:var(--ink-2)}   /* one secretary per line */
body.site .contacts>span:first-child{font-weight:700;color:var(--muted)}
body.site .contacts .ct-one{display:block}
body.site .contacts a{color:var(--blue);font-weight:700;text-decoration:underline;text-underline-offset:3px}
body.site .contacts a.wa{margin-left:6px;font-size:12px;font-weight:600;text-decoration:none;border:1px solid var(--blue);border-radius:999px;padding:1px 8px}
body.site .contacts a.wa:hover,body.site .contacts a:hover{color:var(--red);border-color:var(--red)}

/* accommodation: choose the nights */
body.site .nights{border:1.5px solid var(--line);border-radius:14px;padding:12px 14px;margin:0 0 10px;display:grid;gap:8px}
body.site .nights legend{font-weight:700;font-size:14px;padding:0 6px}
body.site .nights.err{border-color:var(--red)}
body.site .nights .check{display:flex;align-items:center;gap:10px;font-weight:600}
body.site .nights input{width:18px;height:18px;accent-color:var(--blue)}

/* payment session countdown */
body.site .session-timer{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:16px 0 4px;padding:10px 14px;border:1.5px solid var(--blue);border-radius:14px;color:var(--blue);font-weight:600}
body.site .session-timer b{font:800 22px var(--font-h);letter-spacing:.04em}
body.site .session-timer.urgent{border-color:var(--red);color:var(--red)}
body.site .session-timer.over{display:block;border-color:var(--red);background:rgba(149,6,11,.07);color:var(--ink);font-weight:500}
body.site .session-timer.over b{font:700 15px var(--font-b);letter-spacing:0;color:var(--red)}
body.site .session-timer.over a{color:var(--blue);font-weight:700;text-decoration:underline}

/* list view: the date/time sits under the event name, so every column keeps its place and the name keeps its width */
body.site .ev-row .nmcol{display:flex;flex-direction:column;gap:2px;min-width:0}
body.site .ev-row .when{font-size:13.5px;font-weight:700;color:var(--blue)}

/* list view: status pill and "Pass required" tag share ONE cell, so a row is always exactly: number | name | status | price | button */
body.site .ev-row .stcol{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}
body.site .ev-row .stcol .state,body.site .ev-row .stcol .needpass{position:static;margin:0}
body.site .ev-row .ct{display:none}
@media(max-width:900px){body.site .ev-row .stcol{grid-column:2}}

/* seat reservation countdown on a cart / basket line */
body.site .resv{display:block;margin-top:4px;color:var(--blue);font-weight:600}
body.site .resv b{font:800 15px var(--font-h);letter-spacing:.04em;color:var(--red)}

/* Delegate Card number shown below the card once the payment is verified */
body.site .pass-own .cardno{display:block;margin:2px 0 4px;font:700 13px var(--font-b);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
body.site .pass-own .cardno code{font:800 22px var(--font-h);letter-spacing:.08em;color:var(--blue);background:none;padding:0}

/* speaker / team cards always fill their grid cell, whether or not the photo has loaded yet (a card must never shrink to the width of its name) */
body.site .reveal>.person{width:100%;flex:1 1 auto;min-width:0}
body.site .person .ph{width:100%}

/* phones: sign up / log in right under the edition + brochure line on the home page (the menu buttons stay for desktop) */
body.site .hero-auth{display:none}
@media(max-width:760px){body.site .hero-auth{display:flex;gap:10px;margin:14px 0 4px}body.site .hero-auth .btn{flex:1 1 0;justify-content:center;text-align:center}}

/* Home-page notice (registrations not yet open) */
.site-notice{background:#fff4d6;color:#4a3300;border-bottom:2px solid #e0a800;padding:14px 0;font-size:.95rem;line-height:1.5}
.site-notice b{display:block;font-size:1.05rem;margin-bottom:4px;text-transform:uppercase;letter-spacing:.06em}
.site-notice p{margin:0 0 6px}
.site-notice p:last-child{margin-bottom:0}
.upi-instr{margin:0 0 12px}
.upi-manual .upi-amt{font-size:1.15rem;margin:10px 0}
.upi-warn{border:2px solid #c62828;background:#fff1f0;color:#7a1010;border-radius:8px;padding:12px 14px;margin:12px 0;line-height:1.5}

/* Information (i) button + How-it-works panel (home) */
body.site .info-nav{flex:none;display:grid;place-items:center;width:30px;height:30px;margin:0;padding:0;border-radius:50%;background:transparent;border:1.5px solid var(--blue);color:var(--blue);cursor:pointer;transition:.15s}
body.site .info-nav i{font:italic 700 16px/1 var(--font-serif)}
body.site .info-nav:hover,body.site .info-nav:focus-visible{background:var(--blue);color:var(--paper)}
body.site .info-modal{width:min(760px,100%)}
body.site .info-b section{padding:0 0 18px;margin:0 0 18px;border-bottom:1px solid var(--line)}
body.site .info-b section:last-child{border:0;margin:0;padding:0}
body.site .info-b h3{display:flex;align-items:center;gap:10px;font-size:1.15rem;margin:0 0 10px}
body.site .info-b h3 .n{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--blue);color:var(--paper);font-size:.85rem;flex:none}
body.site .info-b ul,body.site .info-b ol{margin:8px 0 0 22px;color:var(--ink-2);line-height:1.55}
body.site .info-b li{margin-bottom:6px}
body.site .info-key{background:rgba(149,6,11,.06);border:2px solid var(--red)!important;border-radius:12px;padding:16px!important}
body.site .info-key h3 .n{background:var(--red)}
body.site .info-timer{display:flex;align-items:center;gap:14px;background:var(--red);color:var(--paper);border-radius:10px;padding:12px 14px;margin:0 0 12px}
body.site .info-timer b{font:800 1.9rem/1 var(--font-h);white-space:nowrap}
body.site .info-timer span{color:var(--paper);font-size:.95rem;line-height:1.4}
body.site .info-timer span b{font:inherit;font-weight:800}
body.site .info-b ol.info-steps{list-style:none;margin:0;padding:0;counter-reset:s}
body.site .info-steps li{counter-increment:s;position:relative;padding-left:34px}
body.site .info-steps li::before{content:counter(s);position:absolute;left:0;top:0;width:24px;height:24px;border-radius:50%;background:var(--ink);color:var(--paper);display:grid;place-items:center;font-size:.8rem;font-weight:700}
body.site .info-tip{margin:10px 0 0;font-size:.9rem;color:var(--ink-2)}
@media(max-width:760px){body.site .info-timer{flex-direction:column;align-items:flex-start;gap:6px}body.site .info-b{padding:20px 18px}body.site .info-modal .modal-f{flex-direction:column;align-items:stretch}}

/* How-it-works guide: jump menu, flow strip, category grid */
body.site .info-jump{display:flex;gap:6px;overflow-x:auto;padding:10px 18px;border-bottom:1px solid var(--line);background:var(--paper-3);flex:0 0 auto;scrollbar-width:thin}
body.site .info-jump button{flex:none;font:inherit;font-size:12px;font-weight:700;white-space:nowrap;color:var(--blue);background:transparent;border:1.5px solid var(--blue);border-radius:999px;padding:5px 12px;cursor:pointer}
body.site .info-jump button:hover,body.site .info-jump button:focus-visible{background:var(--blue);color:var(--paper)}
body.site .info-jump button.key{color:var(--red);border-color:var(--red)}
body.site .info-jump button.key:hover,body.site .info-jump button.key:focus-visible{background:var(--red);color:var(--paper)}
body.site .info-b{position:relative}
body.site .info-flow{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:14px 0 0!important;padding:0;counter-reset:f}
body.site .info-flow li{counter-increment:f;margin:0;background:var(--paper-3);border:1px solid var(--line);border-radius:999px;padding:6px 14px 6px 8px;font-weight:700;font-size:.9rem;display:flex;align-items:center;gap:8px}
body.site .info-flow li::before{content:counter(f);display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--blue);color:var(--paper);font-size:.75rem}
body.site .info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}
body.site .info-grid>div{background:var(--paper-3);border:1px solid var(--line);border-radius:10px;padding:12px 14px}
body.site .info-grid>div>b:first-child{display:block;margin-bottom:4px}
body.site .info-grid span{font-size:.92rem;color:var(--ink-2);line-height:1.5}
@media(max-width:760px){body.site .info-grid{grid-template-columns:minmax(0,1fr)}}

/* Hover / focus message on the (i) button */
body.site .info-nav{position:relative}
body.site .info-nav::after{content:attr(data-tip);position:absolute;top:calc(100% + 12px);right:-6px;width:max-content;max-width:220px;padding:8px 12px;border-radius:8px;background:var(--ink);color:var(--paper);font:600 12.5px/1.3 var(--font-b,inherit);letter-spacing:.01em;text-transform:none;text-align:center;box-shadow:var(--shadow);opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .15s,transform .15s,visibility .15s;pointer-events:none;z-index:120}
body.site .info-nav::before{content:"";position:absolute;top:calc(100% + 6px);left:50%;margin-left:-6px;border:6px solid transparent;border-top:0;border-bottom-color:var(--ink);opacity:0;visibility:hidden;transition:opacity .15s,visibility .15s;pointer-events:none;z-index:120}
body.site .info-nav:hover::after,body.site .info-nav:focus-visible::after{opacity:1;visibility:visible;transform:none}
body.site .info-nav:hover::before,body.site .info-nav:focus-visible::before{opacity:1;visibility:visible}

body.site .info-limit{display:flex;align-items:center;gap:14px;background:var(--blue);color:var(--paper);border-radius:10px;padding:12px 14px;margin:12px 0}
body.site .info-limit>b{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--paper);color:var(--blue);font:800 1.4rem/1 var(--font-h)}
body.site .info-limit span{color:var(--paper);font-size:.93rem;line-height:1.45}
body.site .info-limit span b{font-weight:800}
