/* PNW PASSPORT / WEEKEND FIELD GUIDE — Calendar release 03 */
.calendar-hero{background:linear-gradient(115deg,#102624,#18504F);border-bottom:7px solid var(--citron);isolation:isolate;position:relative;overflow:hidden}
.calendar-hero:before{opacity:.22;background:url('assets/pnw-field-shadows.svg') right center/cover no-repeat}
.calendar-hero:after{content:"THE GOOD STUFF'S OUT THERE ✳";position:absolute;right:3.6%;top:17%;border:2px dashed var(--citron);border-radius:50%;width:130px;height:130px;display:grid;place-items:center;text-align:center;font:800 1rem/1.25 var(--display-font);color:var(--citron);transform:rotate(12deg);padding:14px;box-sizing:border-box;pointer-events:none}
.calendar-hero .page-title{font-family:var(--display-font);font-weight:800;letter-spacing:-.069em;font-size:clamp(3.1rem,6.3vw,6.6rem);line-height:.94;max-width:11.5ch}
.calendar-hero .page-title em{color:var(--poppy);font-family:var(--marker);font-weight:400;font-style:normal;font-size:.68em;letter-spacing:-.045em}
.calendar-hero .cal-intro p{color:#F7F0DF}
.calendar-hero .cal-hero-actions .button.light{background:var(--citron);color:var(--spruce);border-color:var(--citron);box-shadow:5px 5px 0 var(--poppy)}
.calendar-hero .cal-text-link{color:var(--oyster);border-color:var(--citron);font-weight:800}
.cal-fortune-zone{position:relative;overflow:hidden;padding:clamp(48px,7vw,85px) 0 65px;background:var(--citron);border-block:6px solid var(--spruce)}
.cal-fortune-zone:before{content:"";position:absolute;inset:0;opacity:.085;background-image:url('assets/pnw-field-shadows.svg');background-size:cover;background-position:right top;pointer-events:none}
.cal-fortune-layout{position:relative;display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr);gap:clamp(35px,5.4vw,86px);align-items:center}
.cal-fortune-overline{font:800 .72rem/1.5 var(--display-font);letter-spacing:.11em;color:var(--spruce);margin-bottom:20px}
.cal-fortune-copy h2{max-width:11ch;font:800 clamp(3.1rem,5.4vw,5.4rem)/.96 var(--display-font);letter-spacing:-.069em;margin:0 0 18px;text-wrap:balance}
.cal-fortune-copy h2 span{display:block;color:var(--poppy);-webkit-text-stroke:1px var(--spruce);font-family:var(--marker);font-weight:400;font-size:.74em;letter-spacing:-.04em;transform:rotate(-2deg);line-height:1.06;margin:8px 0}
.cal-fortune-copy>p{font-size:1.03rem;line-height:1.65;max-width:53ch}
.cal-lucky-vibes{display:flex;flex-wrap:wrap;gap:8px;margin:27px 0 23px}
.cal-lucky-vibes button{cursor:pointer;min-height:42px;border:1.5px solid var(--spruce);background:var(--oyster);padding:9px 13px;color:var(--spruce);font:800 .77rem/1.2 var(--display-font);box-shadow:2px 3px 0 var(--spruce)}
.cal-lucky-vibes button:hover,.cal-lucky-vibes button[aria-pressed=true]{background:var(--spruce);color:var(--citron);transform:translateY(-2px)}
.cal-lucky-go{display:flex;align-items:end;flex-wrap:wrap;gap:14px}
.cal-lucky-go label{display:grid;gap:6px;flex:1;min-width:190px;font:800 .7rem var(--display-font);text-transform:uppercase;letter-spacing:.08em}
.cal-lucky-go select{width:100%;min-height:51px;background:var(--oyster);border:2px solid var(--spruce);padding:10px 12px;color:var(--spruce);font:600 .9rem var(--sans);letter-spacing:0;text-transform:none}
#cal-lucky-button{cursor:pointer;min-height:51px;border:2px solid var(--spruce);background:var(--poppy);padding:11px 15px;color:var(--spruce);font:800 .82rem var(--display-font);box-shadow:4px 5px 0 var(--spruce)}
#cal-lucky-button:hover{transform:translate(-2px,-2px);box-shadow:6px 7px 0 var(--spruce)}
.cal-fortune-copy .cal-lucky-fine{font-size:.75rem;line-height:1.5;max-width:50ch;margin:23px 0 0}
.cal-ticket-stage{position:relative;min-width:0;padding:20px 16px 24px}
.cal-ticket-stage:before{content:"";position:absolute;inset:30px -9px 8px 30px;background:var(--poppy);transform:rotate(3deg);border:3px solid var(--spruce)}
.cal-ticket-paper{position:relative;min-height:435px;padding:clamp(23px,3.5vw,39px);background:var(--oyster);border:3px solid var(--spruce);box-shadow:6px 8px 0 var(--spruce);color:var(--spruce);transform:rotate(-2deg);display:flex;flex-direction:column;gap:8px}
.cal-ticket-paper:after{content:"";position:absolute;left:0;right:0;bottom:52px;border-bottom:3px dashed #9A9285;pointer-events:none}
.cal-ticket-heading{display:flex;justify-content:space-between;gap:10px;align-items:center;font:800 .61rem var(--display-font);letter-spacing:.08em;border-bottom:2px solid var(--spruce);padding-bottom:13px}
.cal-ticket-symbol{font:400 clamp(6rem,12vw,9rem)/1 var(--marker);color:var(--poppy);text-align:center;margin-top:25px}
.cal-ticket-paper h3{font:700 clamp(1.9rem,2.4vw,2.75rem)/1.07 var(--serif);letter-spacing:-.04em;margin:14px 0 8px}
.cal-ticket-paper p{font-size:.94rem;line-height:1.55;margin:0 0 24px}
.cal-ticket-issue{font:800 .69rem var(--display-font);margin:20px 0 4px;color:#AB513D;letter-spacing:.08em}
.cal-ticket-bigdate{font:400 clamp(2.7rem,4vw,4.4rem)/.95 var(--marker);color:var(--tide)}
.cal-ticket-info{display:grid;gap:8px;border-top:2px solid var(--spruce);padding-top:15px;margin:10px 0 21px}
.cal-ticket-info div{display:grid;grid-template-columns:61px minmax(0,1fr);gap:8px}
.cal-ticket-info dt{font:800 .65rem var(--display-font);letter-spacing:.07em;padding-top:3px}
.cal-ticket-info dd{margin:0;font:600 .83rem/1.5 var(--sans);min-width:0;overflow-wrap:anywhere}
.cal-ticket-action-row{display:flex;flex-wrap:wrap;gap:8px;margin:5px 0 42px}
.cal-ticket-action-row a,.cal-ticket-action-row button,.cal-ticket-reset{cursor:pointer;font:800 .69rem/1.2 var(--display-font);text-transform:uppercase;text-decoration:none;padding:10px 12px;border:1.5px solid var(--spruce);color:var(--spruce);background:transparent}
.cal-ticket-action-row a{background:var(--citron);box-shadow:3px 3px 0 var(--spruce)}
.cal-ticket-action-row a:hover,.cal-ticket-action-row button:hover{background:var(--poppy)}
.cal-ticket-action-row button[aria-pressed=true]{background:var(--orchid);color:white}
.cal-ticket-paper .cal-ticket-feedback{font-size:.8rem;color:var(--tide);margin:0 0 24px}
.cal-ticket-bottom{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font:800 .59rem var(--display-font);letter-spacing:.08em;margin-top:auto;padding-top:17px}
.cal-featured{background:var(--oyster);position:relative;overflow:hidden}
.cal-featured:before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 92% 3%,rgba(255,107,74,.1),transparent 35%);pointer-events:none}
.cal-featured>.wrap{position:relative}
.cal-featured .section-head h2{font-family:var(--marker);font-size:clamp(2.4rem,4.7vw,4.4rem);letter-spacing:-.035em;transform:rotate(-1deg)}
.cal-featured-grid{background:transparent;border:0;gap:18px;align-items:stretch}
.cal-feature-card{position:relative;min-width:0;min-height:315px;border:2px solid var(--spruce);box-shadow:5px 6px 0 var(--spruce);background:#F1E7D3;padding:26px 21px 24px;transform:rotate(-.6deg);transition:transform .18s}
.cal-feature-card:nth-child(2){background:#D7E9DF;transform:rotate(.5deg)}
.cal-feature-card:nth-child(3){background:#F7D5C7;transform:rotate(-.2deg)}
.cal-feature-card:hover{transform:translateY(-3px) rotate(0)}
.cal-feature-card:before{content:"✳";position:absolute;right:13px;top:9px;font:400 2.2rem var(--marker);color:var(--poppy);opacity:.65}
.cal-feature-card h3{font-size:clamp(1.44rem,2.15vw,2.1rem);line-height:1.12;margin:15px 0}
.cal-feature-card .cal-event-date{background:var(--spruce);color:var(--citron);padding:7px 9px;align-self:start}
.cal-feature-card .cal-event-meta{margin-top:18px}
.cal-feature-card .cal-event-actions{margin-top:auto;padding-top:17px}
.cal-feature-card .cal-event-link{margin-top:0}
.cal-feature-card p{font-size:.87rem;line-height:1.55}
.cal-quick-moods{display:flex;align-items:center;flex-wrap:wrap;gap:9px;border-bottom:2px dashed var(--spruce);padding:15px 0 18px;margin:5px 0 15px}
.cal-quick-label{font:800 .69rem var(--display-font);letter-spacing:.09em;margin-right:6px}
.cal-quick-moods button{background:var(--oyster);color:var(--spruce);cursor:pointer;border:1.5px solid var(--spruce);padding:9px 12px;font:800 .73rem/1.2 var(--display-font)}
.cal-quick-moods button[aria-pressed=true],.cal-quick-moods button:hover{background:var(--citron);box-shadow:2px 3px 0 var(--spruce)}
.cal-browser{background:#F1EADD}
.cal-browser .section-head h2{font:700 clamp(2.45rem,4.5vw,4.4rem)/1.02 var(--serif);letter-spacing:-.055em}
.cal-toolbar{border-block:0;padding:10px 0 16px;margin:0 0 30px}
.cal-tab{border:2px solid var(--spruce);font:800 .74rem var(--display-font);background:var(--oyster);padding:11px 15px}
.cal-tab.active{background:var(--spruce);color:var(--citron)}
.cal-filters label{color:var(--spruce)}
.cal-filters select{border:2px solid var(--spruce);background-color:var(--oyster)}
.cal-month-panel{position:sticky;top:35px;background:var(--oyster);border:2px solid var(--spruce);box-shadow:6px 7px 0 var(--tide);padding:21px}
.cal-month-top h3{font:700 1.5rem var(--serif);letter-spacing:-.04em}
.cal-month-arrow{border:2px solid var(--spruce);background:var(--citron);width:37px;height:37px}
.cal-month-grid,.cal-weekdays{gap:4px}
.cal-cell{height:45px;background:#E7E0CF;font-weight:700;border:1.5px solid transparent}
.cal-cell.has-events{background:#E6ECBD}
.cal-cell.has-events .cal-dot{width:6px;height:6px;background:var(--poppy)}
.cal-cell:hover{border-color:var(--spruce)}
.cal-cell.selected{color:var(--oyster);background:var(--spruce)}
.cal-cell.selected .cal-dot{background:var(--citron)}
.cal-cell.is-today{outline:2px solid var(--poppy);outline-offset:-2px}
.cal-cell:focus-visible{outline:3px solid var(--poppy);outline-offset:1px}
.cal-results-top{border-bottom:2px solid var(--spruce);padding-bottom:16px}
.cal-count{border:1px solid var(--spruce);padding:6px 9px;background:var(--citron);color:var(--spruce)}
.cal-event-list{display:grid;gap:18px}
.cal-event-card{background:var(--oyster);padding:22px;border:1.5px solid var(--spruce);box-shadow:4px 4px 0 rgba(23,44,43,.88);grid-template-columns:112px minmax(0,1fr);gap:20px;position:relative;min-width:0}
.cal-event-card .cal-event-date{padding:8px 7px;align-self:start;text-align:center;background:var(--citron);font:800 .8rem var(--display-font);letter-spacing:0}
.cal-event-card h3{font-size:clamp(1.43rem,2.1vw,2rem);line-height:1.14;letter-spacing:-.03em;margin:8px 0 12px}
.cal-event-card .cal-event-meta{display:flex;flex-wrap:wrap;gap:10px 18px}
.cal-event-card[data-event-topic="weird"]{box-shadow:4px 4px 0 var(--orchid)}
.cal-event-card[data-event-topic="food"]{box-shadow:4px 4px 0 var(--poppy)}
.cal-event-card[data-event-topic="culture"]{box-shadow:4px 4px 0 var(--tide)}
.cal-event-card .cal-event-kicker{color:var(--tide)}
.cal-event-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px;margin-top:15px}
.cal-event-actions .cal-event-link{margin-top:0;font-size:.77rem}
.cal-save-event{cursor:pointer;border:1.5px solid var(--spruce);background:transparent;color:var(--spruce);padding:8px 11px;font:800 .68rem var(--display-font)}
.cal-save-event:hover,.cal-save-event[aria-pressed=true]{background:var(--orchid);color:white}
.cal-event-card:focus-within{outline:2px solid var(--tide);outline-offset:2px}
.cal-submissions{background:var(--spruce);border-top:6px solid var(--citron)}
@media(max-width:1080px){.calendar-hero:after{display:none}.cal-fortune-layout{grid-template-columns:1fr;gap:34px}.cal-ticket-stage{max-width:680px;width:100%;margin:auto}.cal-fortune-copy h2{max-width:14ch}.cal-featured-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cal-content{grid-template-columns:1fr}.cal-month-panel{position:static}}
@media(max-width:710px){.cal-fortune-zone{padding:36px 0 44px}.cal-fortune-copy h2{font-size:clamp(2.8rem,10.5vw,4.4rem)}.cal-fortune-copy h2 span{font-size:.74em}.cal-lucky-vibes button{font-size:.72rem}.cal-ticket-stage{padding:17px 10px 17px 1px}.cal-ticket-paper{padding:22px 19px;min-height:350px;transform:rotate(-.65deg)}.cal-ticket-paper h3{font-size:2rem}.cal-ticket-stage:before{inset:22px -5px 4px 15px}.cal-ticket-info div{grid-template-columns:55px 1fr}.cal-featured-grid{grid-template-columns:1fr;gap:16px}.cal-feature-card{min-height:0;transform:none!important}.cal-quick-moods{gap:7px}.cal-quick-label{width:100%}.cal-tab{padding:10px 11px;font-size:.7rem}.cal-event-card{grid-template-columns:1fr;gap:10px;padding:19px}.cal-event-card .cal-event-date{text-align:left;width:max-content}.cal-event-card h3{font-size:1.7rem}.cal-month-grid .cal-cell{height:42px}}
@media(max-width:410px){.cal-ticket-action-row a,.cal-ticket-action-row button{flex:1 1 140px;text-align:center}.cal-fortune-copy h2{font-size:2.75rem}.cal-filters label{min-width:115px}.cal-lucky-go label{min-width:0;width:100%}.cal-lucky-go button{width:100%}}
@media(prefers-reduced-motion:reduce){.cal-feature-card,.cal-lucky-vibes button,#cal-lucky-button{transition:none!important;transform:none!important}}