/* ---- Discovery ---- */
.discovery-section{background:#fff}
.compact-heading{padding-bottom:32px}
.discovery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.discovery-card{min-height:220px;padding:28px;border:1px solid #e8e8e8;border-radius:22px;background:#fafafa;display:flex;flex-direction:column;transition:.2s ease}
.discovery-card:hover{transform:translateY(-4px);box-shadow:0 18px 50px rgba(0,0,0,.08)}
.discovery-card>span{font-size:11px;font-weight:900;letter-spacing:.12em;color:var(--pink)}
.discovery-card strong{font-size:26px;margin-top:24px}
.discovery-card p{margin:12px 0 20px;color:#777;line-height:1.7}
.discovery-card b{margin-top:auto;font-size:13px}
.discovery-card.accent{background:#151515;color:#fff;border-color:#151515}
.discovery-card.accent p{color:#c9c9c9}

/* ---- Area / map ---- */
.area-section{background:#171717;color:#fff}
.light-heading .section-label{color:var(--mint)}
.light-heading>p{color:#aaa}
.mobile-map-tabs{display:none}
.area-grid{display:grid;grid-template-columns:46% 54%;height:560px;border:1px solid #4b4b4b}
.venue-list{overflow:auto;background:#202020}
.venue-item{width:100%;min-height:140px;border:0;border-bottom:1px solid #414141;background:#202020;color:#fff;text-align:left;display:grid;grid-template-columns:56px 70px 1fr 24px;gap:16px;align-items:center;padding:18px 22px;cursor:pointer;transition:.25s}
.venue-item:hover,.venue-item.active{background:#fff;color:#111}
.venue-date{font-size:11px;color:#999;display:flex;flex-direction:column}
.venue-date em{font-size:27px;font-style:normal;font-weight:850;color:inherit;line-height:1}
.venue-thumb{width:70px;height:96px;overflow:hidden;background:#444}
.venue-thumb img{width:100%;height:100%;object-fit:cover}
.venue-copy{display:flex;flex-direction:column;min-width:0}
.venue-copy i{font-style:normal;color:var(--mint);font-size:11px;font-weight:750;margin-bottom:6px}
.venue-item.active .venue-copy i,.venue-item:hover .venue-copy i{color:var(--pink)}
.venue-copy strong{font-size:15px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.venue-copy small{font-size:12px;color:#999;margin-top:8px}
.venue-arrow{font-size:18px}
.map-panel{position:relative;overflow:hidden;background-color:#e7e8de;background-image:linear-gradient(28deg,transparent 47%,rgba(255,255,255,.75) 48%,rgba(255,255,255,.75) 51%,transparent 52%),linear-gradient(-15deg,transparent 48%,rgba(255,255,255,.55) 49%,rgba(255,255,255,.55) 52%,transparent 53%);background-size:110px 85px,160px 110px;color:#111}
.map-panel:before{content:"";position:absolute;width:62%;height:66%;top:16%;left:18%;background:#cad0b6;clip-path:polygon(44% 0,72% 9%,100% 35%,81% 67%,91% 90%,55% 100%,28% 87%,0 65%,11% 32%)}
.map-brand{position:absolute;top:22px;left:26px;font-size:13px;font-weight:900;letter-spacing:1.5px}
.map-brand span{display:block;font-size:8px;font-weight:600}
.district-label{position:absolute;font-size:11px;font-weight:700;color:#7b806b;z-index:1}
.dl1{left:43%;top:20%}.dl2{left:26%;top:42%}.dl3{left:47%;top:45%}.dl4{right:23%;top:35%}.dl5{right:22%;bottom:25%}.dl6{left:25%;bottom:20%}
.map-marker{position:absolute;z-index:4;border:0;background:none;cursor:pointer;display:flex;flex-direction:column;align-items:center}
.map-marker>span{width:36px;height:36px;border-radius:50% 50% 50% 0;background:#111;color:#fff;transform:rotate(-45deg);display:grid;place-items:center;font-weight:800;box-shadow:0 4px 13px rgba(0,0,0,.25)}
.map-marker>span b{transform:rotate(45deg)}
.map-marker small{background:#fff;padding:5px 8px;margin-top:5px;box-shadow:0 3px 10px rgba(0,0,0,.12);white-space:nowrap;font-size:10px;font-weight:700}
.map-marker.active>span{background:var(--pink);transform:rotate(-45deg) scale(1.15)}
.marker-1{left:48%;top:32%}.marker-2{left:28%;top:60%}.marker-3{left:60%;top:50%}.marker-4{right:20%;top:28%}
.map-info{position:absolute;left:24px;bottom:22px;z-index:3;width:min(300px,calc(100% - 48px));padding:18px;background:#111;color:#fff}
.map-info>span{font-size:10px;background:var(--mint);color:#111;padding:5px 7px;font-weight:800}
.map-info h3{font-size:16px;margin:13px 0 6px}
.map-info p{font-size:12px;margin-bottom:5px;color:#ccc}
.map-info small{font-size:11px;color:#888}

/* ---- Calendar ---- */
.calendar-section{background:#f7f7f4}
.calendar-strip{display:grid;grid-template-columns:repeat(8,1fr);border-top:1px solid #bbb;border-bottom:1px solid #bbb;overflow:auto}
.calendar-strip button{min-width:100px;height:112px;border:0;border-right:1px solid #d7d7d2;background:transparent;display:grid;place-items:center;align-content:center;gap:6px;position:relative;cursor:pointer}
.calendar-strip button:last-child{border-right:0}
.calendar-strip button span{font-size:10px;color:#888}
.calendar-strip button strong{font-size:26px}
.calendar-strip button i{font-size:9px;font-style:normal;width:18px;height:18px;border-radius:50%;background:var(--pink);color:#fff;display:grid;place-items:center}
.calendar-strip button.active{background:#111;color:#fff}
.calendar-strip button.active span{color:#aaa}
.calendar-result{display:grid;grid-template-columns:110px 1fr auto;align-items:center;min-height:150px;border-bottom:1px solid #bbb;padding:22px 24px;gap:16px}
.result-date{display:flex;align-items:center;gap:10px}
.result-date span{font-size:10px;writing-mode:vertical-rl;letter-spacing:2px}
.result-date strong{font-size:46px;letter-spacing:-1px}
.result-copy>span{font-size:11px;color:var(--pink);font-weight:750}
.result-copy h3{font-size:20px;margin:8px 0}
.result-copy p{font-size:13px;color:#777;margin:0}
.calendar-result>a{font-size:13px;font-weight:700;border:1px solid;padding:13px 16px;white-space:nowrap}

/* ---- Event rail ---- */
.event-rail{background:#151515;color:#fff}
.event-rail-inner{min-height:120px;display:grid;grid-template-columns:1fr 1.35fr;align-items:center;gap:44px;padding:26px 0}
.event-rail-title span{display:block;color:var(--mint);font-size:11px;font-weight:800;letter-spacing:1.8px;margin-bottom:10px}
.event-rail-title strong{font-size:19px}
.event-rail-links{display:grid;grid-template-columns:1fr 1fr;border-left:1px solid #4a4a4a}
.event-rail-links button{appearance:none;width:100%;min-height:80px;padding:16px 24px;border:0;border-right:1px solid #4a4a4a;background:transparent;color:inherit;text-align:left;display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:10px;cursor:pointer}
.event-rail-links i{font-style:normal;color:#777;font-size:11px}
.event-rail-links b{font-size:14px}
.event-rail-links span{font-size:12px;color:#aaa}
.event-rail-links button:hover{background:var(--pink)}
.event-rail-links button:hover span,.event-rail-links button:hover i{color:#fff}

/* ---- Application ---- */
.application-section{background:#eef6ff}
.application-layout{display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(40px,6vw,80px);align-items:start}
.application-intro{position:sticky;top:100px}
.application-intro h2{font-size:clamp(34px,4vw,52px);line-height:1.1;letter-spacing:-.03em;margin:14px 0 20px}
.application-intro>p{max-width:520px;color:#666;font-size:15px;line-height:1.75}
.selected-show{display:grid;grid-template-columns:90px 1fr;gap:16px;align-items:center;background:#fff;margin:26px 0 22px;padding:14px}
.selected-show img{width:90px;height:126px;object-fit:contain;background:#f2f2f2}
.selected-show div{display:flex;flex-direction:column}
.selected-show span{font-size:11px;color:var(--pink);font-weight:800}
.selected-show strong{font-size:16px;line-height:1.4;margin:8px 0}
.selected-show small{color:#777}
.application-intro ul{list-style:none;padding:0;margin:0;border-top:1px solid #c9dbe9}
.application-intro li{display:grid;grid-template-columns:32px 1fr;border-bottom:1px solid #c9dbe9;padding:12px 0;font-size:13px}
.application-intro li b{color:var(--pink);font-size:11px}
.application-choices{background:#fff;padding:20px;border-top:5px solid var(--pink);box-shadow:0 22px 60px rgba(83,26,53,.09);display:grid;gap:12px}
.application-choice{display:grid;grid-template-columns:70px 1fr auto;gap:14px;align-items:center;padding:11px;border:1px solid #ececec;background:#fff}
.application-choice img{width:70px;height:96px;object-fit:contain;background:#f2f2f2}
.application-choice>div{display:flex;flex-direction:column;min-width:0}
.application-choice>div span{font-size:10px;color:var(--pink);font-weight:900}
.application-choice>div strong{font-size:14px;line-height:1.4;margin:6px 0}
.application-choice>div small{font-size:11px;color:#777;line-height:1.5}
.application-choice-footer{padding-top:6px;border-top:1px solid #eee;display:flex;align-items:center;justify-content:space-between;gap:16px}
.application-choice-footer p{font-size:12px;color:#777;line-height:1.6}
.event-cta{appearance:none;border:0;border-radius:12px;padding:12px 16px;font-weight:900;font-size:13px;cursor:pointer;white-space:nowrap}
.event-cta.advance{background:var(--pink);color:#fff}
.event-cta.advance:hover{background:#c91f73}
.event-cta.review{background:#fff3df;color:#9b5600;border:1px solid #ffc873}
.event-cta.review:hover{background:#f8e6c7}

/* ---- Reviews ---- */
.review-section{background:#f6f6f2}
.review-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.review-card{background:#fff}
.review-image{height:320px;position:relative;overflow:hidden;background:#ddd}
.review-image img{width:100%;height:100%;object-fit:cover}
.review-body{padding:20px}
.review-body h3{font-size:17px;line-height:1.4;margin-bottom:14px;min-height:2.8em}
.review-meta{border-top:1px solid #ddd;padding-top:10px;display:flex;justify-content:flex-start}
.review-meta b{font-size:13px;color:#555}
.review-empty{padding:60px 20px;text-align:center;background:#fff;border:1px dashed #ddd;color:#999;font-size:14px;line-height:1.8}
.review-event-panel{margin-top:60px;background:#181818;color:#fff;display:grid;grid-template-columns:.85fr 1.15fr;gap:50px;padding:44px}
.review-event-copy{padding:12px}
.review-event-copy>span{font-size:11px;color:var(--mint);font-weight:800;letter-spacing:1.6px}
.review-event-copy h3{font-size:32px;letter-spacing:-.02em;margin:12px 0}
.review-event-copy>p{color:#aaa;line-height:1.7}
.review-notice{margin-top:32px;padding-top:18px;border-top:1px solid #444;display:flex;flex-direction:column;gap:8px}
.review-notice b{font-size:12px;color:var(--mint)}
.review-notice span{font-size:12px;color:#aaa}
.review-entry-cta{background:#fff;color:#151515;padding:30px;align-self:stretch;display:flex;flex-direction:column;justify-content:center}
.review-entry-cta>span{font-size:10px;color:#d97706;font-weight:900;letter-spacing:.15em}
.review-entry-cta h4{font-size:24px;letter-spacing:-.02em;margin:9px 0}
.review-entry-cta p{font-size:13px;line-height:1.7;color:#666;margin-bottom:18px}
.review-entry-cta .event-cta{align-self:flex-start}
.review-entry-cta small{display:block;margin-top:12px;color:#999}

/* ---- Social ---- */
.instagram-section{background:#fff}
.social-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:30px;flex-wrap:wrap;gap:12px}
.social-heading>div>span{font-size:11px;color:var(--pink);font-weight:800;letter-spacing:1.5px}
.social-heading h2{font-size:clamp(32px,4vw,52px);letter-spacing:-.03em;margin:4px 0}
.social-heading p{color:#777;margin:0}
.social-heading>a{font-size:13px;font-weight:750;border-bottom:1px solid;padding-bottom:8px;white-space:nowrap}
.instagram-track{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.instagram-track a{aspect-ratio:1;position:relative;overflow:hidden;background:#eee}
.instagram-track img{width:100%;height:100%;object-fit:cover}
.instagram-track a>span{position:absolute;inset:auto 10px 10px;background:#fff;padding:6px 9px;font-size:10px;font-weight:750}
.social-placeholder-note{margin-top:14px;color:#999;font-size:11px}
.youtube-section{background:var(--mint)}
.youtube-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.youtube-grid>a{display:flex;flex-direction:column}
.video-thumb{aspect-ratio:16/9;position:relative;overflow:hidden;background:#222}
.video-thumb img{width:100%;height:100%;object-fit:cover}
.video-thumb i{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:48px;height:48px;border-radius:50%;background:#fff;display:grid;place-items:center;font-style:normal;padding-left:3px;box-shadow:0 8px 25px rgba(0,0,0,.2)}
.youtube-grid strong{font-size:14px;line-height:1.45;margin-top:13px}

/* ---- Event modal ---- */
.event-modal{position:fixed;inset:0;z-index:10000;display:none}
.event-modal.open{display:block}
.event-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.62);backdrop-filter:blur(3px)}
.event-modal-dialog{position:relative;width:min(600px,calc(100% - 32px));max-height:calc(100vh - 48px);margin:24px auto;background:#fff;border-radius:22px;box-shadow:0 30px 90px rgba(0,0,0,.35);overflow:hidden;display:flex;flex-direction:column}
.event-modal-header{padding:24px 26px 18px;border-bottom:1px solid #eee;position:relative}
.event-modal-header>span{font-size:10px;font-weight:900;letter-spacing:.15em}
.event-modal[data-mode="advance"] .event-modal-header>span{color:var(--pink)}
.event-modal[data-mode="review"] .event-modal-header>span{color:#d97706}
.event-modal-header h2{font-size:26px;letter-spacing:-.02em;margin:7px 40px 0 0}
.event-modal-header p{font-size:13px;color:#777;line-height:1.6;margin-top:8px}
.event-modal-close{position:absolute;right:18px;top:18px;width:38px;height:38px;border:0;border-radius:50%;background:#f2f2f2;font-size:19px;cursor:pointer}
.event-modal-body{padding:22px 26px 28px;overflow-y:auto}
.modal-kind-note{padding:12px 14px;border-radius:10px;font-size:12px;line-height:1.6;margin-bottom:16px}
.event-modal[data-mode="advance"] .modal-kind-note{background:#fff0f6;color:#8b3a60}
.event-modal[data-mode="review"] .modal-kind-note{background:#fff8ed;color:#80551c}
.modal-form{display:grid;gap:15px}
.modal-form label>span{display:block;font-size:12px;font-weight:900;margin-bottom:7px}
.modal-form input,.modal-form select,.modal-form textarea{width:100%;border:1px solid #d8d8d8;border-radius:10px;padding:12px 13px;background:#fff;font:inherit}
.modal-form textarea{min-height:100px;resize:vertical;line-height:1.6}
.modal-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.modal-file-note{font-size:11px;color:#8a5a6f;line-height:1.5;margin-top:-6px}
.modal-check{display:flex!important;gap:8px;align-items:flex-start}
.modal-check input{width:16px;height:16px;margin-top:1px;flex:0 0 auto}
.modal-check span{font-size:12px!important;font-weight:500!important;color:#666;line-height:1.5;margin:0!important}
.modal-submit{border:0;border-radius:12px;padding:15px 18px;color:#fff;font-weight:900;cursor:pointer;margin-top:2px;width:100%}
.event-modal[data-mode="advance"] .modal-submit{background:var(--pink)}
.event-modal[data-mode="review"] .modal-submit{background:#d97706}
.modal-status{min-height:18px;font-size:12px;font-weight:800}
.event-modal[data-mode="advance"] .modal-status{color:#c91f73}
.event-modal[data-mode="review"] .modal-status{color:#a95d00}
body.modal-open{overflow:hidden}

@media(max-width:900px){
  .discovery-grid{grid-template-columns:1fr}
  .area-grid{grid-template-columns:1fr;height:auto}
  .venue-list{height:420px}
  .map-panel{height:320px}
  .map-marker>span{width:40px;height:40px}
  .application-layout{grid-template-columns:1fr}
  .application-intro{position:static}
  .review-cards{grid-template-columns:1fr}
  .review-event-panel{grid-template-columns:1fr}
  .instagram-track{grid-template-columns:repeat(3,1fr)}
  .youtube-grid{grid-template-columns:repeat(2,1fr)}
  .event-rail-inner{grid-template-columns:1fr;gap:20px}
  .event-rail-links button{min-height:64px}
}
@media(max-width:560px){
  .venue-item{grid-template-columns:48px 60px 1fr;gap:10px;padding:14px 16px;min-height:auto}
  .venue-arrow{display:none}
  .venue-thumb{width:60px;height:82px}
  .venue-copy strong{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .map-panel{height:260px}
  .map-info{width:calc(100% - 32px);left:16px;bottom:16px;padding:14px}
  .calendar-strip button{min-width:84px;height:100px}
  .calendar-result{grid-template-columns:1fr;text-align:left}
  .calendar-result>a{width:max-content}
  .application-choice{grid-template-columns:1fr;text-align:center}
  .application-choice img{margin:0 auto}
  .instagram-track{grid-template-columns:repeat(2,1fr)}
  .youtube-grid{grid-template-columns:1fr}
  .event-modal-dialog{width:100%;height:100%;max-height:none;margin:0;border-radius:0}
  .modal-row{grid-template-columns:1fr}
  .event-rail-links button{grid-template-columns:24px 1fr;grid-template-rows:auto auto}
  .discovery-card{min-height:auto}
}
