/*
 * Shared public visual-system primitives.
 *
 * This layer is opt-in through .public-theme so later public sections can adopt
 * the tokens without changing pages that have not completed their visual pilot.
 */
.public-theme{
  --tb-public-page:#070808;
  --tb-public-page-deep:#030404;
  --tb-public-surface:#181a1a;
  --tb-public-surface-raised:#242828;
  --tb-public-surface-deep:#0d0f0f;
  --tb-public-control:#101212;
  --tb-public-control-hover:#191c1c;
  --tb-public-control-border:#3b4040;
  --tb-public-text:#fff;
  --tb-public-text-secondary:#f0efeb;
  --tb-public-text-muted:#b9bbb7;
  --tb-public-accent:#ff6a1f;
  --tb-public-accent-bright:#ff812f;
  --tb-public-accent-action:#cf4b00;
  --tb-public-accent-action-hover:#bd4200;
  --tb-public-border:#414646;
  --tb-public-border-soft:#303535;
  --tb-public-focus:#ffad7f;
  --tb-public-heading-font:Arial,Helvetica,"Liberation Sans",sans-serif;
  --tb-public-radius-sm:5px;
  --tb-public-radius-md:8px;
  --tb-public-shadow:0 10px 24px #0007;
  --tb-public-masthead-image-opacity:.94;
  --tb-public-masthead-image-opacity-mobile:.92;
  --tb-public-masthead-image-filter:grayscale(1) contrast(1.12) brightness(1.08);
  --tb-public-masthead-image-fade:
    linear-gradient(90deg,#050606 0%,#050606fa 20%,#050606e6 36%,#0506068c 58%,#0506061f 83%,#05060614 100%),
    linear-gradient(180deg,#0002 0%,#0000 52%,#0009 100%);
  --tb-public-space-1:.35rem;
  --tb-public-space-2:.65rem;
  --tb-public-space-3:1rem;
  --tb-public-space-4:1.35rem;
  --tb-public-space-5:1.8rem;
  --tb-public-card-title:clamp(1.45rem,2vw,1.75rem);
  --tb-public-body:.94rem;
  --tb-public-meta:.84rem;
  --tb-public-content-max:1180px;
}

/* Events is the first production consumer of the shared public layer. */
.public-theme.events-page .event-meta-symbols{
  position:absolute;
  width:0;
  height:0;
  overflow:hidden;
}

.public-theme.events-page .events-page-main{
  color:var(--tb-public-text);
  background:linear-gradient(100deg,var(--tb-public-page-deep),var(--tb-public-page) 48%,#0a0b0b);
}

.public-theme.events-page .events-page-intro{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:clamp(2.2rem,4.5vw,3.6rem) 0 clamp(2rem,3.4vw,2.75rem);
  border-color:var(--tb-public-border-soft);
  background:#050606;
}

.public-theme.events-page .events-page-intro:before,
.public-theme.events-page .events-page-intro:after{
  position:absolute;
  inset:0;
  z-index:-1;
  content:"";
  pointer-events:none;
}

.public-theme.events-page .events-page-intro:before{
  z-index:-2;
  background-image:url("/images/categories/throttlebuzz-category-runs-routes-640.webp?v=f550d51cc5dd");
  background-position:right center;
  background-size:min(840px,65vw) auto;
  background-repeat:no-repeat;
  filter:var(--tb-public-masthead-image-filter);
  opacity:var(--tb-public-masthead-image-opacity);
}

.public-theme.events-page .events-page-intro:after{
  background:var(--tb-public-masthead-image-fade);
}

.public-theme.events-page .events-page-intro>.shell{
  position:relative;
  z-index:1;
}

.public-theme.events-page .events-page-intro h1{
  width:72%;
  max-width:72%;
  margin-bottom:.45rem;
  color:var(--tb-public-text);
  font-family:var(--tb-public-heading-font);
  font-size:clamp(3.15rem,5vw,4.5rem);
  font-weight:900;
  line-height:.94;
  letter-spacing:-.035em;
  text-transform:none;
  text-wrap:balance;
  text-shadow:0 3px 18px #000d;
}

.public-theme.events-page .events-page-intro>div>p:not(.eyebrow){
  margin-bottom:0;
  max-width:52rem;
  color:var(--tb-public-text);
  font-size:clamp(1rem,1.6vw,1.16rem);
  line-height:1.45;
}

.public-theme.events-page .events-page-intro .eyebrow{
  margin-bottom:.45rem;
  color:var(--tb-public-accent-bright);
  font:900 .82rem/1.25 Arial,Helvetica,sans-serif;
  letter-spacing:.12em;
}

.public-theme.events-page .events-location-context,
.public-theme.events-page .events-filter-panel{
  border-color:var(--tb-public-border-soft);
  border-radius:var(--tb-public-radius-sm);
  background:var(--tb-public-surface-deep);
  box-shadow:none;
}

.public-theme.events-page .events-location-context{
  margin-top:var(--tb-public-space-5);
  padding:var(--tb-public-space-4);
  border-top:2px solid #5b2a18;
}

.public-theme.events-page .events-location-context h2{
  color:var(--tb-public-text);
  text-wrap:balance;
}

.public-theme.events-page .events-location-context>div>p:not(.eyebrow):not(.sr-only){
  color:var(--tb-public-text-muted);
}

.public-theme.events-page .events-filter-panel{
  margin-top:.75rem;
  padding:.75rem;
}

.public-theme.events-page .events-filter-title{
  margin-bottom:.45rem;
  letter-spacing:.1em;
}

.public-theme.events-page .event-search-form{
  gap:.5rem;
  margin-bottom:.5rem;
  padding-bottom:.5rem;
  border-bottom:0;
}

.public-theme.events-page .events-filter-controls{
  gap:.5rem;
}

.public-theme.events-page .event-search-field,
.public-theme.events-page .event-filter-field{
  gap:.2rem;
}

.public-theme.events-page .events-filter-title,
.public-theme.events-page .event-search-field span,
.public-theme.events-page .event-filter-field span{
  color:var(--tb-public-text-secondary);
}

.public-theme.events-page .event-search-field input,
.public-theme.events-page .event-filter-field select,
.public-theme.events-page .event-filter-toggle,
.public-theme.events-page .event-filter-clear,
.public-theme.events-page .event-filter-browse-all,
.public-theme.events-page .event-search-submit,
.public-theme.events-page .event-search-clear,
.public-theme.events-page .events-filters-toggle{
  border-color:var(--tb-public-control-border);
  border-radius:var(--tb-public-radius-sm);
  color:var(--tb-public-text);
  background:var(--tb-public-control);
}

.public-theme.events-page .event-search-field input{
  min-height:44px;
  padding-inline:12px;
}

.public-theme.events-page .event-search-submit,
.public-theme.events-page .events-filters-toggle{
  border-color:#783017;
  background:#241008;
}

.public-theme.events-page .event-search-submit:hover,
.public-theme.events-page .event-search-clear:hover,
.public-theme.events-page .event-filter-browse-all:hover,
.public-theme.events-page .event-filter-toggle:hover,
.public-theme.events-page .event-filter-clear:hover,
.public-theme.events-page .events-filters-toggle:hover{
  border-color:var(--tb-public-accent-bright);
  color:#fff;
  background:var(--tb-public-control-hover);
}

.public-theme.events-page :is(input,select,button,a):focus-visible{
  outline-color:var(--tb-public-focus);
}

.public-theme.events-page .events-result-count{
  margin-top:.5rem;
  color:var(--tb-public-accent-bright);
}

.public-theme.events-page .events-directory{
  padding-block:var(--tb-public-space-5);
}

.public-theme.events-page .events-grid{
  align-items:start;
  gap:22px;
}

.public-theme.events-page .event-detail-card{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  min-width:0;
  min-height:0;
  align-self:start;
  overflow:hidden;
  padding:0;
  border:1px solid var(--tb-public-border);
  border-radius:var(--tb-public-radius-md);
  background:var(--tb-public-surface);
  box-shadow:var(--tb-public-shadow);
}

.public-theme.events-page .event-card-primary-link{
  display:block;
  color:inherit;
  text-decoration:none;
}

.public-theme.events-page .event-card-primary-link:focus-visible{
  outline:3px solid var(--tb-public-focus);
  outline-offset:-3px;
}

.public-theme.events-page .event-detail-card:hover,
.public-theme.events-page .event-detail-card:focus-within{
  border-color:#7b371f;
  box-shadow:0 15px 34px #000a,inset 0 0 0 1px #ff5b1a38;
}

.public-theme.events-page .event-card-media{
  position:relative;
  min-height:112px;
  overflow:hidden;
  border-bottom:1px solid var(--tb-public-border-soft);
  background:linear-gradient(135deg,#22140f,#0b0d0d 64%);
}

.public-theme.events-page .event-card-media--no-artwork{
  min-height:104px;
  background:
    linear-gradient(105deg,#21130e 0 18%,transparent 18%),
    linear-gradient(135deg,#101212,#090a0a);
}

.public-theme.events-page .event-card-image{
  width:100%;
  max-height:none;
  margin:0;
  border:0;
  aspect-ratio:16/8.5;
  background:#090a0a;
}

.public-theme.events-page .event-card-image.content-image-frame:after{
  background:linear-gradient(180deg,#0000 58%,#0007);
}

.public-theme.events-page .event-card-media time{
  position:absolute;
  z-index:3;
  top:12px;
  left:12px;
  width:70px;
  height:84px;
  padding:7px 5px 6px;
  border:1px solid #5e3120;
  border-top:3px solid var(--tb-public-accent);
  border-radius:3px;
  color:var(--tb-public-text);
  background:var(--tb-public-surface-raised);
  box-shadow:0 8px 18px #000b;
  line-height:1;
}

.public-theme.events-page .event-card-media time span{
  color:var(--tb-public-accent-bright);
  font-size:.72rem;
  letter-spacing:.08em;
}

.public-theme.events-page .event-card-media time b{
  margin:4px 0 3px;
  color:#fff;
  font-size:2rem;
  line-height:.9;
}

.public-theme.events-page .event-card-media time small{
  color:var(--tb-public-text-secondary);
  font-size:.61rem;
  letter-spacing:.08em;
}

.public-theme.events-page .event-card-body{
  min-width:0;
  padding:0 var(--tb-public-space-4) .55rem;
  overflow-wrap:normal;
  word-break:normal;
}

.public-theme.events-page .event-detail-card h2{
  margin:0;
  padding:.8rem var(--tb-public-space-4) .28rem;
  color:var(--tb-public-text);
  font-family:Arial,Helvetica,sans-serif;
  font-size:var(--tb-public-card-title);
  font-weight:800;
  line-height:1.1;
  letter-spacing:-.02em;
  text-transform:none;
  text-wrap:balance;
}

.public-theme.events-page .event-detail-card h2 a{
  color:inherit;
  text-decoration:none;
}

.public-theme.events-page .event-detail-card h2 a:hover{
  color:#fff;
}

.public-theme.events-page .event-card-location{
  display:flex;
  align-items:center;
  gap:.38rem;
  margin:0;
  color:var(--tb-public-text);
  font:700 .9rem/1.25 Arial,sans-serif;
}

.public-theme.events-page .event-location-icon{
  width:.78rem;
  height:.92rem;
  flex:0 0 auto;
  color:#f1efea;
}

.public-theme.events-page .event-card-body>.localization-tier{
  display:block;
  max-width:100%;
  margin:.16rem 0 0;
  padding:0;
  border:0;
  color:var(--tb-public-accent-bright);
  background:transparent;
  font:900 .8rem/1.3 Arial,Helvetica,sans-serif;
  letter-spacing:.035em;
  overflow-wrap:normal;
  word-break:normal;
}

.public-theme.events-page .event-card-meta{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  justify-content:flex-start;
  gap:.22rem .55rem;
  margin:.26rem 0 0;
  padding-top:0;
  border-top:0;
}

.public-theme.events-page .event-card-meta>div{
  display:flex;
  min-width:0;
  align-items:center;
  gap:.24rem;
  padding:0;
  border:0;
  font-family:Arial,sans-serif;
}

.public-theme.events-page .event-card-meta dt{
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  clip-path:inset(50%);
  white-space:nowrap;
}

.public-theme.events-page .event-card-meta dd{
  min-width:0;
  margin:0;
  color:var(--tb-public-text-secondary);
  font-size:var(--tb-public-meta);
  line-height:1.35;
  overflow-wrap:normal;
  white-space:nowrap;
}

.public-theme.events-page .event-card-meta time{
  display:inline;
  width:auto;
  height:auto;
  padding:0;
  border:0;
  color:inherit;
  background:transparent;
  box-shadow:none;
  font:inherit;
  line-height:inherit;
}

.public-theme.events-page .event-card-meta .event-kind-fact{
  margin-left:0;
}

.public-theme.events-page .event-meta-icon{
  width:.82rem;
  height:.82rem;
  flex:0 0 auto;
  color:#f1efea;
}

.public-theme.events-page .event-card-meta .event-kind-fact dd{
  padding:.26rem .5rem;
  border:1px solid #484c4c;
  border-radius:var(--tb-public-radius-sm);
  color:#e9e7e0;
  background:var(--tb-public-surface-raised);
  font-size:.65rem;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  white-space:nowrap;
}

.public-theme.events-page .event-detail-card .event-description{
  display:-webkit-box;
  overflow:hidden;
  margin:.5rem 0 0;
  color:var(--tb-public-text-secondary);
  font:var(--tb-public-body)/1.48 Arial,sans-serif;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
}

.public-theme.events-page .event-card-cta{
  position:relative;
  display:flex;
  width:calc(100% - (2 * var(--tb-public-space-4)));
  min-height:44px;
  align-items:center;
  justify-content:center;
  margin:0 var(--tb-public-space-4) var(--tb-public-space-4);
  border:0;
  border-radius:0;
  color:#fff;
  background:linear-gradient(to bottom,transparent 5px,var(--tb-public-accent-action) 5px,var(--tb-public-accent-action) calc(100% - 5px),transparent calc(100% - 5px));
  font:800 .88rem/1 Arial,Helvetica,sans-serif;
  letter-spacing:.045em;
  text-align:center;
  text-decoration:none;
  text-transform:uppercase;
  box-shadow:none;
}

.public-theme.events-page .event-card-cta:hover{
  color:#fff;
  background:linear-gradient(to bottom,transparent 5px,var(--tb-public-accent-action-hover) 5px,var(--tb-public-accent-action-hover) calc(100% - 5px),transparent calc(100% - 5px));
}

.public-theme.events-page .submit-event-panel{
  border-color:#4b2a1f;
  border-radius:var(--tb-public-radius-md);
  background:var(--tb-public-surface-deep);
}

@media(max-width:850px){
  .public-theme.events-page .events-grid{gap:18px}
  .public-theme.events-page .event-card-image{aspect-ratio:16/8.5}
  .public-theme.events-page .events-location-context{display:grid}
  .public-theme.events-page .events-location-actions{width:100%;justify-content:flex-start}
}

@media(min-width:651px){
  .public-theme.events-page .event-search-submit{
    border-color:var(--tb-public-accent-bright);
    color:#fff;
    background:var(--tb-public-accent-action);
  }
}

@media(max-width:650px){
  .public-theme{
    --tb-public-card-title:1.42rem;
    --tb-public-body:.92rem;
    --tb-public-meta:.82rem;
  }

  .public-theme.events-page .events-page-intro{
    padding:1.55rem 0 1.4rem;
  }

  .public-theme.events-page .events-page-intro:before{
    background-position:right center;
    background-size:auto 112%;
    opacity:var(--tb-public-masthead-image-opacity-mobile);
  }

  .public-theme.events-page .events-page-intro h1{
    width:70%;
    max-width:70%;
    font-size:clamp(2.1rem,9vw,2.4rem);
    line-height:.94;
    text-wrap:nowrap;
  }

  .public-theme.events-page .events-page-intro>div>p:not(.eyebrow){
    max-width:78%;
    font-size:.97rem;
    line-height:1.42;
  }

  .public-theme.events-page .events-location-context{
    margin-top:14px;
    padding:14px;
  }

  .public-theme.events-page .events-filter-panel{
    padding:10px;
  }

  .public-theme.events-page .event-search-form{
    gap:8px;
  }

  .public-theme.events-page .events-secondary-filters{
    margin-top:8px;
    padding-top:8px;
    border-color:var(--tb-public-border-soft);
  }

  .public-theme.events-page .events-directory{
    padding-block:18px;
  }

  .public-theme.events-page .event-detail-card{
    border-radius:6px;
  }

  .public-theme.events-page .event-card-media{
    min-height:94px;
  }

  .public-theme.events-page .event-card-image{
    aspect-ratio:16/8.5;
  }

  .public-theme.events-page .event-card-media time{
    top:9px;
    left:9px;
    width:60px;
    height:72px;
    padding:6px 4px 5px;
  }

  .public-theme.events-page .event-card-media time b{
    font-size:1.66rem;
  }

  .public-theme.events-page .event-card-body{
    padding:0 14px 7px;
  }

  .public-theme.events-page .event-detail-card h2{
    padding:11px 14px .28rem;
  }

  .public-theme.events-page .event-card-meta{
    align-items:center;
    gap:.22rem .46rem;
  }

  .public-theme.events-page .event-card-meta>div{
    flex:0 1 auto;
    display:flex;
    gap:.25rem;
  }

  .public-theme.events-page .event-card-meta .event-kind-fact{
    flex:0 0 auto;
    align-self:center;
    margin-left:0;
    max-width:100%;
  }

  .public-theme.events-page .event-detail-card .event-description{
    margin-top:.45rem;
    -webkit-line-clamp:3;
  }

  .public-theme.events-page .event-card-cta{
    width:calc(100% - 28px);
    min-height:44px;
    margin:0 14px 9px;
  }
}

@media(max-width:480px){
  .public-theme.events-page .event-card-meta{
    display:flex;
    flex-wrap:wrap;
    font-size:.78rem;
  }

  .public-theme.events-page .event-card-meta>div{
    min-width:0;
  }

  .public-theme.events-page .event-card-meta .event-kind-fact{
    margin-left:0;
  }
}

@media(prefers-reduced-motion:reduce){
  .public-theme.events-page .event-detail-card:hover,
  .public-theme.events-page .event-detail-card:focus-within{
    transform:none;
  }
}

/*
 * Broader public interior rollout.
 *
 * These rules remain opt-in through .public-theme-interior. The homepage,
 * submission flows, legacy Roads templates, and private surfaces do not load
 * this layer as a page theme.
 */
.public-theme-interior{
  --tb-section-masthead-image:none;
  color:var(--tb-public-text);
  background:linear-gradient(100deg,var(--tb-public-page-deep),var(--tb-public-page) 48%,#0a0b0b);
}

.public-theme-shops{--tb-section-masthead-image:url("/images/categories/throttlebuzz-category-shops-640.webp?v=db0c07b2139b")}
.public-theme-stops{--tb-section-masthead-image:url("/images/categories/throttlebuzz-category-runs-routes-640.webp?v=f550d51cc5dd")}
.public-theme-rides{--tb-section-masthead-image:url("/images/categories/throttlebuzz-category-roads-640.webp?v=bd31ab0e64e9")}
.public-theme-articles{--tb-section-masthead-image:url("/images/categories/throttlebuzz-category-articles-640.webp?v=b43134e68097")}

.public-theme-interior :is(a,button,input,select,textarea):focus-visible{
  outline:3px solid var(--tb-public-focus);
  outline-offset:3px;
}

.public-theme-interior :is(.shops-page-main,.shop-detail-main,.ride-article-detail-main,.articles-page-main,.article-detail-main){
  color:var(--tb-public-text);
  background:linear-gradient(100deg,var(--tb-public-page-deep),var(--tb-public-page) 48%,#0a0b0b);
}

.public-theme-interior .collection-masthead{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:clamp(2.25rem,4.5vw,3.75rem) 0 clamp(2rem,3.5vw,2.8rem);
  border-bottom:1px solid var(--tb-public-border-soft);
  background:#050606;
}

.public-theme-interior .collection-masthead:before,
.public-theme-interior .collection-masthead:after{
  position:absolute;
  inset:0;
  z-index:-1;
  content:"";
  pointer-events:none;
}

.public-theme-interior .collection-masthead:before{
  z-index:-2;
  background-image:var(--tb-section-masthead-image);
  background-position:right center;
  background-size:min(760px,62vw) auto;
  background-repeat:no-repeat;
  filter:var(--tb-public-masthead-image-filter);
  opacity:var(--tb-public-masthead-image-opacity);
}

.public-theme-interior .collection-masthead:after{
  background:var(--tb-public-masthead-image-fade);
}

.public-theme-interior .collection-masthead>.shell,
.public-theme-interior .collection-masthead>h1,
.public-theme-interior .collection-masthead>p{
  position:relative;
  z-index:1;
}

.public-theme-interior .collection-masthead .eyebrow{
  margin:0 0 .45rem;
  color:var(--tb-public-accent-bright);
  font:900 .8rem/1.3 Arial,Helvetica,sans-serif;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.public-theme-interior .collection-masthead h1{
  width:min(72%,880px);
  margin:0 0 .55rem;
  color:var(--tb-public-text);
  font-family:var(--tb-public-heading-font);
  font-size:clamp(3rem,5vw,4.5rem);
  font-weight:900;
  line-height:.94;
  letter-spacing:-.035em;
  text-transform:none;
  text-wrap:balance;
}

.public-theme-interior .collection-masthead>.shell>p:not(.eyebrow),
.public-theme-interior .collection-masthead>p:not(.eyebrow){
  max-width:48rem;
  margin:0;
  color:var(--tb-public-text-secondary);
  font:1rem/1.5 Arial,Helvetica,sans-serif;
}

/* The Ride collection masthead sits inside its established content shell. */
.public-theme-rides .rides-editorial-page{
  min-height:70vh;
  padding-block:clamp(2rem,4vw,3.5rem);
}

.public-theme-rides .rides-editorial-page>.collection-masthead{
  margin-bottom:var(--tb-public-space-5);
  padding-inline:clamp(1.25rem,4vw,3rem);
  border:1px solid var(--tb-public-border-soft);
  border-radius:var(--tb-public-radius-md);
}

/* Collection controls and truthful empty/location states. */
.public-theme-interior :is(.shops-browse-tools,.shops-location-context,.shops-directory-status,.articles-directory-status,.stops-directory-status){
  border-color:var(--tb-public-border);
  border-radius:var(--tb-public-radius-sm);
  color:var(--tb-public-text-secondary);
  background:var(--tb-public-surface-deep);
  box-shadow:none;
}

.public-theme-interior .shops-browse-tools{
  margin-bottom:var(--tb-public-space-3);
  padding:.7rem .9rem;
}

.public-theme-interior .shops-browse-tools p,
.public-theme-interior .shops-location-context p{
  color:var(--tb-public-text-muted);
}

.public-theme-interior .shops-location-context{
  border-left:3px solid var(--tb-public-accent);
}

.public-theme-interior .shops-location-context h2{
  color:var(--tb-public-text);
}

.public-theme-interior :is(.text-button,.shop-back-link,.ride-article-back-link,.article-back-link){
  color:var(--tb-public-accent-bright);
}

.public-theme-interior :is(.button,.shop-detail-link,.shop-directory-body>a:last-child){
  border-color:var(--tb-public-accent-action);
}

/* Shared collection cards retain their native information architecture. */
.public-theme-interior :is(.shops-grid,.roads-grid,.articles-grid){
  align-items:start;
  gap:22px;
}

.public-theme-interior :is(.shop-directory-card,.road-directory-card,.article-directory-card){
  display:flex;
  min-width:0;
  align-self:start;
  flex-direction:column;
  overflow:hidden;
  border:1px solid var(--tb-public-border);
  border-radius:var(--tb-public-radius-md);
  color:var(--tb-public-text);
  background:var(--tb-public-surface);
  box-shadow:var(--tb-public-shadow);
}

.public-theme-interior :is(.shop-directory-card,.road-directory-card,.article-directory-card):hover,
.public-theme-interior :is(.shop-directory-card,.road-directory-card,.article-directory-card):focus-within{
  border-color:#7b371f;
  box-shadow:0 15px 34px #000a,inset 0 0 0 1px #ff6a1f38;
}

.public-theme-interior :is(.shop-directory-image,.article-directory-image){
  width:100%;
  border-bottom:1px solid var(--tb-public-border-soft);
  object-fit:cover;
}

.public-theme-interior .ride-directory-image{
  width:100%;
  border-bottom:1px solid var(--tb-public-border-soft);
  background:var(--tb-public-surface-deep);
  object-fit:contain;
}

.public-theme-interior :is(.shop-directory-placeholder,.article-directory-placeholder,.road-directory-placeholder){
  border-bottom:1px solid var(--tb-public-border-soft);
  background-color:var(--tb-public-surface-deep);
}

.public-theme-interior :is(.shop-directory-body,.road-directory-body,.article-directory-body){
  display:flex;
  min-width:0;
  flex:1 1 auto;
  flex-direction:column;
  padding:var(--tb-public-space-4);
}

.public-theme-interior :is(.shop-directory-body,.road-directory-body,.article-directory-body) h2{
  margin:0 0 .45rem;
  color:var(--tb-public-text);
  font-family:Arial,Helvetica,sans-serif;
  font-size:var(--tb-public-card-title);
  font-weight:800;
  line-height:1.1;
  letter-spacing:-.02em;
  text-transform:none;
  text-wrap:balance;
}

.public-theme-interior :is(.shop-directory-body,.road-directory-body,.article-directory-body) h2 a{
  color:inherit;
  text-decoration:none;
}

.public-theme-interior :is(.shop-directory-body,.road-directory-body,.article-directory-body) h2 a:hover{
  color:#fff;
}

.public-theme-interior .shop-directory-location{
  margin:.05rem 0 .55rem;
  color:var(--tb-public-text);
  font:800 var(--tb-public-meta)/1.35 Arial,Helvetica,sans-serif;
  letter-spacing:.035em;
  text-transform:uppercase;
}

.public-theme-interior .road-directory-body .location{
  margin:.05rem 0 .55rem;
  color:var(--tb-public-accent-bright);
  font:800 var(--tb-public-meta)/1.35 Arial,Helvetica,sans-serif;
  letter-spacing:.035em;
  text-transform:uppercase;
}

.public-theme-shops .shop-directory-distance{
  margin:.05rem 0 .55rem;
  color:var(--tb-public-accent-bright);
  font:800 var(--tb-public-meta)/1.35 Arial,Helvetica,sans-serif;
  letter-spacing:.035em;
  text-transform:uppercase;
}

.public-theme-interior .road-directory-body .location:before,
.public-theme-interior :is(.shop-detail-location,.ride-article-context):before{
  display:inline-block;
  width:.72rem;
  height:.82rem;
  margin-right:.35rem;
  content:"";
  vertical-align:-.08rem;
  background:currentColor;
  clip-path:path("M6 0a6 6 0 0 0-6 6c0 4.5 6 12 6 12s6-7.5 6-12a6 6 0 0 0-6-6Zm0 8.4A2.4 2.4 0 1 1 6 3.6a2.4 2.4 0 0 1 0 4.8Z");
}

.public-theme-interior :is(.shop-directory-description,.road-directory-body>p:not(.location),.article-directory-excerpt){
  color:var(--tb-public-text-secondary);
  font:var(--tb-public-body)/1.55 Arial,Helvetica,sans-serif;
}

.public-theme-interior .article-directory-excerpt{
  display:-webkit-box;
  overflow:hidden;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:5;
}

.public-theme-interior :is(.shop-directory-facts,.road-directory-facts){
  border-color:var(--tb-public-border-soft);
}

.public-theme-interior :is(.shop-directory-facts,.road-directory-facts)>div{
  border-color:var(--tb-public-border-soft);
}

.public-theme-interior :is(.shop-directory-facts,.road-directory-facts) dt,
.public-theme-interior .article-directory-byline{
  color:var(--tb-public-accent-bright);
}

.public-theme-interior :is(.shop-directory-facts,.road-directory-facts) dd{
  color:var(--tb-public-text-secondary);
}

.public-theme-interior .shop-directory-services li{
  border-color:#68402f;
  border-radius:var(--tb-public-radius-sm);
  color:var(--tb-public-text-secondary);
  background:var(--tb-public-surface-raised);
}

.public-theme-interior :is(.shop-detail-link,.shop-directory-body>a:last-child,.road-directory-body>.button){
  display:flex;
  width:100%;
  min-height:44px;
  align-items:center;
  justify-content:center;
  margin:auto 0 0;
  padding:.55rem .8rem;
  border:0;
  border-radius:2px;
  color:#fff;
  background:var(--tb-public-accent-action);
  font:800 .82rem/1 Arial,Helvetica,sans-serif;
  letter-spacing:.045em;
  text-align:center;
  text-decoration:none;
  text-transform:uppercase;
}

.public-theme-interior :is(.shop-detail-link,.shop-directory-body>a:last-child,.road-directory-body>.button):hover{
  color:#fff;
  background:var(--tb-public-accent-action-hover);
}

.public-theme-interior .shop-directory-links{
  margin-top:auto;
  padding-top:.4rem;
}

.public-theme-stops .shop-directory-category{
  margin:0 0 .45rem;
  color:var(--tb-public-text-secondary);
  font:800 .78rem/1.35 Arial,Helvetica,sans-serif;
  letter-spacing:.035em;
  text-transform:uppercase;
}

.public-theme-stops .shop-directory-location{
  margin:0 0 .2rem;
  color:var(--tb-public-text);
}

.public-theme-stops .stop-directory-distance{
  margin:0 0 .75rem;
  color:var(--tb-public-accent-bright);
  font:800 var(--tb-public-meta)/1.35 Arial,Helvetica,sans-serif;
  letter-spacing:.035em;
  text-transform:uppercase;
}

.public-theme-stops .stop-directory-description{
  display:-webkit-box;
  overflow:hidden;
  margin:0 0 1rem;
  color:var(--tb-public-text-secondary);
  font:var(--tb-public-body)/1.55 Arial,Helvetica,sans-serif;
  white-space:normal;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
}

.public-theme-interior .shop-directory-link{
  color:var(--tb-public-text-secondary);
  font-size:.74rem;
}

/* Detail pages preserve full artwork and long-form structures. */
.public-theme-interior :is(.shop-detail,.ride-article-detail,.article-detail){
  padding-bottom:var(--tb-public-space-5);
}

.public-theme-interior :is(.shop-detail-header,.ride-article-header,.article-detail-header){
  padding:var(--tb-public-space-5);
  border:1px solid var(--tb-public-border);
  border-left:4px solid var(--tb-public-accent);
  border-radius:var(--tb-public-radius-md);
  background:var(--tb-public-surface);
  box-shadow:var(--tb-public-shadow);
}

.public-theme-interior :is(.shop-detail-header,.ride-article-header,.article-detail-header) h1{
  color:var(--tb-public-text);
  font-family:Arial,Helvetica,sans-serif;
  font-weight:800;
  line-height:.98;
  letter-spacing:-.035em;
  text-wrap:balance;
}

.public-theme-interior .shop-detail-location{
  color:var(--tb-public-text);
}

.public-theme-interior :is(.ride-article-context,.article-detail-byline){
  color:var(--tb-public-accent-bright);
}

.public-theme-interior :is(.shop-detail-feature-image,.article-detail-feature-image){
  border-color:var(--tb-public-accent);
  border-radius:var(--tb-public-radius-sm);
  background:var(--tb-public-surface-deep);
}

.public-theme-interior .ride-article-artwork{
  border-color:var(--tb-public-border);
  border-bottom-color:var(--tb-public-accent);
  border-radius:var(--tb-public-radius-md);
  background:radial-gradient(circle at 50% 45%,#2c1c16 0,transparent 70%),var(--tb-public-surface-deep);
}

.public-theme-interior :is(.shop-detail-facts,.ride-detail-facts){
  overflow:hidden;
  border:1px solid var(--tb-public-border);
  border-radius:var(--tb-public-radius-sm);
  background:var(--tb-public-surface);
}

.public-theme-interior :is(.shop-detail-facts,.ride-detail-facts)>div{
  padding:.75rem .85rem;
  border-color:var(--tb-public-border-soft);
}

.public-theme-interior :is(.shop-detail-facts,.ride-detail-facts) dt{
  color:var(--tb-public-accent-bright);
}

.public-theme-interior :is(.shop-detail-facts,.ride-detail-facts) dd{
  color:var(--tb-public-text-secondary);
}

.public-theme-interior :is(.shop-detail-description,.ride-article-summary,.ride-article-body,.article-detail-content){
  color:var(--tb-public-text-secondary);
}

.public-theme-stops.stop-detail-page .shop-detail-description{
  color:var(--tb-public-text-secondary);
  font:1rem/1.7 Arial,Helvetica,sans-serif;
}

.public-theme-interior :is(.ride-article-body,.article-detail-content) :is(h2,h3,h4,h5,h6,strong){
  color:var(--tb-public-text);
}

.public-theme-interior :is(.ride-article-body,.article-detail-content) a,
.public-theme-interior :is(.shop-detail-source,.shop-detail-facts a){
  color:var(--tb-public-accent-bright);
}

.public-theme-interior :is(.ride-article-body,.article-detail-content) blockquote{
  border-color:var(--tb-public-accent);
  color:var(--tb-public-text-secondary);
}

.public-theme-interior .site-footer{
  border-color:var(--tb-public-border-soft);
}

@media(max-width:900px){
  .public-theme-interior :is(.shops-grid,.roads-grid,.articles-grid){gap:18px}
}

@media(max-width:650px){
  .public-theme-interior .collection-masthead{
    padding:1.65rem 0 1.45rem;
  }

  .public-theme-interior .collection-masthead:before{
    background-position:right center;
    background-size:auto 112%;
    opacity:var(--tb-public-masthead-image-opacity-mobile);
  }

  .public-theme-interior .collection-masthead h1{
    width:72%;
    font-size:clamp(2rem,9vw,2.7rem);
    line-height:.94;
  }

  .public-theme-interior .collection-masthead>.shell>p:not(.eyebrow),
  .public-theme-interior .collection-masthead>p:not(.eyebrow){
    max-width:78%;
    font-size:.96rem;
    line-height:1.42;
  }

  .public-theme-interior .collection-masthead .eyebrow{
    max-width:76%;
    font-size:.7rem;
  }

  .public-theme-rides .rides-editorial-page{
    padding-block:1rem 1.5rem;
  }

  .public-theme-rides .rides-editorial-page>.collection-masthead{
    margin-inline:0;
    padding-inline:1rem;
  }

  .public-theme-interior :is(.shop-directory-body,.road-directory-body,.article-directory-body){
    padding:1rem;
  }

  .public-theme-interior :is(.shop-detail-header,.ride-article-header,.article-detail-header){
    padding:1.2rem 1rem;
  }

  .public-theme-interior :is(.shop-detail-header,.ride-article-header,.article-detail-header) h1{
    font-size:clamp(2rem,10.5vw,3.2rem);
  }

  .public-theme-interior .article-directory-excerpt{
    -webkit-line-clamp:4;
  }
}
