@media(max-width:1120px){
    .desktop-nav{
        margin-left:0;
        gap:22px
    }
    .hero h1{
        font-size:64px
    }
    .hero-search{
        width:min(720px,calc(100vw - 75px))
    }
    .art-ticket{
        left:12px;
        top:195px
    }
    .ball-b{
        right:275px
    }
    .promise-grid{
        gap:65px
    }
    .auth-page{
        gap:55px
    }
    .organizer-spotlight{
        grid-template-columns:.1fr 1fr .75fr
    }
    .spotlight-deco{
        width:75px;
        font-size:78px
    }
    
}
@media(max-width:850px){
    .container{
        width:min(100% - 38px,720px)
    }
    .topbar{
        height:76px
    }
    .desktop-nav{
        display:none
    }
    .brand{
        font-size:29px
    }

    .hero-layout{
        display:block;
        min-height:auto
    }
    .hero-content{
        padding:77px 0 90px
    }
    .hero h1{
        max-width:650px;
        font-size:clamp(50px,8vw,78px)
    }
    .hero-art{
        display:none
    }
    .hero-search{
        width:100%
    }
    .promise-grid{
        grid-template-columns:1fr;
        gap:45px
    }
    .organizer-spotlight{
        grid-template-columns:1fr 1fr
    }
    .spotlight-deco{
        display:none
    }
    .organizer-spotlight .spotlight-content{
        grid-column:1/2
    }
    .directory-layout{
        grid-template-columns:1fr;
        gap:20px
    }
    .filter-panel{
        position:static
    }
    .directory-top{
        padding-top:10px
    }
    .filter-form{
        display:grid;
        grid-template-columns:1fr 1fr;
        align-items:end
    }
    .filter-form .btn{
        align-self:end
    }
    .filter-help{
        grid-column:1/-1
    }
    .event-detail-grid{
        grid-template-columns:1fr;
        gap:35px
    }
    .detail-aside{
        max-width:600px
    }
    .auth-page{
        grid-template-columns:1fr;
        gap:35px;
        padding-top:55px
    }
    .auth-context{
        padding:0
    }
    .auth-context-note{
        margin-top:15px
    }
    .auth-context h1{
        max-width:100%
    }
    .auth-card{
        max-width:590px
    }
    .workspace-columns{
        grid-template-columns:1fr
    }
    .event-edit-grid{
        grid-template-columns:1fr
    }
    .event-edit-side{
        position:static
    }
    .admin-kpis{
        grid-template-columns:1fr 1fr
    }
    .workspace-heading{
        align-items:start
    }
    .review-item{
        flex-direction:column;
        align-items:stretch
    }
    .review-actions{
        width:100%
    }
    
}
@media(max-width:570px){
    .container{
        width:calc(100% - 36px)
    }
    .account-nav{
        gap:9px
    }
    .nav-login{
        font-size:11px
    }
    .account-nav .btn-tiny{
        padding:8px 10px;
        font-size:10px;
        min-height:35px
    }
    .topbar{
        gap:13px
    }
    .brand{
        font-size:28px
    }

    .hero-content{
        padding:62px 0 61px
    }
    .hero h1{
        font-size:clamp(46px,12vw,64px);
        margin:18px 0
    }
    .hero-intro{
        font-size:13px;
        margin-bottom:28px;
        max-width:330px
    }
    .hero-kicker{
        font-size:9px
    }
    .search-inner{
        display:grid;
        grid-template-columns:1fr;
        gap:0;
        padding:9px
    }
    .search-field{
        padding:14px 11px
    }
    .search-time{
        width:auto;
        border-left:0;
        border-top:1px solid #e4e9e1
    }
    .search-field label{
        font-size:10px
    }
    .search-field input,.search-field select{
        font-size:13px
    }
    .btn-search{
        min-height:53px
    }
    .hero-footnote{
        font-size:10px
    }
    .quick-inner{
        flex-direction:column;
        align-items:start;
        gap:11px;
        line-height:1.7;
        padding:19px 0
    }
    .quick-inner a{
        padding-left:28px
    }
    .section-padding{
        padding:66px 0
    }
    .section-head{
        align-items:start;
        flex-direction:column;
        gap:18px
    }
    .section-head h2,.promise-copy h2,.spotlight-content h2{
        font-size:39px
    }
    .event-row{
        gap:14px;
        align-items:flex-start;
        padding:24px 0
    }
    .event-date{
        height:77px;
        width:64px;
        flex-basis:64px
    }
    .event-date span{
        font-size:30px
    }
    .event-date small{
        font-size:9px
    }
    .event-row h3{
        font-size:18px
    }
    .event-meta{
        gap:5px 13px;
        font-size:11px;
        line-height:1.6
    }
    .event-arrow{
        width:28px;
        height:28px;
        flex-basis:28px;
        font-size:16px;
        margin-top:25px
    }
    .event-by{
        line-height:1.5
    }
    .promise-grid{
        padding:75px 0
    }
    .promise-point{
        gap:18px
    }
    .organizer-spotlight{
        grid-template-columns:1fr;
        gap:25px
    }
    .organizer-spotlight .spotlight-content{
        grid-column:auto
    }
    .footer-main{
        flex-direction:column;
        padding:47px 0;
        gap:36px
    }
    .footer-main nav{
        grid-template-columns:1fr 1fr;
        gap:18px 14px
    }
    .footer-bottom{
        flex-direction:column
    }
    .page-intro{
        padding-top:55px;
        padding-bottom:22px
    }
    .page-intro h1,.workspace-heading h1{
        font-size:45px
    }
    .directory-layout{
        padding-bottom:70px
    }
    .filter-form{
        grid-template-columns:1fr;
        gap:17px
    }
    .directory-top{
        align-items:start;
        flex-direction:column
    }
    .directory-order{
        font-size:10px
    }
    .filter-help{
        margin-top:7px
    }
    .event-detail-wrap{
        padding-top:27px;
        padding-bottom:75px
    }
    .event-story h1{
        font-size:40px
    }
    .detail-pair-grid{
        grid-template-columns:1fr
    }
    .detail-aside{
        padding:22px
    }
    .detail-schedule{
        gap:12px
    }
    .workspace{
        padding-top:44px;
        padding-bottom:70px
    }
    .workspace-heading{
        flex-direction:column;
        gap:18px
    }
    .work-panel{
        padding:22px
    }
    .panel-top h2{
        font-size:25px
    }
    .form-grid{
        grid-template-columns:1fr
    }
    .workspace-content{
        padding:22px
    }
    .onboarding-banner{
        align-items:start;
        gap:15px;
        padding:20px
    }
    .onboarding-number{
        white-space:normal
    }
    .auth-page{
        padding-top:45px;
        padding-bottom:70px
    }
    .auth-context h1{
        font-size:48px
    }
    .auth-card{
        padding:25px 21px
    }
    .role-choice{
        padding:12px
    }
    .review-actions>div{
        flex-wrap:wrap
    }
    .admin-kpis{
        grid-template-columns:1fr 1fr;
        gap:9px
    }
    .admin-kpis div{
        padding:19px
    }
    .admin-kpis strong{
        font-size:37px
    }
    .admin-kpis span{
        font-size:10px
    }
    .installer-shell{
        margin:15px auto 70px;
        padding:18px
    }
    .installer-heading{
        margin:33px 0
    }
    .installer-heading h1{
        font-size:44px
    }
    .installer-form{
        padding:24px 20px
    }
    .installer-bottom{
        align-items:stretch;
        flex-direction:column
    }
    .table-actions{
        flex-wrap:wrap
    }
    
}
@media(prefers-reduced-motion:reduce){
    html{
        scroll-behavior:auto
    }
    *,*:before,*:after{
        transition:none!important
    }
    
}

.sector-hero{
    background:var(--deep);
    color:#fff;
    overflow:hidden
}
.sector-hero-grid{
    display:grid;
    grid-template-columns:1.15fr .85fr;
    gap:50px;
    align-items:center;
    min-height:520px;
    padding-top:55px;
    padding-bottom:55px
}
.sector-hero h1{
    font-family:Georgia,serif;
    font-weight:400;
    letter-spacing:-.06em;
    font-size:clamp(49px,5.3vw,76px);
    line-height:1.1;
    margin:22px 0
}
.sector-hero h1 em{
    color:var(--gold);
    font-weight:400
}
.sector-hero p{
    max-width:570px;
    color:#d4ded4;
    font-size:14px
}
.sector-cta{
    display:flex;
    align-items:center;
    gap:26px;
    flex-wrap:wrap;
    margin-top:29px
}
.sector-secondary{
    font-weight:750;
    font-size:12px;
    color:#d2e0ce
}
.sector-sheet{
    background:#f4efe3;
    color:var(--ink);
    padding:34px 42px;
    transform:rotate(4deg);
    box-shadow:20px 35px 75px #081c192d;
    border-radius:8px;
    max-width:360px;
    justify-self:center
}
.sheet-flag{
    font-size:9px;
    letter-spacing:.13em;
    color:#947c65;
    font-weight:800;
    border-bottom:1px solid #d4d1c5;
    padding-bottom:18px
}
.sheet-big{
    font-family:Georgia,serif;
    font-size:38px;
    line-height:1.25;
    letter-spacing:-.055em;
    padding:30px 0 24px
}
.sheet-big em{
    color:#b66b53
}
.sheet-line{
    border-top:1px solid #d6dacd;
    padding:11px 0;
    color:#587064;
    font-size:11px;
    font-weight:700
}
.sector-sheet-ad{
    background:#e2ead8;
    transform:rotate(-3deg)
}
.sector-explain h2{
    font-family:Georgia,serif;
    font-size:48px;
    letter-spacing:-.055em;
    font-weight:400;
    margin:18px 0 36px
}
.sector-explain h2 em{
    color:#ae795d
}
.sector-steps{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:32px;
    margin-bottom:32px
}
.sector-steps article{
    border-top:1px solid #cbd9ce;
    padding-top:20px
}
.sector-steps article>span{
    font-family:Georgia,serif;
    font-size:27px;
    color:#b28b6f
}
.sector-steps article h3{
    font-size:18px;
    margin:23px 0 8px;
    letter-spacing:-.035em
}
.sector-steps article p{
    font-size:13px;
    color:var(--muted)
}
@media(max-width:850px){
    .sector-hero-grid{
        grid-template-columns:1fr;
        min-height:auto
    }
    .sector-sheet{
        display:none
    }
    
}
@media(max-width:570px){
    .sector-hero-grid{
        padding-top:65px;
        padding-bottom:70px
    }
    .sector-hero h1{
        font-size:48px
    }
    .sector-explain h2{
        font-size:39px
    }
    .sector-steps{
        grid-template-columns:1fr;
        gap:8px
    }
    
}

.stack-form label.role-choice{
    display:flex;
    flex-direction:row;
    align-items:center;
    gap:15px;
    margin-bottom:9px;
    padding:13px 14px
}
.stack-form label.role-choice>span:last-child{
    flex:1;
    min-width:0
}
.stack-form label.role-choice input[type=radio]{
    flex:0 0 16px;
    width:16px;
    height:16px;
    margin:0
}
.stack-form label.role-choice .role-decoration{
    flex:0 0 28px
}

.directory-location {
        margin: .65rem 0 0;
        color: var(--dark-green, #274c3d);
        font-size: .95rem;
        font-weight: 600;
    
}
.directory-warning {
        margin: 1rem 0 1.3rem;
        padding: 1rem 1.2rem;
        border: 1px solid #d9ba7d;
        border-left: 4px solid #bf9040;
        background: #fff9ee;
        border-radius: .65rem;
        line-height: 1.55;
        color: #584d39;
    
}
.tag-distance {
        background: #f2ead7;
        color: #5e4b20;
    
}
.filter-specific-date {
     transition: opacity .2s ease;
     
}
@media (max-width: 720px) {
        .directory-warning {
         font-size: .9rem;
         
    }
        .directory-location {
         font-size: .85rem;
         
    }
    
}

[hidden] {
     display: none !important;
     
}
.geo-map-link {
        margin-top: clamp(1.5rem, 4vw, 4rem);
        margin-bottom: clamp(2rem, 5vw, 5rem);
        padding-top: 1.5rem;
        padding-bottom: 1.5rem;
        border-top: 1px solid #d8ddd5;
        display: flex;
        gap: 2rem;
        justify-content: space-between;
        align-items: end;
    
}
.geo-map-link-copy {
     max-width: 38rem;
     
}
.geo-map-link h2 {
     margin: .6rem 0;
     font-size: clamp(1.6rem, 3vw, 2.2rem);
     
}
.geo-map-link p {
     line-height: 1.65;
     color: #68766e;
     
}
@media (max-width: 700px) {
        .geo-map-link {
         display: block;
         
    }
        .geo-map-link .btn {
         display: inline-flex;
         margin-top: .8rem;
         
    }
    
}



.directory-switch { display:flex; gap:.5rem; align-items:center; }
.directory-switch [aria-pressed="true"] { background:#15392f; color:#fff; border-color:#15392f; }
.map-panel[hidden], .event-list[hidden] { display:none !important; }
.map-panel { margin:1.25rem 0 2rem; }
.map-explanation { padding:1rem 1.25rem; background:#f5f2e9; border:1px solid #ddd5c3; border-radius:12px 12px 0 0; }
.map-explanation p { margin:.35rem 0 0; color:#58635e; line-height:1.5; font-size:.87rem; }
.loto-map { width:100%; height:430px; position:relative; overflow:hidden; background:#d9e1db; border:1px solid #ddd5c3; border-top:none; border-radius:0 0 12px 12px; isolation:isolate; }
.loto-map-tiles, .loto-map-markers { position:absolute; inset:0; }
.loto-map-tiles img { position:absolute; width:256px; height:256px; max-width:none; }
.loto-map-marker { position:absolute; z-index:3; width:35px; height:35px; margin:-34px 0 0 -17px; border-radius:50% 50% 50% 3px; transform:rotate(-45deg); display:grid; place-items:center; background:#174f42; color:white; border:2px solid white; box-shadow:0 4px 9px #0005; font-size:0; }
.loto-map-marker::after { content:'✳'; font-size:16px; transform:rotate(45deg); }
.loto-map-marker:hover, .loto-map-marker:focus-visible { background:#a16b32; z-index:5; }
.map-controls { position:absolute; z-index:5; top:12px; right:12px; display:grid; gap:4px; }
.map-controls button { background:white; border:1px solid #ccc; border-radius:7px; font-size:24px; width:40px; height:40px; cursor:pointer; }
.map-attribution { position:absolute; z-index:5; bottom:0; right:0; background:#ffffffec; padding:2px 6px; font-size:11px; }
.event-poster-detail { margin:2rem 0; border-radius:14px; overflow:hidden; background:#eeeae0; display:flex; align-items:center; justify-content:center; max-height:560px; }
.event-poster-detail img { display:block; width:100%; height:auto; max-height:560px; object-fit:contain; }
.event-row-poster { display:block; width:85px; min-width:85px; height:112px; margin:0 1.2rem; overflow:hidden; border-radius:8px; background:#e8e3d7; }
.event-row-poster img { width:100%; height:100%; object-fit:cover; }
.poster-upload-layout { display:grid; grid-template-columns:minmax(125px,220px) 1fr; gap:1.5rem; align-items:start; padding:0 0 1rem; }
.poster-preview { min-height:225px; background:#ebe6d9; border:1px dashed #a1a995; border-radius:12px; display:grid; place-items:center; overflow:hidden; }
.poster-preview img { width:100%; max-height:390px; object-fit:contain; }
.poster-placeholder { display:grid; gap:.5rem; text-align:center; padding:1rem; color:#667365; }
.poster-placeholder span { font-size:3rem; color:#9a8e76; }
.inline-choice { display:flex !important; align-items:center; gap:.6rem; }
.inline-choice input { width:auto; }
.organizer-actions { display:flex; flex-wrap:wrap; gap:.5rem 1rem; }
@media(max-width:760px) {
  .poster-upload-layout { grid-template-columns:1fr; }
  .poster-preview { min-height:180px; max-height:320px; }
  .directory-switch { margin-top:.8rem; }
  .loto-map { height:375px; }
  .event-row-poster { width:64px; min-width:64px; height:90px; margin:0 .4rem; }
}


.commune-suggestions[hidden] { display:none !important; }
.commune-suggestions { background:#fff; border:1px solid #b9c2b6; border-radius:10px; box-shadow:0 10px 22px #0b2b2026; max-height:250px; overflow-y:auto; margin-top:.3rem; }
.commune-choice { display:block; width:100%; background:transparent; border:0; padding:.65rem .8rem; text-align:left; color:#173f32; cursor:pointer; font:inherit; font-size:.92rem; }
.commune-choice:hover, .commune-choice:focus-visible { background:#eef1e9; }



.player-sections { display: grid; gap: clamp(28px, 4vw, 56px); }
.player-panel { border-top: 1px solid rgba(27,56,52,.16); padding-top: 25px; }
.player-note { font-size: .9rem; color: #596968; line-height: 1.65; margin: 12px 0 20px; }
.compact-empty { padding: clamp(22px, 3vw, 40px); }
.player-alert-list { display: grid; gap: 12px; }
.player-alert { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center;
  gap: 14px; padding: 17px 20px; background: #f9f9f4; border: 1px solid #e0e4dd;
  border-radius: 14px; }
.player-alert.is-unread { border-left: 4px solid #7d9d8a; background: #f2f6ee; }
.player-alert > div { display: grid; gap: 4px; }
.player-alert small { color: #61736c; font-weight: 600; letter-spacing: .025em; }
.player-alert a { color: #173c35; font-weight: 700; text-decoration: none; }
.player-alert a:hover { text-decoration: underline; }
.player-alert span { font-size: .9rem; color: #65716d; }
.player-mark-read { margin-top: 15px; }
.player-area-form { display: flex; align-items: end; gap: 12px; flex-wrap: wrap; margin-top: 20px; }
.player-area-form label { display: grid; gap: 6px; font-size: .85rem; font-weight: 700; flex: 1 1 170px; }
.player-area-form input, .player-area-form select { width: 100%; border: 1px solid #b9c6bd;
  border-radius: 8px; background: #fff; min-height: 43px; padding: 8px 10px; }
.follow-pill-list { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0; }
.follow-pill { border: 1px solid #d3dbd4; background: #f5f7f3; border-radius: 100px;
  display: inline-flex; align-items: center; gap: 10px; padding: 8px 10px 8px 18px; }
.follow-pill > a { font-weight: 700; color: #24423c; text-decoration: none; }
.follow-pill button { border: 0; background: #e2ebe3; width: 28px; height: 28px;
  border-radius: 50%; font-size: 1.2rem; cursor: pointer; color: #1a463b; }
.follow-description { max-width: 800px; padding-bottom: 25px; }
@media(max-width:640px) { .player-area-form { align-items: stretch; }
 .player-area-form label { flex-basis: 100%; } .player-area-form .btn { width: 100%; }
 .player-panel .section-head { align-items: flex-start; } }



.v05-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:1rem;margin:1.5rem 0 2rem}
.v05-kpis>div{background:#f6f5ef;border:1px solid #e1e4da;border-radius:12px;padding:1.15rem}
.v05-kpis span{display:block;color:#647272;font-size:.84rem;margin-bottom:.4rem}
.v05-kpis strong{font-size:clamp(1.6rem,3vw,2.5rem);font-weight:650;font-variant-numeric:tabular-nums}
.sponsor-banner{margin:1.5rem auto;padding:1.4rem 1.7rem;border:1px solid #d9ded5;border-radius:12px;background:#f4f6ef}
.sponsor-content{display:flex;gap:1rem;align-items:center;justify-content:space-between}
.sponsor-content h2{font-size:1.4rem;margin:.4rem 0}
.sponsor-content p{margin:.2rem 0 0;color:#465451}
.sponsor-content small{display:block;font-weight:650;color:#2d453d}
.v05-sponsor-entry{padding:1rem 0;border-bottom:1px solid #e0e4dc}
.v05-sponsor-entry h3{margin:.3rem 0}.v05-sponsor-entry small{display:block;margin:.5rem 0;color:#5c6664}
.v05-sponsor-actions{display:flex;align-items:center;gap:.5rem;margin-top:.8rem}
.v05-sponsor-actions select{max-width:165px}
.department-events{margin-top:2rem}
@media(max-width:600px){.sponsor-content{align-items:flex-start;flex-direction:column}.v05-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}


.qr-public { display:flex; flex-direction:column; gap:.75rem; align-items:flex-start; margin:1rem 0; }
.qr-public img { border:1px solid #d6dfd8; border-radius:.5rem; background:white; padding:.5rem; }



.loto-print-sheet {
    padding: 2.8rem;
    border: 1px solid #d6d9d2;
    background: #fff;
    color: #183232;
    border-radius: 8px;
}
.loto-print-sheet h2 { font-size: clamp(2rem, 5vw, 3rem); margin: 1.2rem 0; }
.loto-print-date { font-size: 1.3rem; font-weight: 700; }
.loto-print-qr-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 2rem; margin: 2rem 0; }
.loto-print-qr-grid img { max-width: 180px; display: block; }
.loto-print-sheet small { overflow-wrap: anywhere; }
.loto-print-foot { font-size: .8rem; margin-top: 2rem; }
@media print {
    @page { size: A4; margin: 13mm; }
    .loto-no-print, .site-header, .site-footer, .loto-print-qr-grid .btn { display: none !important; }
    .loto-print-kit, .loto-print-sheet { padding: 0 !important; margin: 0 !important; border: 0 !important; max-width: none !important; box-shadow: none !important; }
    .loto-print-sheet { break-inside: avoid; }
    .loto-print-qr-grid { grid-template-columns: 1fr 1fr; }
}



:root { --action-focus:#345f51; --focus-ring:0 0 0 4px rgba(52,95,81,.2); }
:focus-visible{outline:3px solid var(--action-focus);outline-offset:3px}
.filter-panel,.work-panel,.ticket-panel,.checkin-scanner {border-color:var(--line);box-shadow:0 8px 32px rgba(15,39,35,.045)}
.filter-options {display:grid;gap:.85rem;margin:1.2rem 0;padding-top:1rem;border-top:1px solid var(--line)}
.filter-check {display:flex!important;gap:.8rem;align-items:flex-start;line-height:1.4;font-weight:550}
.filter-check input {width:19px;height:19px;min-width:19px;accent-color:var(--pine);margin:.1rem 0 0}
.filter-form select:disabled {opacity:.6;cursor:not-allowed;background:#f0f1ed}
.service-editor{padding:1.1rem;border:1px solid var(--line);border-radius:12px;background:#fafbf8}
.service-editor .form-grid{margin-top:1rem}
.service-editor select{width:100%}
.directory-location{font-size:.92rem;color:var(--pine);font-weight:600;margin:.45rem 0 0}
.booking-flow{display:flex;flex-wrap:wrap;gap:.6rem;margin:1.4rem 0 2rem}
.booking-flow span{font-size:.77rem;letter-spacing:.015em;font-weight:650;border:1px solid #d4ded6;padding:.55rem .75rem;border-radius:8px;background:#f1f5ee}
.ticket-panel{margin:1.2rem 0;padding:1.4rem;border:1px solid #d3dcd2;background:#f8fbf6;border-radius:14px;display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:1rem 2rem;align-items:center}
.ticket-panel-copy h3{font-size:1.3rem;margin:.65rem 0}
.ticket-panel p{line-height:1.5}
.ticket-qr{display:flex;flex-direction:column;align-items:center;gap:.5rem}
.ticket-qr img{display:block;border-radius:6px;border:10px solid white;width:194px;max-width:100%;height:auto;box-shadow:0 3px 15px #19332b15}
.ticket-qr a{font-size:.73rem;text-align:center}
.ticket-actions{grid-column:1/-1;display:flex;gap:1rem;align-items:center;justify-content:flex-start;flex-wrap:wrap;border-top:1px solid #dce3db;padding-top:1rem}
.ticket-actions form{margin:0}
.ticket-activate{padding:1rem;background:#f4f5ee;border:1px solid #dce3db;border-radius:12px;margin:1rem 0}
.checkin-scanner{padding:1.6rem;margin:2rem 0 2.5rem;border:1px solid #ccdcd4;border-radius:14px;background:#f7faf7}
.scanner-heading{display:flex;align-items:center;justify-content:space-between;gap:1.5rem}
.scanner-heading h2{margin:.45rem 0;font-size:1.6rem}
.scanner-heading p{max-width:530px;color:var(--muted);line-height:1.5}
.scanner-camera{max-width:570px;background:#172d29;position:relative;overflow:hidden;border-radius:13px;margin:1rem auto;color:white;text-align:center;padding:8px}
.scanner-camera[hidden]{display:none}
.scanner-camera video{display:block;width:100%;max-height:65vh;object-fit:cover;min-height:200px;border-radius:7px}
.scanner-camera button{margin:.7rem auto}
.scanner-focus{position:absolute;top:21%;left:21%;width:58%;height:48%;border:3px solid #d8f8d7;border-radius:15px;pointer-events:none;box-shadow:0 0 0 1000px #10221c36}
.scanner-status{border-left:3px solid #4c9373;padding:.7rem .85rem;margin:1rem 0;font-size:.91rem;background:#eef4ed}
.scanner-manual{margin-top:1.3rem;padding:1rem;border-top:1px solid var(--line)}
.scanner-manual summary{font-weight:650;cursor:pointer}
.scanner-manual-form{display:flex;align-items:flex-end;gap:.8rem}
.scanner-manual-form label{flex:1}
.scanner-manual-form button{white-space:nowrap}
.organizer-pulse{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1.4rem 0 2rem}
.organizer-pulse>div{border-top:4px solid var(--pine);background:white;padding:1.15rem;border-radius:4px 4px 12px 12px;box-shadow:0 4px 18px #18372c0e;display:flex;flex-direction:column;gap:.25rem}
.organizer-pulse span{font-size:.85rem;color:var(--muted)}
.organizer-pulse strong{font-size:2.3rem;font-weight:750;line-height:1.2;font-variant-numeric:tabular-nums}
.organizer-pulse small{font-size:.72rem;color:var(--muted)}
.organizer-event-counts{font-size:.83rem;color:var(--pine)}
@media(max-width:820px){
 .ticket-panel{grid-template-columns:1fr;gap:1.1rem}
 .ticket-qr{justify-self:center}
 .scanner-heading,.scanner-manual-form{align-items:stretch;flex-direction:column}
 .scanner-heading button,.scanner-manual-form button{width:100%}
 .organizer-pulse{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:520px){
 .organizer-pulse{grid-template-columns:1fr;gap:.55rem}
 .organizer-pulse>div{padding:.8rem;display:grid;grid-template-columns:1fr auto;align-items:center}
 .organizer-pulse strong{grid-column:2;grid-row:1/span 2;font-size:1.7rem}
 .checkin-scanner{padding:1rem;margin:1.5rem 0}
 .ticket-panel{padding:1rem}
 .booking-flow span{font-size:.74rem}
}
@media print{
 .site-header,.site-footer,.booking-flow,.ticket-actions,.ticket-activate,.filter-panel,.checkin-scanner,.nav-login{display:none!important}
 .ticket-panel{border:1px solid #aaa;box-shadow:none;break-inside:avoid;grid-template-columns:1fr 200px;}
 .ticket-qr a{display:none}
 .work-panel{break-inside:avoid}
}


:root{--ink:#243944;--ink2:#51616a;--teal:#196b75;--teal-dark:#12515b;--coral:#e67859;--coral-light:#fff0e9;--gold:#f4bd5e;--gold-light:#fff6df;--cream:#faf8f3;--paper:#fff;--line:#e5e3dd;--shadow:0 12px 34px rgba(28,48,53,.045);font-family:Inter,"Segoe UI",Arial,sans-serif}
body.ux-v3{background:#faf8f3;color:#243944;font-size:16px}
html{scroll-padding-top:94px}body.ux-v3 .ux-filter-toggle{scroll-margin-top:95px}
body.ux-v3 h1,body.ux-v3 h2,body.ux-v3 h3{color:#243944;font-family:Manrope,Inter,"Segoe UI",Arial,sans-serif;letter-spacing:-.035em}
body.ux-v3 h1{font-size:clamp(34px,4.35vw,55px);line-height:1.13;font-weight:800}
body.ux-v3 h2{font-size:clamp(26px,2.7vw,34px);line-height:1.19}
body.ux-v3 p{line-height:1.62}
body.ux-v3 .ux-ref .hero h1,body.ux-v3 .ux-ref .hero p{color:#243944}
body.ux-v3 .ux-ref .search-panel .field,body.ux-v3 .ux-ref .search-panel .field label{color:#40595d}
body.ux-v3 .ux-ref .hero .highlight{color:#196b75}
body.ux-v3 .ux-ref .organizer-promo .eyebrow{color:#e9d5aa}
body.ux-v3 .container{width:min(1220px,calc(100% - 64px))}
body.ux-v3 :focus-visible{outline:3px solid #e67859;outline-offset:3px}
body.ux-v3 .btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:12px 20px;border-radius:10px;border:1px solid transparent;font-size:15px;font-weight:750;transform:none}
body.ux-v3 .btn:hover{transform:none}
body.ux-v3 .btn-primary{background:#196b75;border-color:#196b75;color:#fff}
body.ux-v3 .btn-primary:hover{background:#12515b;border-color:#12515b}
body.ux-v3 .btn-tiny{min-height:40px;padding:9px 14px;font-size:13px}
body.ux-v3 input,body.ux-v3 select,body.ux-v3 textarea{accent-color:#196b75}
body.ux-v3 .ux3-icon{display:inline-block;width:19px;height:19px;flex-shrink:0;vertical-align:middle;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
body.ux-v3 .ux3-icon.sm{width:16px;height:16px}
.ux3-sprite{position:absolute;width:0;height:0;overflow:hidden}

body.ux-v3 .ux3-header{position:sticky;top:0;z-index:60;height:82px;background:#fffdfa;border-bottom:1px solid #e5e3dd}
.ux3-navrow{height:100%;display:flex;align-items:center;gap:26px}
.ux3-brand{display:inline-flex;align-items:center;flex:0 0 auto;min-width:0}
.ux3-brand .sortici-logo{display:block;width:164px;height:auto;max-width:100%}
.ux3-nav-main{display:flex;gap:22px;margin-left:24px;align-items:center;flex:1}
.ux3-nav-link{font-size:14px;font-weight:700;padding:13px 4px;color:#51616a;white-space:nowrap}
.ux3-nav-link:hover,.ux3-nav-link.active{color:#196b75}
.ux3-nav-link.active{box-shadow:inset 0 -3px #e67859}
.ux3-header-actions{display:flex;align-items:center;gap:9px;margin-left:auto}
.ux3-account-secondary,.ux3-account-primary{min-height:44px;border-radius:10px;border:1px solid #33434a;padding:10px 14px;font-size:14px;font-weight:750;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}
.ux3-account-secondary{background:white;color:#243944}.ux3-account-primary{color:white;background:#196b75;border-color:#196b75}
.ux3-account-primary:hover{background:#12515b}
.ux3-bottom-nav{display:none}

body.ux-v3 .ux-ref .eyebrow{font-size:12px;letter-spacing:.11em;text-transform:uppercase;color:var(--teal);font-weight:800}
body.ux-v3 .ux-ref .btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:12px 20px;border-radius:10px;border:1px solid transparent;font-size:15px;font-weight:750;transition:background .15s ease,transform .15s ease;text-decoration:none;line-height:1.2}
body.ux-v3 .ux-ref .btn:active{transform:translateY(1px)}
body.ux-v3 .ux-ref .header-actions .btn{min-height:44px;padding:10px 14px;font-size:14px}
body.ux-v3 .ux-ref .hero{background:linear-gradient(109deg,#faf8f3 0%,#f5f5ec 58%,#f8ece4 100%);border-bottom:1px solid #e9e5dc}
body.ux-v3 .ux-ref .hero-grid{min-height:500px;display:grid;grid-template-columns:minmax(0,1.42fr) minmax(315px,.9fr);gap:54px;align-items:center;padding-top:65px;padding-bottom:66px}
body.ux-v3 .ux-ref .hero h1{margin:13px 0 19px;max-width:650px}
body.ux-v3 .ux-ref .hero h1 .highlight{color:var(--teal)}
body.ux-v3 .ux-ref .hero-lead{font-size:17px;max-width:540px;margin-bottom:28px}

/* Sortici 098 - Lotos passés / informations sur l'annonce / espace contact */
.sortici-event-trace{font-size:.9rem;line-height:1.55;color:#4b5563;margin:1rem 0}.sortici-past-events{padding:1.75rem 0;margin-top:1.5rem;border-top:2px solid #e5e7eb}.sortici-past-events h2{margin-bottom:.5rem}.sortici-complete-form{margin:.6rem 0;padding:1rem;background:#f8fafc;border:1px solid #cbd5e1;border-radius:12px}.sortici-complete-form button{min-height:44px}.sortici-complete-form label{display:flex;gap:.65rem;align-items:center;margin:.7rem 0}
