@keyframes pgRise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes pgFade{from{opacity:0}to{opacity:1}}
@keyframes pgSettle{from{transform:scale(1.07)}to{transform:scale(1)}}
@keyframes eventIn{from{opacity:0}to{opacity:1}}

.nav__link--active{border-bottom-color:#C9A86A}

.pg-hero{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:center;min-height:clamp(320px,46vh,440px);overflow:hidden;background:var(--sage-3);color:#fff}
.pg-hero__body{padding-top:48px;padding-bottom:64px}
.pg-hero__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 35%;z-index:-2}
.pg-hero__overlay{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(26,26,26,.25) 0%,rgba(46,74,58,.55) 55%,rgba(26,26,26,.78) 100%),radial-gradient(ellipse 60% 45% at 85% 90%,rgba(201,168,106,.14),transparent 60%)}
.crumbs{margin:0 0 14px;font-size:12px;letter-spacing:.1em;color:#E8C9A0}
.crumbs a:hover{color:#fff}
.pg-hero__title{font-family:'Cormorant Garamond',serif;font-size:clamp(36px,6.4vw,72px);font-weight:500;line-height:1;margin:0 0 16px;max-width:780px;text-wrap:balance;color:#fff}
.pg-hero__desc{font-family:'Cormorant Garamond',serif;font-size:clamp(16px,2.2vw,20px);line-height:1.65;color:rgba(255,255,255,.88);max-width:560px;margin:0}
.pg-hero__fade{position:absolute;left:0;right:0;bottom:0;height:56px;z-index:-1;background:linear-gradient(to bottom,transparent,var(--cream));pointer-events:none}

.pg-hero__bg{animation:pgSettle 1.8s cubic-bezier(.2,.6,.2,1) both}
.pg-hero__overlay{animation:pgFade .9s ease both}
.crumbs,.pg-hero__title,.pg-hero__desc{animation:pgRise .8s cubic-bezier(.2,.6,.2,1) both}
.crumbs{animation-delay:.10s}
.pg-hero__title{animation-delay:.22s}
.pg-hero__desc{animation-delay:.36s}
.pg-hero + *{animation:pgRise .9s .5s cubic-bezier(.2,.6,.2,1) both}

.pg-intro{background:var(--cream);padding:clamp(44px,7vw,88px) 0}
.pg-intro__grid{display:grid;grid-template-columns:5fr 6fr;gap:clamp(28px,5vw,72px);align-items:center}
.pg-intro__media{aspect-ratio:4/5;border-radius:var(--radius);overflow:hidden;background:var(--sage-3);box-shadow:var(--shadow)}
.pg-intro__media img{width:100%;height:100%;object-fit:cover}
.pg-intro__title{font-family:'Cormorant Garamond',serif;font-size:clamp(30px,4.2vw,46px);font-weight:500;line-height:1.08;color:var(--ink);margin:0 0 20px;text-wrap:balance}
.pg-intro__text p{font-family:'Cormorant Garamond',serif;font-size:clamp(17px,2vw,19px);line-height:1.75;color:var(--ink-2);margin:0 0 16px;max-width:520px}
.pg-intro__text .btn{margin-top:12px}

.tiles{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:300px;gap:14px}
.tile{position:relative;isolation:isolate;overflow:hidden;border-radius:var(--radius);background:var(--sage-3);box-shadow:var(--shadow);display:flex;align-items:flex-end}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .5s ease}
.tile::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgba(30,48,38,.88) 8%,rgba(30,48,38,.1) 60%)}
.tile:hover img{transform:scale(1.06)}
.tile__text{padding:22px;color:#fff}
.tile__text h3{font-family:'Cormorant Garamond',serif;font-size:clamp(21px,2.4vw,26px);font-weight:600;line-height:1.1;margin:0 0 6px}
.tile__text p{margin:0;font-size:13.5px;line-height:1.5;color:rgba(255,255,255,.82)}

.page-sec{padding:clamp(44px,7vw,72px) 0;background:var(--sage)}
.page-sec--cream{background:var(--cream)}
.page-sec--cream .divider-line::before,.page-sec--cream .divider-line::after{background:var(--cream)}
.page-note{text-align:center;margin:36px 0 0;font-family:'Cormorant Garamond',serif;font-size:17px;color:var(--muted)}

.schedule{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:14px}
.event{background:#fff;border:1px solid var(--line);border-radius:var(--radius);transition:box-shadow .2s,border-color .2s}
.event:hover{box-shadow:var(--shadow)}
.event[open]{border-color:#C9A86A;box-shadow:var(--shadow)}
.event__head{display:grid;grid-template-columns:84px 1fr auto 28px;gap:20px;align-items:center;padding:18px 22px;cursor:pointer;list-style:none;border-radius:var(--radius);min-height:44px}
.event__head::-webkit-details-marker{display:none}
.event__head:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.event__date{display:flex;flex-direction:column;align-items:center;gap:4px;padding-right:20px;border-right:1px solid var(--line)}
.event__day{font-family:'Cormorant Garamond',serif;font-size:34px;font-weight:600;line-height:1;color:var(--ink)}
.event__mon{font-size:11px;letter-spacing:.14em;color:var(--muted)}
.event__title{font-family:'Cormorant Garamond',serif;font-size:21px;font-weight:600;line-height:1.2;color:var(--ink);margin:0 0 4px}
.event__meta{margin:0;font-size:13.5px;color:var(--muted)}
.event__chevron{width:28px;height:28px;border-radius:50%;border:1px solid var(--line);position:relative;transition:transform .25s,background .2s,border-color .2s}
.event__chevron::before{content:"";position:absolute;left:50%;top:50%;width:7px;height:7px;border-right:1.8px solid var(--ink);border-bottom:1.8px solid var(--ink);transform:translate(-50%,-70%) rotate(45deg)}
.event__head:hover .event__chevron{background:var(--sage);border-color:var(--sage-3)}
.event[open] .event__chevron{transform:rotate(180deg);background:var(--ink);border-color:var(--ink);transition:transform .38s cubic-bezier(.4,0,.2,1),background .2s,border-color .2s}
.event[open] .event__chevron::before{border-color:#fff}
.event.is-closing .event__chevron{transform:none;background:transparent;border-color:var(--line)}
.event.is-closing .event__chevron::before{border-color:var(--ink)}

.event__detail{padding:4px 22px 24px 126px;border-top:1px dashed var(--line);margin:0 22px 0 0;animation:eventIn .45s ease}
.event__about{font-family:'Cormorant Garamond',serif;font-size:18px;line-height:1.7;color:var(--ink-2);margin:18px 0 18px;max-width:600px}
.event__info{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px;margin:0 0 18px;max-width:600px}
.event__info div{padding:12px 14px;background:var(--sage);border-radius:12px;min-width:0}
.event__info dt{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 4px}
.event__info dd{margin:0;font-family:'Cormorant Garamond',serif;font-size:18px;font-weight:600;line-height:1.25;color:var(--ink);overflow-wrap:break-word}
.event__points{list-style:none;padding:0;margin:0 0 22px;display:flex;flex-direction:column;gap:8px}
.event__points li{position:relative;padding-left:16px;font-family:'Cormorant Garamond',serif;font-size:17px;color:#5C3A28;line-height:1.4}
.event__points li::before{content:"";position:absolute;left:0;top:.6em;width:5px;height:5px;border-radius:50%;background:#C9A86A}

.badge{padding:7px 14px;border-radius:var(--radius-pill);font-size:12px;font-weight:500;white-space:nowrap;background:var(--sage-2);color:var(--ink)}
.badge--soon{background:#F3E6C8;color:#6B3926}
.badge--open{background:var(--ink);color:#fff}

.gal-filter{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:0 0 20px}
.chip{display:inline-flex;align-items:center;min-height:40px;padding:0 18px;border:1px solid var(--line);border-radius:var(--radius-pill);background:#fff;font-size:13px;font-weight:500;color:var(--ink);transition:background .2s,color .2s,border-color .2s}
.chip:hover{border-color:#C9A86A}
.chip.is-active{background:var(--ink);border-color:var(--ink);color:#fff}
.chip:focus-visible,.pager__link:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.gal-count{margin:0 0 20px;text-align:center;font-family:'Cormorant Garamond',serif;font-size:17px;color:var(--muted)}

.pager{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin:44px 0 0}
.pager__link{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:44px;min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:var(--radius-pill);background:#fff;font-size:14px;font-weight:500;color:var(--ink);transition:background .2s,color .2s,border-color .2s}
a.pager__link:hover{border-color:#C9A86A;background:var(--cream)}
.pager__link.is-current{background:var(--ink);border-color:var(--ink);color:#fff}
.pager__link.is-disabled{opacity:.4;pointer-events:none}
.pager__gap{min-width:24px;text-align:center;color:var(--muted)}
#gal-body{transition:height .4s cubic-bezier(.2,.7,.2,1)}
#gal-body :is(.gallery__item,.gal-count,.pager,.gallery__empty){transition:opacity .18s ease,transform .18s ease}

#gal-body.is-loading{pointer-events:none}
#gal-body.is-loading :is(.gallery__item,.gal-count,.pager,.gallery__empty){opacity:0;transform:translateY(8px)}

#gal-body.is-entering :is(.gallery__item,.gal-count,.pager,.gallery__empty){animation:galIn .5s cubic-bezier(.2,.7,.2,1) backwards}
#gal-body.is-entering .gallery__item{animation-delay:calc(var(--i,0) * 45ms)}
@keyframes galIn{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}

.chip:active{transform:scale(.96)}

.cta-band{position:relative;isolation:isolate;background:var(--ink);color:#F0EDE6;text-align:center;padding:clamp(56px,8vw,96px) 0}
.cta-band--photo::before{content:"";position:absolute;inset:0;z-index:-2;background:var(--cta-img) center/cover no-repeat}
.cta-band--photo::after{content:"";position:absolute;inset:0;z-index:-1;background:rgba(46,74,58,.86)}
.cta-band__title{font-family:'Cormorant Garamond',serif;font-size:clamp(28px,4.4vw,44px);font-weight:400;margin:0 0 10px;color:#F0EDE6}
.cta-band__desc{margin:0 0 26px;font-size:14.5px;color:rgba(255,255,255,.78)}
.btn--light{background:#F0EDE6;color:var(--ink);border:1.5px solid #F0EDE6;padding:14px 28px;font-size:14px;transition:background .2s}
.btn--light:hover{background:#fff}

@media(max-width:1024px){
  .tiles{grid-template-columns:repeat(2,1fr);grid-auto-rows:260px}
}
@media(max-width:860px){
  .pg-intro__grid{grid-template-columns:1fr}
  .pg-intro__media{aspect-ratio:16/11}
}
@media(max-width:600px){
  .pg-hero{min-height:380px}
  .tiles{grid-template-columns:1fr;grid-auto-rows:220px}
  .event__head{grid-template-columns:64px 1fr 28px;gap:14px;padding:16px}
  .event__date{padding-right:14px}
  .event__head .badge{grid-column:2/3;grid-row:2;justify-self:start}
  .event__detail{padding:4px 16px 20px;margin:0}
  .event__info{grid-template-columns:1fr}
  .pager{gap:6px}
  .pager__txt{display:none}
  .pager__link{min-width:40px;padding:0 10px}
}
@media(hover:none){.tile:hover img{transform:none}}

@media(prefers-reduced-motion:reduce){
  .pg-hero__bg,.pg-hero__overlay,.crumbs,.pg-hero__title,.pg-hero__desc,.pg-hero + *{animation:none}
  .event__detail{animation:none}
  .event__chevron{transition:none}
  #gal-body,#gal-body *{transition:none !important;animation:none !important}
}