

.shop .hero{padding:40px 0 32px}
.shop .hero h1{max-width:16ch}

.shop .hero:not(.pdp-hero){background:radial-gradient(circle at 82% 30%,var(--paper) 0%,rgba(255,255,255,0) 42%),
  linear-gradient(165deg,var(--paper) 0%,var(--tint) 70%)}
.shop-shelf{padding:28px 0 40px}

.wgrid{
  display:grid;
  
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
  margin:0 0 32px;
}
.wcard{
  display:flex;
  flex-direction:column;
  min-width:0;
  background:var(--paper);
  
  border:1px solid rgba(18,38,63,.07);
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 1px 1px rgba(18,38,63,.03),0 2px 4px rgba(18,38,63,.04),0 8px 16px rgba(18,38,63,.05),0 24px 48px -16px rgba(11,99,206,.22);
  transition:transform 260ms cubic-bezier(.32,.72,0,1),box-shadow 260ms ease;
}
.wcard:hover{transform:translateY(-4px);
  box-shadow:0 2px 4px rgba(18,38,63,.05),0 12px 24px rgba(18,38,63,.07),0 36px 64px -20px rgba(11,99,206,.32)}

.wpic{
  position:relative;
  margin:0;
  aspect-ratio:1;
  background:var(--tint);
  overflow:hidden;
}
.wpic img{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  max-width:none;
  object-fit:contain;
  object-position:center;
}
.wcard:hover .wpic img{transform:none}
.wpic[data-crop="object"]{background:#fff}
.wpic[data-crop="object"] img{
  object-fit:contain;
  object-position:center;
  padding:3%;
}

.wpic[data-crop="card"]{background:#fff}
.wpic[data-crop="card"] img{
  object-fit:contain;
  object-position:center;
  padding:16px;
}

.wbody{
  display:flex;
  flex-direction:column;
  flex:1;
  padding:22px 22px 24px;
}
.wbody > p{max-width:none;margin:0 0 4px;font-size:15px;line-height:1.5;color:var(--body)}
.wcard h3{order:1;margin:0;font-size:20px;letter-spacing:-.3px}
.wprice{
  order:2;
  margin:8px 0 12px;
  font-size:22px;
  font-weight:700;
  letter-spacing:-.4px;
  line-height:1.2;
  color:var(--ink);
}
.wprice span{
  margin-left:6px;
  font-size:14px;
  font-weight:500;
  letter-spacing:0;
  color:var(--meta);
}
.wbody > p{order:3}
.wcta{order:4;margin-top:18px;padding-top:0}
.wcta .btn{width:100%}
.wspec{
  order:5;
  margin:18px 0 0;
  padding:16px 0 0;
  border-top:1px solid var(--border);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px 16px;
}
.wspec div{display:block}
.wspec dt{
  margin:0 0 3px;
  font-family:var(--sans);
  font-size:var(--size-label);
  font-weight:700;
  letter-spacing:var(--track-label);
  text-transform:uppercase;
  color:var(--meta);
}
.wspec dd{margin:0;font-size:14px;line-height:1.4;color:var(--ink);text-align:left}

.wcard-row{
  display:grid;
  grid-template-columns:minmax(240px,42%) 1fr;
  align-items:stretch;
  background:var(--paper);
  border:1px solid rgba(18,38,63,.07);
  border-radius:18px;
  box-shadow:0 1px 1px rgba(18,38,63,.03),0 2px 4px rgba(18,38,63,.04),0 8px 16px rgba(18,38,63,.05),0 24px 48px -16px rgba(11,99,206,.22);
  overflow:hidden;
}
.wcard-row .wpic{
  aspect-ratio:auto;
  min-height:280px;
  
  background:#fff;
}
.wcard-row .wpic img{
  object-fit:contain;
  object-position:center;
  padding:28px;
  transform:none;
}
.wcard-row:hover .wpic img{transform:none}
.wcard-row .wbody{
  justify-content:center;
  padding:36px 40px;
}

.wcard-row .wbody > .eyebrow{order:1;margin:0 0 10px}
.wcard-row h2,.wcard-row h3{order:2;margin:0 0 8px}
.wcard-row .wprice{order:3;margin:4px 0 12px}
.wcard-row .wbody > p:not(.eyebrow):not(.wprice){order:4;margin:0 0 8px;font-size:16px;line-height:1.55}
.wcard-row .wbody > table{order:5;margin:14px 0 0}
.wcard-row .wcta{order:6;margin-top:20px}
.wcard-row .wbody > .actions{order:7;margin-top:20px}
.wcard-row .wcta .btn{width:auto}

.plan-strip{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px 40px;
  background:var(--paper);
  border:1px solid rgba(18,38,63,.07);
  border-radius:18px;
  box-shadow:0 1px 1px rgba(18,38,63,.03),0 2px 4px rgba(18,38,63,.04),0 8px 16px rgba(18,38,63,.05),0 24px 48px -16px rgba(11,99,206,.22);
  padding:28px 32px;
}
.plan-strip h2{margin:0 0 8px}
.plan-strip p{margin:0;max-width:46rem}
.plan-strip .btn{flex-shrink:0}
.add-seat,.plan-strip .add-seat{margin:12px 0 0}

.shop-shelf .wcard-row{margin-bottom:28px}
.shop-shelf .sub{margin:0 auto;text-align:center}

.shelf-note{margin:0 0 20px;max-width:70ch}

@media (prefers-reduced-motion:reduce){
  .wcard:hover .wpic img{transform:none}
}

@media (max-width:700px){
  .wgrid{
    grid-template-columns:1fr;
    max-width:440px;
    margin-left:auto;
    margin-right:auto;
    gap:22px;
  }
  .wcard-row{grid-template-columns:1fr}
  .wcard-row .wpic{min-height:0;aspect-ratio:16/10}
  .wcard-row .wbody{padding:24px}
  .plan-strip{flex-direction:column;align-items:flex-start;padding:24px}
  .wcard-row .wcta .btn{width:100%}
}
@media (min-width:701px) and (max-width:980px){
  .wgrid{gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}
  .wbody{padding:16px 16px 18px}
  .wcard h3{font-size:17px}
  .wprice{font-size:18px}
  .wspec{grid-template-columns:1fr}
  .wcta .btn{min-height:44px;font-size:15px}
}

.wpic-link{display:block;color:inherit;text-decoration:none}
.wcard h3 a,.wcard-row h2 a,.wcard-row h3 a{color:var(--ink);text-decoration:none}
.wcard h3 a:hover,.wcard-row h2 a:hover,.wcard-row h3 a:hover{color:var(--text-accent)}

.crumbs{margin:0;font-size:16px;font-weight:500;color:var(--meta)}
.crumbs a{color:var(--text-accent);font-weight:600;text-decoration:none;text-underline-offset:2px}
.crumbs a:hover{color:var(--rule-hover);text-decoration:underline}
.pdp-hero{padding:28px 0 20px}
.pdp-hero .frame > :last-child{margin-bottom:0}

.pdp{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:40px 48px;
  align-items:start;
}
.pdp > .wpic,
.pdp > .gallery{
  border:1px solid var(--border);
  border-radius:var(--radius-card);
}
.pdp > .gallery{border:0}

.gallery{display:flex;flex-direction:column;gap:12px;min-width:0}
.gallery .gal-r{
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
}
.gallery-stage{
  border:1px solid var(--border);
  border-radius:var(--radius-card);
  overflow:hidden;
}
.gallery-stage .wpic{display:none}
.gallery:has(.gal-r-0:checked) .gallery-stage .wpic:nth-child(1){display:block}
.gallery:has(.gal-r-1:checked) .gallery-stage .wpic:nth-child(2){display:block}
.gallery:has(.gal-r-2:checked) .gallery-stage .wpic:nth-child(3){display:block}
.gallery:has(.gal-r-3:checked) .gallery-stage .wpic:nth-child(4){display:block}
.gallery:has(.gal-r-4:checked) .gallery-stage .wpic:nth-child(5){display:block}
.gallery:has(.gal-r-5:checked) .gallery-stage .wpic:nth-child(6){display:block}

.gallery-thumbs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.gthumb{
  flex:0 0 76px;
  border:1px solid var(--border);
  border-radius:var(--radius);
  overflow:hidden;
  cursor:pointer;
}
.gthumb .wpic{aspect-ratio:1}
.gthumb .wpic img,
.gthumb:hover .wpic img{transform:none}
.gallery:has(.gal-r-0:checked) .gthumb:nth-child(1),
.gallery:has(.gal-r-1:checked) .gthumb:nth-child(2),
.gallery:has(.gal-r-2:checked) .gthumb:nth-child(3),
.gallery:has(.gal-r-3:checked) .gthumb:nth-child(4),
.gallery:has(.gal-r-4:checked) .gthumb:nth-child(5),
.gallery:has(.gal-r-5:checked) .gthumb:nth-child(6){border-color:var(--rule)}
.pdp > .wbody{padding:0}
.pdp > .wbody > *{order:unset}

.pdp h1{margin:0 0 8px;max-width:18ch;font-size:44px}
.pdp .wprice{margin:8px 0 16px}
.pdp .wspec{margin:16px 0 20px}
.pdp .qty{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin:0 0 14px;
  font-size:14px;
  font-weight:600;
  color:var(--ink);
}
.pdp .qty input{
  width:5.5rem;
  min-height:46px;
  padding:8px 10px;
  border:1px solid var(--border-mid);
  border-radius:var(--radius);
  font:inherit;
  font-weight:500;
}
.pdp-plan{grid-template-columns:minmax(0,40rem)}

.seats{margin:0 0 18px;padding:0;border:0}
.seats legend{
  margin:0 0 10px;
  font-size:14px;
  font-weight:600;
  color:var(--ink);
}
.seat-opt{
  display:flex;
  align-items:center;
  gap:12px;
  margin:0 0 8px;
  padding:12px 14px;
  border:1px solid var(--border);
  border-radius:var(--radius-card);
  cursor:pointer;
}
.seat-opt:has(input:checked){border-color:var(--rule);background:var(--tint)}
.seat-opt input{width:18px;height:18px;accent-color:var(--rule)}
.seat-opt b{display:block;color:var(--ink)}
.seat-opt span{font-size:15px;color:var(--body)}

.shop .lad{margin:18px 0 22px;border-collapse:collapse;width:100%;max-width:22rem}
.shop .lad th,.shop .lad td{padding:8px 0;border-bottom:1px solid var(--border);text-align:left;font-size:15px}
.shop .lad th{font-size:var(--size-label);font-weight:700;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--meta)}

.wcard-plan .wbody{padding:36px 40px}
.wcta.inline{margin:0}
.wcta.inline .btn{width:auto}
.shop-shelf .actions{margin-top:8px}

@media (max-width:760px){
  .pdp{grid-template-columns:1fr;gap:24px}
  .pdp h1{font-size:40px}
  .wcard-plan .wbody{padding:24px}
}
.added-note{display:none;margin:10px 0 0;font-weight:600;color:var(--ink)}
.added-note:target,.added-note.show{display:block}

.added-note{scroll-margin-bottom:32px}

.added-note::before{content:"";display:inline-block;width:18px;height:18px;margin-right:6px;vertical-align:-3px;
  background:var(--green-600);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 12.5l5 5L20 6.5' fill='none' stroke='black' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 12.5l5 5L20 6.5' fill='none' stroke='black' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}

.hero .what{font-size:17px;font-weight:600;color:var(--ink);max-width:60ch}

.herosplit{display:block}
@media (min-width:860px){
  .herosplit{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
    gap:48px;align-items:center}
}
@media (max-width:859px){.heroshot{display:none}}
.heroshot{margin:0;padding:18px;background:var(--paper);border:1px solid var(--border);
  border-radius:var(--radius-card);
  box-shadow:0 1px 1px rgba(18,38,63,.03),0 2px 4px rgba(18,38,63,.04),0 8px 16px rgba(18,38,63,.05),0 24px 48px -16px rgba(11,99,206,.22)}
.heroshot img{display:block;width:100%;height:auto;border-radius:var(--radius)}

.plan-strip .wprice{margin:10px 0 0}

.wbody .wbest{margin:0;font-size:14px;line-height:1.45;color:var(--meta)}
.wbody .wbest b{font-weight:600;color:var(--ink)}

.wcard .added-note{order:5}

.wcard .wcta{margin-top:auto;padding-top:18px}

.plan-strip .btn{padding:14px 26px;font-size:17px}

.hero h1 span{color:var(--text-accent)}

.steps-section{padding:56px 0 60px;text-align:center}
.steps-section .frame{max-width:900px}
.steps-section h2{margin-bottom:28px}

.steps-section h2 span{color:var(--text-accent)}
.steps-section .steps{text-align:left}

.steps-section .steps-pay{margin-top:24px}
.steps-section .sub{margin-left:auto;margin-right:auto}
.steps-section .actions{justify-content:center;margin-top:8px}

@media (min-width:980px){
  .pdp-plan{grid-template-columns:minmax(0,40rem) minmax(0,1fr);gap:0 64px;align-items:start}
}
@media (max-width:979px){.planphone{display:none}}
.planphone{margin:0 auto;position:relative;width:100%;max-width:300px;
  padding:14px 8px;background:var(--ink);border-radius:28px;
  box-shadow:0 2px 4px rgba(18,38,63,.14),0 10px 22px -8px rgba(18,38,63,.30),0 30px 60px -22px rgba(18,38,63,.45)}
.planphone::before,.planphone::after{content:"";position:absolute;left:50%;transform:translateX(-50%);
  background:var(--on-ink);opacity:.55;border-radius:var(--radius-pill)}
.planphone::before{top:6px;width:34px;height:3px}
.planphone::after{bottom:6px;width:84px;height:3px}
.planphone-screen{display:block;width:100%;aspect-ratio:390/686;overflow:hidden;background:var(--paper);
  border-radius:16px;box-shadow:inset 0 0 0 1px var(--on-ink)}
.planphone img{display:block;width:100%;height:auto;border:0}
.planphone figcaption{margin:14px 0 0;font-size:var(--size-label);font-weight:700;
  letter-spacing:var(--track-label);text-transform:uppercase;color:var(--meta);text-align:center}

.pdp-plan .wprice{font-size:var(--size-amount);letter-spacing:-1.2px;line-height:1.1}
.pdp-plan .wprice span{font-size:15px}

.pdp-plan .wcta .btn{width:auto;padding:14px 28px;font-size:17px}

.gallery-stage{position:relative;cursor:zoom-in}
.gal-open{position:absolute;right:10px;bottom:10px;display:flex;align-items:center;justify-content:center;
  width:44px;height:44px;padding:0;border:1px solid var(--border-mid);border-radius:999px;
  background:rgba(255,255,255,.92);color:var(--ink);cursor:pointer;transition:transform 100ms ease-out}
.gal-open[hidden]{display:none}
.gal-open:active{transform:scale(.94)}
.gal-open:focus-visible{outline:2px solid var(--rule);outline-offset:2px}

html.lb-lock{overflow:hidden}
dialog.lb{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;
  border:0;background:var(--paper);color:var(--ink);overflow:hidden;
  display:flex;flex-direction:column;
  opacity:1;transform:none;transition:opacity 180ms ease-out,transform 180ms ease-out}
dialog.lb:not([open]){display:none}
@starting-style{dialog.lb[open]{opacity:0;transform:scale(.98)}}
dialog.lb.closing{opacity:0;transform:scale(.98)}
dialog.lb::backdrop{background:var(--paper)}
.lb-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px 10px 20px;flex:none}
.lb-count{margin:0;font-family:var(--sans);font-size:var(--size-label);font-weight:700;
  letter-spacing:var(--track-label);text-transform:uppercase;color:var(--meta)}
.lb-close,.lb-arrow{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;
  border:1px solid var(--border-mid);border-radius:999px;background:var(--paper);color:var(--ink);cursor:pointer;
  transition:transform 100ms ease-out,opacity 120ms}
.lb-close:active,.lb-arrow:active{transform:scale(.94)}
.lb-close:focus-visible,.lb-arrow:focus-visible{outline:2px solid var(--rule);outline-offset:2px}

.lb-track{flex:1;min-height:0;display:flex;overflow-x:auto;overflow-y:hidden;
  scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none}
.lb-track::-webkit-scrollbar{display:none}
.lb-slide{flex:0 0 100%;height:100%;display:flex;align-items:center;justify-content:center;padding:0 16px 24px;
  scroll-snap-align:start;scroll-snap-stop:always}
.lb-slide picture{display:contents}
.lb-slide img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;
  user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.lb-arrow{position:absolute;top:50%;margin-top:-22px}
.lb-prev{left:16px}
.lb-next{right:16px}
.lb-arrow:disabled{opacity:.3;cursor:default}

@media (hover:none) and (pointer:coarse){.lb-arrow{display:none}}
@media (prefers-reduced-motion:reduce){
  .gal-open:active,.lb-close:active,.lb-arrow:active{transform:none}
  dialog.lb,dialog.lb.closing{transform:none}
}

.gal-track{display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;
  overscroll-behavior-x:contain;scrollbar-width:none}
.gal-track::-webkit-scrollbar{display:none}
.gallery.swipe .gallery-stage .wpic{display:block;flex:0 0 100%;min-width:0;
  scroll-snap-align:start;scroll-snap-stop:always}

.pdp .wcta + .sub,.pdp .added-note + .sub{margin-top:24px}

.wbody > p.added-note,.wbody > p.add-seat{margin-top:16px}

.pdp .wcta .qty{margin-bottom:20px}
