.nls-wrap{width:80%;max-width:1080px;margin:0 auto}
#main-content.nls-single{background:#fff;color:#666;font-size:16px;line-height:1.8;padding-top:70px}
.nls-single .nls-event{padding:70px 0 60px}
.nls-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.8fr);gap:64px;align-items:start}
.nls-single h1,.nls-single h2,.nls-calendar h2,.nls-single .nls-kind,.nls-calendar .nls-kind{font-family:"Playfair Display",Georgia,serif;font-weight:400;letter-spacing:0;line-height:1.15}
.nls-single h1{font-size:clamp(38px,4.2vw,54px);color:#626460;padding:0;margin:12px 0 26px;overflow-wrap:break-word}
.nls-single h2{font-size:30px;color:#9d858c;margin:0 0 20px;padding:0}
.nls-single .nls-kind{font-size:29px;color:#9d858c;margin:0;padding:0}
.nls-facts{margin:0}
.nls-facts>div{display:grid;grid-template-columns:62px minmax(0,1fr);gap:12px;margin:0 0 15px}
.nls-facts dt{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#a08157;padding-top:3px}
.nls-facts dd{margin:0;color:#535353;overflow-wrap:anywhere}
.nls-facts small{display:block;color:#777;font-size:14px;line-height:1.7;margin-top:3px}
.nls-facts a,.nls-back a{color:inherit}
.nls-hero-image{margin:0}
.nls-hero-image img{display:block;width:100%;height:auto;max-height:590px;object-fit:cover}
.nls-programme{margin:55px 0 0}
.nls-richtext p{margin:0 0 1.2em;padding:0}
.nls-highlights{margin:38px 0 0}
.nls-highlights ul{list-style:disc;padding:0 0 0 22px;margin:0}
.nls-highlights li{padding-left:5px;margin-bottom:8px}
.nls-booking{margin:55px 0 0;padding-top:30px;border-top:1px solid #e7e0df}
.nls-form-event{color:#9d858c;margin:0 0 20px;padding:0}
.nls-form-row{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.nls-form label{display:block;font-size:14px;color:#666;margin-bottom:20px}
.nls-form input:not([type=hidden]),.nls-form textarea{display:block;box-sizing:border-box;width:100%;padding:13px 15px;margin-top:7px;background:#f7f5f4;border:1px solid #e4ddda;border-radius:0;color:#444;font:inherit;line-height:1.5}
.nls-form input:focus,.nls-form textarea:focus{outline:2px solid #a1878d;outline-offset:2px}
.nls-single .nls-button{display:inline-block;border:1px solid #9d858c;background:#9d858c;color:#fff;padding:12px 23px;font:inherit;line-height:1.4;text-decoration:none;cursor:pointer;border-radius:0}
.nls-single .nls-button:hover{background:#826c73;border-color:#826c73}
.nls-single .nls-button:focus-visible,.nls-card a:focus-visible{outline:2px solid #826c73;outline-offset:5px}
.nls-single .nls-button:disabled{opacity:.6;cursor:default}
.nls-form-note{font-size:13px;color:#777;margin:0 0 20px;padding:0}
.nls-form-note a{text-decoration:underline;color:inherit}
.nls-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.nls-preview-note,.nls-message{background:#f7f3f1;border-left:3px solid #9d858c;padding:14px 18px!important;margin:15px 0!important}
.nls-back{margin-top:50px;font-size:14px}
.nls-badge{font-size:14px;color:#83616b;letter-spacing:.02em}
.nls-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;align-items:stretch}
.nls-calendar .nls-card{display:flex;flex-direction:column;min-width:0;background:#fff;border:1px solid #eeeae7;border-radius:17px;padding:8px 8px 0;box-shadow:0 3px 18px #493a3010;overflow:hidden;transition:transform .35s ease,box-shadow .35s ease}
.nls-calendar .nls-card:hover{transform:translateY(-4px);box-shadow:0 12px 28px #493a3018}
.nls-card-visual{position:relative;isolation:isolate;border-radius:11px;overflow:hidden;background:#eeebe7;aspect-ratio:1.48}
.nls-card-visual:after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#17251988);pointer-events:none;z-index:1}
.nls-calendar .nls-card-photo.et_pb_module,.nls-card-image{display:block;width:100%;height:100%;margin:0!important}
.nls-calendar .nls-card-photo a,.nls-calendar .nls-card-photo .et_pb_image_wrap{display:block;width:100%;height:100%}
.nls-card-visual img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .65s ease}
.nls-card:hover .nls-card-visual img{transform:scale(1.035)}
.nls-card-location{position:absolute;z-index:2;top:10px;right:10px;display:flex;align-items:center;gap:5px;max-width:calc(100% - 20px);padding:5px 9px;background:#fffffff2;border:1px solid #ffffffb3;border-radius:6px;color:#4d554a;font-size:11px;line-height:1.4;box-shadow:0 2px 8px #0000000b}
.nls-card-location svg{flex:none;width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.7}
.nls-card-date{position:absolute;z-index:2;bottom:12px;left:12px;right:10px;color:#fff;font-size:12px;font-weight:500;line-height:1.5;text-shadow:0 1px 5px #00000055}
.nls-calendar .nls-card-body{padding:18px 12px 16px;flex:1}
.nls-calendar .et_pb_module.nls-card-heading,.nls-calendar .et_pb_module.nls-excerpt{margin:0!important}
.nls-calendar .nls-kind{font-family:inherit!important;font-size:10px;font-weight:500;line-height:1.5;letter-spacing:.07em;text-transform:uppercase;color:#9d858c;margin:0 0 7px;padding:0}
.nls-calendar .nls-card h2{font-family:"Playfair Display",Georgia,serif;font-size:25px!important;font-weight:400;line-height:1.2!important;letter-spacing:-.025em;color:#3f443d;padding:0;margin:0 0 10px;overflow-wrap:break-word}
.nls-calendar .nls-card h2 a{color:inherit;text-decoration:none}
.nls-calendar .nls-excerpt{font-size:13px;line-height:1.6;color:#7a7b76}
.nls-calendar .nls-excerpt p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;max-height:4.8em;margin:0;padding:0}
.nls-calendar .nls-card-footer{border-top:1px solid #efeeea;margin:0 12px;padding:0}
.nls-calendar .nls-card-action.et_pb_button_module_wrapper{margin:0!important}
.nls-calendar .nls-card-footer .et_pb_button,.nls-calendar .nls-more{display:flex!important;align-items:center;justify-content:space-between;width:100%;padding:13px 0!important;border:0!important;border-radius:0;background:none!important;color:#50594c!important;font-family:inherit!important;font-size:12px!important;font-weight:500;line-height:1.5!important;letter-spacing:0!important;text-decoration:none;box-shadow:none}
.nls-calendar .nls-card-footer .et_pb_button:after{content:"→"!important;font-family:Arial,sans-serif!important;position:static!important;display:block;opacity:1!important;font-size:19px!important;line-height:1;margin:0 0 0 12px!important;transform:none;transition:translate .25s ease}
.nls-card-footer a:hover:after{translate:3px 0}
.nls-card.nls-reveal{opacity:0;transform:translateY(20px);transition:opacity .65s ease var(--nls-delay,0ms),transform .65s ease var(--nls-delay,0ms),box-shadow .35s ease}
.nls-card.nls-reveal.nls-visible,.nls-card.nls-reveal:focus-within{opacity:1;transform:translateY(0)}
.nls-card.nls-reveal.nls-visible:hover{transform:translateY(-4px);transition-delay:0ms}
@media(prefers-reduced-motion:reduce){.nls-card,.nls-card.nls-reveal,.nls-card-visual img,.nls-card-footer a:after{transition:none!important;transform:none!important;translate:none!important;opacity:1!important}}
@media(max-width:980px){#main-content.nls-single{padding-top:80px}.nls-hero{gap:35px;grid-template-columns:1fr 1.4fr}.nls-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.nls-wrap{width:88%}.nls-single .nls-event{padding-top:38px}.nls-hero{grid-template-columns:1fr;gap:28px}.nls-single h1{font-size:42px}.nls-single .nls-kind{font-size:25px}.nls-hero-image img{max-height:none}.nls-programme{margin-top:35px}.nls-grid{grid-template-columns:1fr;gap:25px}.nls-calendar .nls-card h2{font-size:26px!important}.nls-form-row{grid-template-columns:1fr;gap:0}.nls-booking{margin-top:35px}}

/* Dynamic Divi modules use the card reveal rather than saved-page waypoints. */
.nls-calendar .nls-card .et-waypoint,.nls-calendar .nls-card .et_animated{opacity:1!important;visibility:visible!important;animation:none!important;transform:none!important}
