:root{
  --bone:#F1EFE6; --bone-2:#E7E3D6; --tan:#D5CCB6;
  --red:#9A2A21; --red-lt:#B23A2C;
  --sage:#7A9477; --sage-lt:#A9C0A4; --pine:#2E4230; --pine-2:#3B5340;
  --orange:#F4A24A; --pumpkin:#D9722F;
  --brown:#4A2E22; --deep:#34211A; --ink:#33211A; --paper:#FBF9F3;
  --disp:"Big Shoulders Display","Arial Narrow",sans-serif;
  --body:"Karla",system-ui,-apple-system,sans-serif;
  --gut:clamp(1.25rem,5vw,3.5rem); --max:1180px; --sc:var(--red);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bone);color:var(--ink);font-family:var(--body);
  font-size:clamp(1.06rem,.45vw + .98rem,1.19rem);line-height:1.65}
img{max-width:100%;display:block;height:auto}
a{color:inherit}
:focus-visible{outline:3px solid var(--orange);outline-offset:3px;border-radius:2px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

h1,h2,h3{font-family:var(--disp);font-weight:800;line-height:.92;letter-spacing:.005em;
  text-transform:uppercase;margin:0}
h2{font-size:clamp(2rem,4.9vw,3.2rem);color:var(--pine)}
h3{font-size:clamp(1.42rem,2.3vw,1.68rem);font-weight:700;color:var(--brown)}
p{margin:0 0 1.05em}
.lede{font-size:1.1em;line-height:1.58}
.eyebrow{font-weight:700;font-size:.86rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--pumpkin);margin:0 0 .85rem}
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gut)}
.sec{padding-block:clamp(3rem,7vw,5rem)}
.rule{height:1px;background:var(--tan);border:0;margin:2.2rem 0}

.g-pine{background:var(--pine);color:var(--bone)}
.g-brown{background:var(--deep);color:var(--bone)}
.g-red{background:var(--red);color:var(--bone)}
.g-pine h2,.g-brown h2,.g-red h2{color:var(--orange)}
.g-pine h3,.g-brown h3,.g-red h3{color:var(--bone)}
.g-pine .eyebrow,.g-brown .eyebrow{color:var(--orange)}
.g-red .eyebrow{color:#F2CDAF}
.g-pine a,.g-brown a,.g-red a{color:var(--orange)}
.dim{color:#D6CFC2}
.g-pine .dim{color:#CFDBCB}

.sc-top,.sc-bot{height:22px;background-repeat:repeat-x;background-size:44px 22px}
.sc-top{background-color:var(--sc);
  background-image:radial-gradient(circle at 22px 0,var(--bone) 22px,transparent 22.5px)}
.sc-bot{background-color:var(--scbg,var(--bone));
  background-image:radial-gradient(circle at 22px 0,var(--sc) 22px,transparent 22.5px)}

/* Header */
header.bar{position:sticky;top:0;z-index:60;background:var(--bone);border-bottom:1px solid var(--tan)}
.bar-in{max-width:var(--max);margin-inline:auto;padding:.5rem var(--gut);
  display:flex;align-items:center;gap:1rem;min-height:58px}
.brand{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--pine);flex:0 0 auto}
.brand img{width:32px;flex:0 0 auto}
.brand b{font-family:var(--disp);font-weight:800;font-size:1.24rem;letter-spacing:.02em;
  text-transform:uppercase;line-height:1.05;display:block;white-space:nowrap}
nav.main{margin-left:auto;display:flex;align-items:center;gap:.05rem}
nav.main a{font-family:var(--disp);font-weight:700;font-size:1.16rem;text-transform:uppercase;
  letter-spacing:.035em;color:var(--brown);text-decoration:none;white-space:nowrap;
  padding:.45rem .58rem;border-radius:3px;transition:color .15s,background .15s}
nav.main a:hover{background:var(--bone-2);color:var(--pine)}
nav.main a[aria-current="page"]{color:var(--red)}
nav.main a[aria-current="page"]::after{content:"";display:block;height:2px;margin-top:2px;
  background:var(--red);border-radius:2px}
.btn{display:inline-block;font-family:var(--disp);font-weight:800;text-transform:uppercase;
  letter-spacing:.04em;font-size:1.14rem;background:var(--red);color:var(--bone);
  padding:.55rem 1.05rem;border-radius:3px;text-decoration:none;white-space:nowrap;border:0;
  cursor:pointer;transition:background .15s,transform .12s}
.btn:hover{background:var(--red-lt);transform:translateY(-1px);color:var(--bone)}
.btn.orange{background:var(--orange);color:var(--brown)}
.btn.orange:hover{background:#F8B266;color:var(--brown)}
.btn.lg{font-size:1.36rem;padding:.85rem 1.5rem;letter-spacing:.05em}
.btn.block{display:block;width:100%;text-align:center}
.collage{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:6px;
  box-shadow:0 0 0 1px rgba(241,239,230,.22)}
.hamb{display:none;margin-left:auto;background:none;border:1px solid var(--tan);border-radius:4px;
  padding:.5rem .6rem;cursor:pointer;align-items:center;gap:.45rem;font-family:var(--disp);
  font-weight:700;font-size:1.05rem;text-transform:uppercase;color:var(--brown)}
.hamb i{display:block;width:17px;height:11px;position:relative}
.hamb i::before,.hamb i::after,.hamb i span{content:"";position:absolute;left:0;right:0;height:2px;
  background:var(--brown);border-radius:2px;transition:.2s}
.hamb i::before{top:0} .hamb i span{top:4.5px} .hamb i::after{bottom:0}
.hamb[aria-expanded="true"] i::before{top:4.5px;transform:rotate(45deg)}
.hamb[aria-expanded="true"] i::after{bottom:4.5px;transform:rotate(-45deg)}
.hamb[aria-expanded="true"] i span{opacity:0}
@media (max-width:1080px){
  .hamb{display:flex}
  nav.main{position:absolute;top:100%;left:0;right:0;margin:0;background:var(--bone);
    border-bottom:1px solid var(--tan);flex-direction:column;align-items:stretch;gap:0;
    padding:.4rem var(--gut) .9rem;display:none;box-shadow:0 12px 24px rgba(52,33,26,.12)}
  nav.main.open{display:flex}
  nav.main a{font-size:1.42rem;padding:.66rem .2rem;border-bottom:1px solid var(--tan)}
  nav.main a:last-of-type{border-bottom:0}
  nav.main a[aria-current="page"]::after{display:none}
}
@media (max-width:430px){.brand b{font-size:1.06rem}}
@media (max-width:350px){.brand b{font-size:.94rem}.brand img{width:28px}}

/* Ticket stub */
.stub{display:grid;grid-template-columns:minmax(92px,.42fr) 1fr;background:var(--bone);
  color:var(--ink);border-radius:4px;overflow:hidden;position:relative;box-shadow:0 2px 4px rgba(0,0,0,.22)}
.stub .counterfoil{background:var(--orange);padding:1rem .85rem;text-align:center;
  display:flex;flex-direction:column;justify-content:center;position:relative}
.stub .counterfoil::after{content:"";position:absolute;top:0;right:-1px;bottom:0;width:2px;
  background-image:repeating-linear-gradient(180deg,var(--brown) 0 5px,transparent 5px 11px);opacity:.42}
.stub .body{padding:1rem 1.1rem;display:flex;flex-direction:column;justify-content:center}
.stub .notch{position:absolute;width:14px;height:14px;border-radius:50%;background:var(--pine);
  left:calc(42% - 7px)}
.stub .notch.t{top:-7px} .stub .notch.b{bottom:-7px}
.stub .big{font-family:var(--disp);font-weight:900;font-size:clamp(2.5rem,7vw,3.4rem);
  line-height:.84;color:var(--brown)}
.stub .sm{font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--brown);opacity:.7;margin-top:.35rem}
.stub .title{font-family:var(--disp);font-weight:800;font-size:1.62rem;text-transform:uppercase;
  line-height:1;color:var(--brown)}
.stub .meta{font-size:.82rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;
  color:var(--pumpkin);margin-top:.4rem}
/* Raffle ticket — used wherever tickets are actually sold */
.ticket-row{display:grid;gap:1.1rem;grid-template-columns:1fr}
@media (min-width:700px){.ticket-row{grid-template-columns:repeat(3,1fr)}}
.ticket-row.two{grid-template-columns:1fr}
@media (min-width:700px){.ticket-row.two{grid-template-columns:repeat(2,1fr)}}
.ticket{background:var(--paper);border-radius:6px;position:relative;display:flex;
  flex-direction:column;box-shadow:0 0 0 1px var(--tan),0 4px 0 rgba(52,33,26,.09)}
.ticket .hd{background:var(--red);color:var(--bone);border-radius:6px 6px 0 0;
  display:flex;justify-content:space-between;align-items:baseline;gap:.6rem;
  padding:.55rem .95rem;font-family:var(--disp);font-weight:800;text-transform:uppercase;
  letter-spacing:.05em;font-size:1.14rem}
.ticket .hd em{font-style:normal;font-family:var(--body);font-weight:700;font-size:.74rem;
  letter-spacing:.14em;opacity:.9}
.ticket .face{padding:1.6rem 1rem 1.4rem;text-align:center}
.ticket .price{display:block;font-family:var(--disp);font-weight:900;line-height:.82;
  font-size:clamp(3.6rem,8.5vw,4.7rem);color:var(--brown);letter-spacing:-.01em}
.ticket .qty{display:block;font-family:var(--disp);font-weight:700;text-transform:uppercase;
  font-size:1.52rem;letter-spacing:.04em;color:var(--pumpkin);margin-top:.55rem}
.ticket .tear{position:relative;height:0;border-top:2px dashed var(--tan);margin:0 .95rem}
.ticket .tear span{position:absolute;top:-12px;width:23px;height:23px;border-radius:50%;
  background:var(--notch,var(--bone));box-shadow:inset -1px 0 0 var(--tan)}
.ticket .tear .l{left:-1.66rem}
.ticket .tear .r{right:-1.66rem;box-shadow:inset 1px 0 0 var(--tan)}
.ticket .foot{padding:1.15rem 1rem 1.25rem;text-align:center}
.ticket .per{display:block;font-family:var(--disp);font-weight:800;text-transform:uppercase;
  font-size:1.34rem;color:var(--pine);line-height:1.05}
.ticket .org{display:block;font-weight:700;font-size:.72rem;letter-spacing:.13em;
  text-transform:uppercase;color:#9C8E7C;margin-top:.6rem}

.stub-row{display:grid;gap:1rem;grid-template-columns:1fr}
@media (max-width:560px){
  .hero .stub{grid-template-columns:minmax(74px,.34fr) 1fr}
  .hero .stub .counterfoil{padding:.7rem .6rem}
  .hero .stub .big{font-size:2.3rem}
  .hero .stub .body{padding:.7rem .9rem}
  .hero .stub .title{font-size:1.32rem}
  .hero .stubs{margin-top:1.5rem}
  .stub-row{gap:.7rem}
}
@media (min-width:780px){.stub-row{grid-template-columns:repeat(3,1fr)}}
.on-brown .stub .notch{background:var(--deep)}
.on-brown .stub .counterfoil::after{background-image:repeating-linear-gradient(180deg,var(--deep) 0 5px,transparent 5px 11px);opacity:.45}
.on-bone .stub{box-shadow:0 0 0 1px var(--tan)}
.on-bone .stub .notch{background:var(--bone)}
.on-bone .stub .counterfoil{background:var(--red)}
.on-bone .stub .counterfoil .big,.on-bone .stub .counterfoil .sm{color:var(--bone)}
.on-bone .stub .counterfoil::after{background-image:repeating-linear-gradient(180deg,var(--bone) 0 5px,transparent 5px 11px);opacity:.8}

/* Hero */
.hero{position:relative;background:var(--pine);overflow:hidden}
.hero .bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.5}
.hero .bg,.feature img{height:100%}
.hero::after{content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(28,42,30,.94) 0%,rgba(30,45,32,.82) 46%,rgba(30,45,32,.42) 100%)}
.hero .inner{position:relative;z-index:2;padding-block:clamp(2rem,5vw,3.4rem) clamp(2.4rem,5.5vw,3.8rem)}
.hero .mark{width:clamp(66px,9vw,86px);margin-bottom:1.2rem}
.hero .est{font-weight:700;font-size:.88rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--sage-lt);margin:0 0 .9rem}
.hero h1{font-size:clamp(3rem,12vw,8.2rem);font-weight:900;line-height:.87;color:var(--bone);
  text-shadow:0 2px 18px rgba(20,30,22,.5)}
.hero h1 em{font-style:normal;display:block;color:var(--orange)}
.hero .where{font-weight:700;font-size:clamp(.92rem,1.8vw,1.1rem);letter-spacing:.12em;
  text-transform:uppercase;color:var(--sage-lt);margin:1rem 0 0}
.hero .sub{max-width:48ch;margin:1.3rem 0 0;color:#DCE5D9}
.hero .stubs{margin-top:clamp(1.9rem,4vw,2.7rem);max-width:900px}
.hero .addr{font-size:1.02rem;color:#BCCDBA;margin:1.5rem 0 0}

.banner{padding-block:clamp(2.2rem,5.5vw,3.4rem) clamp(1.9rem,4.5vw,2.9rem)}
.banner h1{font-size:clamp(2.5rem,8.5vw,5.4rem);font-weight:900;color:var(--bone)}
.banner .dates{font-weight:700;font-size:.95rem;letter-spacing:.11em;text-transform:uppercase;
  color:#F2CDAF;margin:.9rem 0 0}

/* Cards */
.grid{display:grid;gap:1.1rem;grid-template-columns:1fr}
@media (min-width:560px){.grid:not(.g3){grid-template-columns:repeat(2,1fr)}}
@media (min-width:900px){.grid.g3{grid-template-columns:repeat(3,1fr)}}
@media (min-width:980px){.grid.g4{grid-template-columns:repeat(4,1fr)}}
.card{background:var(--bone-2);border-radius:5px;overflow:hidden;box-shadow:0 0 0 1px var(--tan);
  display:flex;flex-direction:column}
.g-pine .card,.g-brown .card{background:rgba(241,239,230,.07);box-shadow:inset 0 0 0 1px rgba(241,239,230,.2)}
.g-pine .card p,.g-brown .card p{color:#D6DFD4}
.card .shot{aspect-ratio:4/3;width:100%;object-fit:cover;background:var(--tan)}
.card .txt{padding:.95rem 1.05rem 1.25rem;flex:1}
.card h3{margin-bottom:.4rem}
.card p{margin:0;font-size:1.02rem;line-height:1.52}
.card .tag{font-size:.78rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;
  color:var(--red);display:block;margin-bottom:.35rem}
.g-pine .card .tag,.g-brown .card .tag{color:var(--orange)}

/* Menus */
/* Stand boards — modelled on the hand-lettered signs over each stand */
.board{background:var(--bone);border-radius:5px;overflow:hidden;display:flex;
  flex-direction:column;box-shadow:0 0 0 1px var(--tan),0 3px 0 rgba(52,33,26,.06)}
.board .hd{background:var(--red);color:var(--bone);padding:.62rem .95rem;
  font-family:var(--disp);font-weight:800;text-transform:uppercase;font-size:1.34rem;
  letter-spacing:.03em;line-height:1.1}
.board ul{list-style:none;margin:0;padding:.25rem .95rem 1rem;flex:1}
.board ul.two{columns:1;column-gap:2rem}
@media (min-width:620px){.board ul.two{columns:2}}
.board .say{padding:.85rem .95rem 1.15rem;flex:1;font-size:1.02rem;line-height:1.5;
  color:var(--brown);margin:0}
.board .say a{font-weight:700;color:var(--red)}
.board .say .tbd{display:inline-block;margin-top:.35rem}

/* Mass & devotions board */
.hours{background:var(--paper);border-radius:6px;overflow:hidden;
  box-shadow:0 0 0 1px var(--tan),0 4px 0 rgba(52,33,26,.08)}
.hours .hd{background:var(--red);color:var(--bone);padding:.6rem .95rem;font-family:var(--disp);
  font-weight:800;text-transform:uppercase;font-size:1.36rem;letter-spacing:.04em}
.hours .day{background:var(--bone-2);color:var(--pumpkin);font-weight:700;font-size:.8rem;
  letter-spacing:.13em;text-transform:uppercase;padding:.5rem .95rem;border-top:1px solid var(--tan)}
.hours .hd + .day{border-top:0}
.hours ul{list-style:none;margin:0;padding:0}
.hours li{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;
  padding:.66rem .95rem;border-top:1px dotted var(--tan)}
.hours li:first-child{border-top:0}
.hours .what{font-size:1.04rem;color:var(--ink);overflow-wrap:break-word;min-width:0}
.hours .time{font-family:var(--disp);font-weight:800;text-transform:uppercase;font-size:1.32rem;
  color:var(--pine);white-space:nowrap;line-height:1}
.hours .note{padding:.8rem .95rem 1rem;font-size:.95rem;color:#6B5B4C;border-top:1px dotted var(--tan)}

/* placeholder for a photo the parish still owes us */
.slot{aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;text-align:center;
  padding:1.2rem;background:var(--pine);
  background-image:repeating-linear-gradient(135deg,transparent 0 11px,rgba(241,239,230,.05) 11px 22px)}
.slot span{font-weight:700;font-size:.86rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--sage-lt)}
.board li{font-family:var(--disp);font-weight:600;text-transform:uppercase;font-size:1.3rem;
  letter-spacing:.015em;color:var(--brown);padding:.58rem 0;border-bottom:1px dotted var(--tan);
  line-height:1.08}
.board li:last-child{border-bottom:0}
.board li em{font-style:normal;color:var(--pumpkin);font-weight:800}
.board li small{display:block;font-family:var(--body);font-weight:400;text-transform:none;
  letter-spacing:0;font-size:.95rem;line-height:1.35;color:#6B5B4C;margin-top:.22rem}

/* Featured dish */
.feature{display:grid;gap:0;grid-template-columns:1fr;border-radius:5px;overflow:hidden;
  box-shadow:0 0 0 1px var(--tan)}
@media (min-width:820px){.feature{grid-template-columns:1.05fr .95fr}}
.feature .txt{background:var(--pine);color:var(--bone);padding:clamp(1.5rem,3.4vw,2.4rem);
  display:flex;flex-direction:column;justify-content:center}
.feature .txt h3{color:var(--orange);font-size:clamp(1.9rem,3.6vw,2.5rem);margin-bottom:.7rem}
.feature .txt p{color:#D9E2D6;margin-bottom:0}
.feature .txt .eyebrow{color:var(--orange)}
.feature img{width:100%;height:100%;min-height:260px;object-fit:cover;display:block}
.feature.red .txt{background:var(--red)}
.feature .slot{height:100%;min-height:260px;aspect-ratio:auto}
@media (min-width:820px){
  .feature.flip{grid-template-columns:.95fr 1.05fr}
  .feature.flip .txt{order:2}
}

/* Fact strip */
.facts{display:grid;gap:1.1rem 1.6rem;grid-template-columns:repeat(2,1fr);margin-top:2rem}
@media (min-width:860px){.facts{grid-template-columns:repeat(4,1fr)}}
.facts.two{grid-template-columns:repeat(2,1fr)}
.fact{border-top:3px solid var(--red);padding-top:.75rem}
.fact .k{display:block;font-weight:700;font-size:.78rem;letter-spacing:.11em;
  text-transform:uppercase;color:var(--pumpkin);margin-bottom:.25rem}
.fact .v{font-family:var(--disp);font-weight:800;text-transform:uppercase;font-size:1.5rem;
  line-height:1.05;color:var(--pine);overflow-wrap:break-word}
@media (max-width:480px){.fact .v{font-size:1.3rem}.fact .k{font-size:.72rem}}

.menu{list-style:none;margin:0;padding:0;columns:1;column-gap:2.4rem}
@media (min-width:560px){.menu{columns:2}}
@media (min-width:900px){.menu.three{columns:3}}
.menu li{font-family:var(--disp);font-weight:600;text-transform:uppercase;font-size:1.42rem;
  letter-spacing:.02em;padding:.54rem 0;border-bottom:1px solid rgba(241,239,230,.16);break-inside:avoid}
.menu li em{font-style:normal;color:var(--orange);font-weight:800}


/* Schedule */
.sched{list-style:none;margin:0;padding:0}
.sched li{display:grid;grid-template-columns:minmax(0,8rem) 1fr auto;gap:.6rem 1rem;
  align-items:baseline;padding:.9rem 0;border-top:1px solid rgba(241,239,230,.2)}
.sched li:last-child{border-bottom:1px solid rgba(241,239,230,.2)}
.sched .when{font-family:var(--disp);font-weight:800;text-transform:uppercase;font-size:1.46rem;color:var(--orange)}
.sched .what{font-size:1.03rem;color:#D6CFC2}
.sched .amt{font-family:var(--disp);font-weight:900;font-size:1.66rem;color:var(--bone);white-space:nowrap}
.sched li.head .amt{color:var(--orange)}
@media (max-width:560px){.sched li{grid-template-columns:1fr auto}.sched .what{grid-column:1/-1}}
.sched .winners{grid-column:1/-1;list-style:none;margin:.6rem 0 0;padding:0;
  display:flex;flex-wrap:wrap;gap:.45rem}
.sched .winners li{font-family:var(--disp);font-weight:700;text-transform:uppercase;
  font-size:1.08rem;letter-spacing:.02em;color:var(--deep);background:var(--orange);
  padding:.32rem .75rem;border-radius:999px;border:0}
.sched .pending{grid-column:1/-1;margin:.5rem 0 0;font-size:.94rem;color:#A79B8A}

.split{display:grid;gap:clamp(1.6rem,3.5vw,3rem);grid-template-columns:1fr}
@media (min-width:860px){.split{grid-template-columns:1.15fr .85fr;align-items:start}}
.panel{background:var(--bone-2);border-radius:5px;padding:clamp(1.3rem,3vw,1.9rem);
  box-shadow:0 0 0 1px var(--tan)}
.g-pine .panel,.g-brown .panel,.g-red .panel{background:rgba(241,239,230,.08);
  box-shadow:inset 0 0 0 1px rgba(241,239,230,.24)}
.figure{border-radius:5px;overflow:hidden;box-shadow:0 0 0 1px var(--tan)}
.figure img{width:100%;aspect-ratio:4/3;object-fit:cover}
.figure.wide img{aspect-ratio:21/9}
.figure.tall img{aspect-ratio:3/4}
.figure.strip img{aspect-ratio:16/10}
.figure.square img{aspect-ratio:1/1}

/* Jump bar */
.jump{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem 1.5rem;margin-top:1.5rem;
  background:var(--bone-2);border-radius:6px;box-shadow:inset 0 0 0 1px var(--tan);
  padding:.85rem clamp(.9rem,2.5vw,1.3rem)}
.jump .lbl{padding-top:0;margin:0;white-space:nowrap}
.jump ol{list-style:none;display:flex;flex-wrap:wrap;gap:.35rem;margin:0;padding:0}
.jump a{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--disp);font-weight:700;
  text-transform:uppercase;font-size:1.18rem;letter-spacing:.03em;color:var(--brown);
  text-decoration:none;padding:.35rem .75rem .35rem .4rem;border-radius:999px;
  transition:background .15s,color .15s}
.jump a b{font-family:var(--body);font-weight:700;font-size:.74rem;color:var(--red);
  background:var(--paper);box-shadow:inset 0 0 0 1px var(--tan);border-radius:50%;
  width:23px;height:23px;display:grid;place-items:center;transition:.15s}
.jump a:hover{background:var(--red);color:var(--bone)}
.jump a:hover b{background:var(--orange);color:var(--deep);box-shadow:inset 0 0 0 1px var(--orange)}
@media (pointer:coarse){
  .jump a{min-height:44px;padding:.5rem .9rem .5rem .5rem}
  .hamb{min-height:44px}
  .btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
  .faq summary{padding-block:1.1rem}
}
#foodstand,#appleshack,#ribbonfries,#kettlecorn,#icecream{scroll-margin-top:78px}
.figure figcaption{background:var(--bone-2);padding:.7rem .95rem;font-size:.95rem;color:#6B5B4C}
.g-pine .figure figcaption,.g-brown .figure figcaption{background:rgba(241,239,230,.09);color:#CBD5C9}

.times{list-style:none;margin:0;padding:0}
.times li{display:flex;justify-content:space-between;gap:1.2rem;padding:.48rem 0;
  border-bottom:1px dotted var(--tan);font-size:1.04rem}
.times li:last-child{border-bottom:0}
.lbl{font-size:.82rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;
  color:var(--pumpkin);padding-top:.9rem;display:block}

.faq details{border-top:1px solid rgba(241,239,230,.24)}
.faq details:last-of-type{border-bottom:1px solid rgba(241,239,230,.24)}
.faq summary{cursor:pointer;list-style:none;padding:.95rem 2rem .95rem 0;position:relative;
  font-family:var(--disp);font-weight:700;text-transform:uppercase;font-size:1.4rem;color:var(--bone)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:.2rem;top:.7rem;font-family:var(--disp);
  font-weight:800;font-size:1.6rem;color:var(--orange)}
.faq details[open] summary::after{content:"–"}
.faq .ans{padding:0 0 1.05rem;font-size:1.05rem;max-width:62ch;color:#D6CFC2}
.faq .ans p:last-child{margin-bottom:0}

.callout{text-align:center}
.callout p{max-width:54ch;margin-inline:auto;color:#F2DCD2}
.tbd{font-size:.84rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--red);
  background:rgba(154,42,33,.09);border:1px dashed rgba(154,42,33,.5);padding:.5rem .7rem;
  border-radius:3px;display:inline-block}
.g-pine .tbd,.g-brown .tbd,.g-red .tbd{color:var(--orange);background:rgba(244,162,74,.12);
  border-color:rgba(244,162,74,.55)}
.map{border:0;width:100%;aspect-ratio:16/10;border-radius:5px;box-shadow:0 0 0 1px var(--tan);
  background:var(--bone-2)}

footer{background:var(--pine);color:#C3D2C1;padding-block:clamp(2.6rem,5.5vw,3.6rem) 1.8rem;
  border-top:4px solid var(--orange)}
footer h3{color:var(--orange);font-size:1.2rem;margin-bottom:.6rem}
footer .cols{display:grid;gap:1.8rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
footer a{color:var(--orange)}
footer p{font-size:1.02rem;margin-bottom:.45em}
footer .mark{width:62px;margin-bottom:1.1rem}
.colophon{margin-top:2.4rem;padding-top:1.3rem;border-top:1px solid rgba(241,239,230,.18);
  font-size:.8rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;display:flex;
  gap:1rem;flex-wrap:wrap;justify-content:space-between}

@keyframes fade{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
main{animation:fade .28s ease-out}
.skip{position:absolute;left:-9999px}
.skip:focus{left:.5rem;top:.5rem;z-index:99;background:var(--orange);color:var(--brown);
  padding:.6rem 1rem;border-radius:3px;font-family:var(--disp);font-weight:800}
