/* PNW PASSPORT / Pocket-size, expandable event cards — Nov. 2026
   Three-four across desktop, two on tablet, one on phone.
   Readers open each card for logistics, pet policies, sources and saving. */

/* Put the calendar in its own panel. Give the events their own compact shelf. */
.cal-browser #cal-results{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:20px;
  align-items:start;
  width:100%;
}
.cal-featured .cal-featured-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  align-items:start;
}
.cal-browser #cal-results>.cal-mini-card,
.cal-featured .cal-featured-grid>.cal-mini-card,
.cal-ticket-card.cal-mini-card{
  display:block!important;
  min-width:0!important;
  width:auto!important;
  max-width:none!important;
  height:auto!important;
  min-height:0!important;
  align-self:start!important;
  margin:0!important;
  padding:0!important;
  overflow:visible;
  border:2px solid var(--spruce)!important;
  background:#FFF9ED!important;
  box-shadow:4px 5px 0 var(--spruce)!important;
  transform:none!important;
  transition:box-shadow .18s, transform .18s;
}
.cal-ticket-card.cal-mini-card:hover{
  transform:translateY(-2px)!important;
  box-shadow:5px 7px 0 var(--spruce)!important;
}
.cal-ticket-card.cal-mini-card:before,
.cal-ticket-card.cal-mini-card:after{content:none!important;display:none!important}
.cal-mini-header{
  display:flex;
  gap:6px;
  align-items:center;
  justify-content:space-between;
  min-height:36px;
  padding:8px 11px;
  border-bottom:2px solid var(--spruce);
  background:var(--ticket,#DDEB54);
  color:var(--ticket-ink,#172C2B);
  font:800 .6rem/1.2 var(--display-font);
  letter-spacing:.035em;
}
.cal-mini-category{min-width:0;text-transform:uppercase}
.cal-mini-date{
  flex:0 0 auto;
  font-size:.72rem;
  font-weight:800;
  white-space:nowrap;
  text-transform:uppercase;
}
.cal-mini-disclosure{width:100%;display:block;min-width:0}
.cal-mini-summary{
  list-style:none;
  display:block;
  position:relative;
  cursor:pointer;
  min-height:0;
  padding:12px 14px 13px;
  color:var(--spruce);
}
.cal-mini-summary::-webkit-details-marker{display:none}
.cal-mini-summary::marker{content:""}
.cal-mini-summary:focus-visible{outline:3px solid var(--tide);outline-offset:4px}
.cal-mini-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:35px;
  height:35px;
  margin-bottom:8px;
  border:1.5px solid var(--spruce);
  background:var(--ticket,#DDEB54);
  color:var(--ticket-ink,#172C2B);
  border-radius:50%;
  font:700 1.25rem/1 var(--display-font);
}
.cal-ticket-card.cal-mini-card h3.cal-mini-title{
  display:-webkit-box;
  -webkit-line-clamp:3;
  line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
  margin:0 0 7px!important;
  min-height:0!important;
  font:700 clamp(1.07rem,1.33vw,1.33rem)/1.16 var(--serif)!important;
  letter-spacing:-.035em!important;
  color:var(--spruce)!important;
}
.cal-mini-place{
  display:block;
  font-size:.72rem;
  line-height:1.35;
  font-weight:750;
  color:#345B57;
  margin-bottom:9px;
}
.cal-mini-teaser{
  display:-webkit-box;
  -webkit-line-clamp:2;
  line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  margin:0 0 10px;
  color:#3F5656;
  font-size:.77rem;
  line-height:1.4;
}
.cal-mini-bottom{
  display:flex;
  align-items:end;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:7px;
  padding-top:9px;
  border-top:1px dashed rgba(23,44,43,.3);
}
.cal-mini-chips{display:flex;gap:5px;flex-wrap:wrap}
.cal-mini-chips>span{
  background:#E8EBD1;
  color:var(--spruce);
  font:750 .58rem/1.2 var(--display-font);
  padding:5px 6px;
  border:1px solid rgba(23,44,43,.17);
}
.cal-mini-expand{
  margin-left:auto;
  font:800 .64rem/1.2 var(--display-font);
  color:#116362;
  text-transform:uppercase;
  white-space:nowrap;
}
.cal-mini-expand span{display:inline-block;transition:transform .16s}
.cal-mini-disclosure[open] .cal-mini-expand span{transform:rotate(180deg)}
.cal-mini-disclosure[open] .cal-mini-summary{background:#F7F0DF}
.cal-mini-expanded{
  display:block;
  border-top:2px dashed var(--spruce);
  padding:15px 14px 18px;
  background:#FFFAF1;
}
.cal-mini-why{margin:0 0 16px}
.cal-mini-why>strong{display:block;margin-bottom:5px;font:800 .64rem var(--display-font);color:#B24A35;letter-spacing:.06em}
.cal-mini-why p{margin:0;color:var(--spruce);font-size:.85rem;line-height:1.52}
.cal-mini-expanded .cal-best-for{padding:9px;margin:10px 0}
.cal-mini-expanded .cal-best-for-tags span{font-size:.63rem}
.cal-mini-expanded .cal-event-tags{margin:9px 0 14px}
.cal-mini-expanded .cal-event-tags span{font-size:.65rem}
.cal-mini-facts{display:grid;border-top:1px solid rgba(23,44,43,.32)}
.cal-mini-facts>div{
  display:grid;
  grid-template-columns:54px minmax(0,1fr);
  gap:8px;
  padding:8px 0;
  border-bottom:1px dotted rgba(23,44,43,.28);
}
.cal-mini-facts>div span{font:800 .59rem/1.2 var(--display-font);color:#37706C}
.cal-mini-facts>div strong{font-size:.73rem;font-weight:700;line-height:1.5;overflow-wrap:anywhere}
.cal-mini-expanded .cal-important-note{margin:13px 0 0;padding:10px;font-size:.75rem}
.cal-mini-expanded .cal-pet-alert{margin-top:11px;font-size:.74rem}
.cal-mini-expanded .cal-event-actions{margin-top:14px;gap:9px}
.cal-mini-expanded .cal-event-link,
.cal-mini-expanded .cal-save-event{font-size:.67rem;min-height:36px;padding:8px 9px}
.cal-mini-expanded .cal-directions{font-size:.67rem}
.cal-featured .cal-mini-card .cal-mini-summary{padding:14px}
.cal-featured .cal-mini-card .cal-mini-header{background:var(--ticket)}
.cal-featured .cal-mini-card h3.cal-mini-title{font-size:clamp(1.13rem,1.4vw,1.45rem)!important}
.cal-featured .cal-mini-card .cal-mini-teaser{font-size:.81rem}
.cal-browser .cal-results-top{margin-bottom:23px}
@media(max-width:1279px){
  .cal-browser #cal-results{grid-template-columns:repeat(3,minmax(0,1fr));gap:19px}
}
@media(max-width:960px){
  .cal-browser #cal-results{grid-template-columns:repeat(2,minmax(0,1fr));gap:19px}
  .cal-featured .cal-featured-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:670px){
  .cal-browser #cal-results,.cal-featured .cal-featured-grid{grid-template-columns:minmax(0,1fr);gap:15px}
  .cal-mini-summary{padding:13px 15px}
  .cal-ticket-card.cal-mini-card h3.cal-mini-title{font-size:1.25rem!important}
  .cal-mini-teaser{font-size:.84rem}
  .cal-mini-chips>span{font-size:.65rem}
}
@media(prefers-reduced-motion:reduce){
  .cal-ticket-card.cal-mini-card,.cal-mini-expand span{transition:none!important}
}