/* Spliff Nation mobile-first visual and conversion system — v2.0.20 */

/* Keep the footer brand visually centered on every public template. */
.sn-universal-footer {
  position: relative !important;
  padding-top: 112px !important;
}

.sn-universal-footer .sn-footer-brand > a:first-child {
  display: flex !important;
  position: absolute !important;
  top: 30px !important;
  left: 50% !important;
  width: min(180px, 60vw) !important;
  justify-content: center !important;
  transform: translateX(-50%) !important;
}

.sn-universal-footer .sn-footer-brand > a:first-child img {
  display: block !important;
  width: min(180px, 60vw) !important;
  height: auto !important;
  margin-inline: auto !important;
}

/* Location photography must retain its original color. The location-page
   stylesheet previously desaturated every card and reduced image opacity. */
.sn-location-main .sn-location-card img,
.sn-location-main .location-card img,
.sn-citywide-location-hub .location-image img {
  filter: none !important;
  opacity: 1 !important;
}

/* The citywide hub intentionally reuses the homepage's own components and
   section order. Only extend its call row for the additional phone action. */
.sn-citywide-location-hub .statement .cta-row {
  flex-wrap: wrap;
}

.sn-citywide-location-hub .statement .cta-row .btn {
  flex: 1 1 220px;
}

.sn-citywide-location-hub .product-image em {
  background: #c9ff2f;
  color: #050505;
}

.sn-citywide-location-hub .location-copy h3 a {
  text-wrap: balance;
}

/* Keep the global header fully visible and predictable across every template. */
.sn-universal-header,
.sn-universal-header .sn-global-utility-inner,
.sn-universal-header .sn-global-nav-inner,
.sn-universal-header .sn-menu-toggle,
.sn-universal-header .sn-global-wordmark,
.sn-universal-header .sn-global-nav-actions {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}

.sn-universal-header img {
  opacity: 1 !important;
}

/* Give every standard landing and commerce archive the same decisive type rhythm. */
.sn-landing .sn-page-heading h1,
.sn-commerce-main .sn-commerce-heading h1 {
  max-width: 1100px;
  margin-inline: auto;
  text-wrap: balance;
}

.sn-landing .sn-page-hero .sn-eyebrow,
.sn-landing .sn-page-hero .sn-kicker {
  color: #c9ff2f !important;
}

.sn-landing .sn-page-hero h2,
.sn-landing .sn-guide-intro h2,
.sn-landing .sn-guide-section h2 {
  text-wrap: balance;
}

/* Convert informational search visits without turning articles into sales pages. */
body.single-post .hero-section,
body.single-post .entry-content {
  width: min(100% - 40px, 820px) !important;
  margin-inline: auto !important;
}

body.single-post h1.page-title {
  max-width: 780px;
  font-size: clamp(38px, 5vw, 64px) !important;
  line-height: 1.02 !important;
  letter-spacing: -.035em !important;
  text-wrap: balance;
}

body.single-post .entry-content p,
body.single-post .entry-content li {
  font-size: clamp(17px, 1.5vw, 19px);
  line-height: 1.72;
}

body.single-post .entry-content h2 {
  margin-top: 1.35em;
  font-size: clamp(30px, 4vw, 48px);
  line-height: 1.05;
  letter-spacing: -.025em;
  text-wrap: balance;
}

.sn-editorial-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  width: min(100%, 820px);
  margin: 0 auto 34px;
  padding: 14px;
  border: 1px solid #dfe3e7;
  background: #fff;
}

.sn-editorial-action {
  display: flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  padding: 12px 14px;
  border: 2px solid #0a0a0a;
  color: #0a0a0a !important;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: .04em;
  text-align: center;
  text-decoration: none !important;
}

.sn-editorial-action--primary {
  background: #0a0a0a;
  color: #fff !important;
}

.sn-editorial-action:hover,
.sn-editorial-action:focus-visible {
  background: #c9ff2f;
  color: #050505 !important;
}

@media (max-width: 767px) {
  /* The fixed chat launcher previously covered the final legal line at the
     bottom of the page. Preserve a clear reading/tap zone underneath it. */
  .sn-universal-footer {
    padding-bottom: 84px !important;
  }

  .sn-universal-footer .sn-footer-brand {
    text-align: center !important;
  }

  .sn-universal-footer .sn-footer-copyright,
  .sn-universal-footer .sn-footer-copyright span {
    display: block !important;
    max-width: 100% !important;
    line-height: 1.55 !important;
    overflow-wrap: anywhere !important;
  }

  .sn-landing .sn-page-heading,
  .sn-commerce-main .sn-commerce-heading {
    padding: 20px 18px !important;
  }

  .sn-landing .sn-page-heading h1,
  .sn-commerce-main .sn-commerce-heading h1 {
    font-size: clamp(27px, 7.5vw, 32px) !important;
    line-height: 1 !important;
    letter-spacing: -.025em !important;
  }

  .sn-landing .sn-page-hero,
  .sn-landing .sn-guide-intro {
    padding-inline: 18px !important;
  }

  .sn-landing .sn-page-hero h2,
  .sn-landing .sn-guide-intro h2 {
    font-size: clamp(32px, 9vw, 40px) !important;
    line-height: 1 !important;
    letter-spacing: -.035em !important;
  }

  /* Keep every menu/archive control and product grid inside equal side gutters. */
  .sn-commerce-main .sn-shop-interface {
    width: auto !important;
    max-width: 100% !important;
    margin-inline: 12px !important;
    box-sizing: border-box !important;
  }

  .sn-commerce-main .sn-shop-filter-bar {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow-x: auto !important;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
  }

  .sn-commerce-main .sn-shop-filter-bar::-webkit-scrollbar {
    display: none;
  }

  body.woocommerce-shop .woocommerce-pagination,
  body.tax-product_cat .woocommerce-pagination,
  body.tax-product_brand .woocommerce-pagination,
  body.tax-pa_quantity .woocommerce-pagination {
    width: auto !important;
    max-width: 100% !important;
    margin-inline: 12px !important;
    box-sizing: border-box !important;
  }

  body.woocommerce-shop .woocommerce-pagination ul.page-numbers,
  body.tax-product_cat .woocommerce-pagination ul.page-numbers,
  body.tax-product_brand .woocommerce-pagination ul.page-numbers,
  body.tax-pa_quantity .woocommerce-pagination ul.page-numbers {
    display: flex !important;
    max-width: 100% !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    box-sizing: border-box !important;
  }

  /* The fixed support bubble covered the right-hand product card's primary
     purchase button on the two-column mobile catalog. The global header still
     exposes ordering and support; keep the catalog's purchase controls clear. */
  body.woocommerce-shop #sn-persistent-intercom,
  body.tax-product_cat #sn-persistent-intercom,
  body.tax-product_brand #sn-persistent-intercom,
  body.tax-pa_quantity #sn-persistent-intercom {
    display: none !important;
  }

  /* These campaign heroes were larger than the homepage on mobile. */
  .sn-dc-guide .sn-dcg-hero__content,
  .sn-refer-page .sn-refer-hero__inner {
    padding-top: 58px !important;
    padding-bottom: 44px !important;
    text-align: center !important;
  }

  .sn-dc-guide .sn-dcg-hero h1,
  .sn-refer-page .sn-refer-hero h1 {
    max-width: 100% !important;
    margin-inline: auto !important;
    font-size: clamp(34px, 9.5vw, 38px) !important;
    line-height: .98 !important;
    letter-spacing: -.035em !important;
    text-align: center !important;
    text-wrap: balance;
  }

  .sn-dc-guide .sn-dcg-hero p,
  .sn-refer-page .sn-refer-hero p {
    margin-inline: auto !important;
    font-size: 17px !important;
    line-height: 1.55 !important;
    text-align: center !important;
  }

  body.single-post .ct-container-full {
    padding-top: 28px !important;
  }

  body.single-post .hero-section,
  body.single-post .entry-content {
    width: min(100% - 36px, 820px) !important;
  }

  body.single-post h1.page-title {
    font-size: clamp(32px, 9.4vw, 40px) !important;
    line-height: 1.04 !important;
  }

  body.single-post .entry-meta {
    font-size: 14px !important;
  }

  .sn-editorial-actions {
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin-bottom: 26px;
    padding: 10px;
  }

  .sn-editorial-action--primary {
    grid-column: 1 / -1;
  }

  .sn-editorial-action {
    min-height: 48px;
    padding: 10px 8px;
    font-size: 12px;
  }

  body.woocommerce-shop ul.products li.product .woocommerce-loop-product__title,
  body.tax-product_cat ul.products li.product .woocommerce-loop-product__title,
  body.tax-product_brand ul.products li.product .woocommerce-loop-product__title,
  body.tax-pa_quantity ul.products li.product .woocommerce-loop-product__title {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    line-clamp: 3;
  }

  /* Keep the first screen focused on the destination and its three actions. */
  .sn-location-main .sn-breadcrumb {
    display: none !important;
  }

  .sn-location-main .sn-location-hero {
    display: block !important;
    min-height: 0 !important;
    max-height: none !important;
    height: auto !important;
    padding-top: 330px !important;
    background: #fff !important;
    color: #111 !important;
    overflow: visible !important;
  }

  .sn-location-main .sn-location-hero__video,
  .sn-location-main .sn-location-hero__overlay {
    top: 0 !important;
    right: 0 !important;
    bottom: auto !important;
    left: 0 !important;
    width: 100% !important;
    height: 330px !important;
  }

  .sn-location-main .sn-location-hero__video {
    display: block !important;
    object-fit: cover !important;
    object-position: center center !important;
    pointer-events: none !important;
  }

  .sn-location-main .sn-location-hero__overlay {
    background: linear-gradient(180deg, rgba(0, 0, 0, .08), rgba(0, 0, 0, .38)) !important;
  }

  .sn-location-main .sn-location-hero__content {
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: 26px 20px 22px !important;
    box-sizing: border-box !important;
    background: #fff !important;
    color: #111 !important;
  }

  .sn-location-main .sn-location-hero .sn-eyebrow {
    color: #292929 !important;
    text-align: center !important;
  }

  .sn-location-main .sn-location-hero h1,
  .sn-location-main #sn-location-h1 {
    max-width: 100% !important;
    margin: 10px auto 18px !important;
    font-size: clamp(32px, 9vw, 38px) !important;
    line-height: .96 !important;
    letter-spacing: -.025em !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    color: #080808 !important;
    text-align: center !important;
  }

  .sn-location-main .sn-location-hero__copy {
    display: none !important;
  }

  .sn-location-main .sn-location-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    width: 100% !important;
  }

  .sn-location-main .sn-location-actions .sn-button {
    display: flex !important;
    min-height: 50px !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 12px 16px !important;
    font-size: 14px !important;
    line-height: 1.1 !important;
  }

  .sn-location-main .sn-location-actions .sn-button--light {
    border-color: #080808 !important;
    background: #080808 !important;
    color: #fff !important;
  }

  .sn-location-main .sn-location-actions .sn-button--ghost {
    border-color: #080808 !important;
    background: #fff !important;
    color: #080808 !important;
  }

  .sn-location-main .sn-location-actions .sn-text-link {
    display: flex !important;
    min-height: 40px !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    font-size: 16px !important;
    line-height: 1.1 !important;
    color: #080808 !important;
  }

  .sn-location-main .sn-video-control {
    margin-top: 10px !important;
    color: #080808 !important;
    border-color: #080808 !important;
  }

  .sn-location-main .sn-location-section {
    padding-top: 44px !important;
    padding-bottom: 44px !important;
  }

  .sn-location-main .sn-location-section h2 {
    font-size: clamp(29px, 8vw, 36px) !important;
    line-height: 1.03 !important;
    letter-spacing: -.03em !important;
    text-wrap: balance;
  }

  .sn-location-main .sn-editorial h2,
  .sn-dc-guide .sn-dcg-section h2,
  .sn-dc-guide .sn-dcg-pickup h2 {
    max-width: 100% !important;
    font-size: clamp(29px, 8vw, 36px) !important;
    line-height: 1.03 !important;
    letter-spacing: -.03em !important;
    text-align: center !important;
    text-wrap: balance;
  }

  .sn-location-main .sn-location-section .sn-location-shell,
  .sn-location-main .sn-join .sn-location-shell,
  .sn-location-main .sn-editorial .sn-location-shell {
    width: calc(100% - 28px) !important;
    margin-inline: auto !important;
    box-sizing: border-box !important;
  }

  /* The old horizontal card rail clipped every neighborhood card on phones.
     Use a centered, full-width stack that matches the homepage visual rhythm. */
  .sn-location-main .sn-location-card-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 16px !important;
    width: 100% !important;
    margin: 26px 0 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    scroll-snap-type: none !important;
  }

  .sn-location-main .sn-location-card {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    margin: 0 !important;
    border: 1px solid #1f1f1f !important;
    background: #070707 !important;
    color: #fff !important;
    overflow: hidden !important;
    scroll-snap-align: none !important;
    text-align: center !important;
    box-sizing: border-box !important;
  }

  .sn-location-main .sn-location-card img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 16 / 9 !important;
    object-fit: cover !important;
    object-position: center !important;
  }

  .sn-location-main .sn-location-card > span {
    display: grid !important;
    gap: 8px !important;
    width: 100% !important;
    padding: 20px 16px 18px !important;
    text-align: center !important;
    box-sizing: border-box !important;
  }

  .sn-location-main .sn-location-card strong,
  .sn-location-main .sn-location-card small,
  .sn-location-main .sn-location-card em {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    text-align: center !important;
  }

  .sn-location-main .sn-location-card strong {
    color: #fff !important;
    font-size: clamp(21px, 6vw, 25px) !important;
    line-height: 1.05 !important;
    letter-spacing: -.02em !important;
  }

  .sn-location-main .sn-location-card small {
    color: #d7d7d7 !important;
    font-size: 15px !important;
    line-height: 1.4 !important;
  }

  .sn-location-main .sn-location-card em {
    margin-top: 6px !important;
    color: #c9ff2f !important;
    font-size: 13px !important;
    font-style: normal !important;
    font-weight: 800 !important;
    letter-spacing: .09em !important;
  }

  .sn-citywide-location-hub .sn-location-identity,
  .sn-citywide-location-hub .sn-stat-strip {
    display: none !important;
  }

  .sn-citywide-location-hub .sn-other-locations {
    padding-top: 40px !important;
  }

  .sn-citywide-location-hub .sn-other-locations .sn-eyebrow,
  .sn-citywide-location-hub .sn-other-locations h2,
  .sn-citywide-location-hub .sn-other-locations .sn-section-copy {
    margin-inline: auto !important;
    text-align: center !important;
  }

  .sn-citywide-location-hub .sn-other-locations .sn-section-copy {
    max-width: 34ch !important;
  }

  html {
    scroll-padding-top: 112px;
  }

  .sn-location-main [id] {
    scroll-margin-top: 112px;
  }

  /* The two neighborhood landing pages were rendered directly against both
     viewport edges instead of using the site's normal mobile reading column. */
  body.page-id-77300 .entry-content.sn-page-content,
  body.page-id-77301 .entry-content.sn-page-content,
  body.page-id-77071 .entry-content.sn-page-content {
    width: calc(100% - 36px) !important;
    margin-inline: auto !important;
    box-sizing: border-box !important;
  }

  .sn-location-main .sn-lede,
  .sn-location-main .sn-section-copy {
    font-size: 18px !important;
    line-height: 1.5 !important;
  }

  .sn-location-main .sn-stat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .sn-location-main .sn-stat-grid > :last-child {
    grid-column: 1 / -1;
  }

  /* Bring product name, price, options and Add to Cart substantially upward. */
  body.single-product .woocommerce-breadcrumb {
    display: none !important;
  }

  body.single-product div.product .woocommerce-product-gallery {
    margin: 12px 0 10px !important;
  }

  body.single-product div.product .woocommerce-product-gallery__wrapper,
  body.single-product div.product .woocommerce-product-gallery__image {
    min-height: 0 !important;
  }

  body.single-product div.product .woocommerce-product-gallery__image img,
  body.single-product div.product .woocommerce-product-gallery img.wp-post-image {
    width: 100% !important;
    height: 250px !important;
    max-height: 250px !important;
    object-fit: contain !important;
  }

  body.single-product div.product .summary,
  body.single-product div.product .entry-summary {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  body.single-product div.product .summary h1,
  body.single-product div.product h1.product_title {
    margin: 0 0 10px !important;
    font-size: clamp(25px, 7vw, 30px) !important;
    line-height: 1.05 !important;
    letter-spacing: -.025em !important;
    text-wrap: balance;
  }

  body.single-product div.product .summary .price {
    margin: 0 0 12px !important;
    font-size: 25px !important;
    line-height: 1.1 !important;
  }

  body.single-product div.product .woocommerce-product-details__short-description {
    display: none !important;
  }

  body.single-product div.product form.cart,
  body.single-product div.product form.variations_form {
    margin-top: 8px !important;
    margin-bottom: 20px !important;
  }

  body.single-product div.product .single_add_to_cart_button {
    min-height: 54px !important;
    padding: 14px 18px !important;
    font-size: 17px !important;
  }

  body.single-product .woocommerce-tabs {
    width: calc(100% - 36px) !important;
    margin: 26px auto 0 !important;
    padding-top: 18px !important;
    box-sizing: border-box !important;
  }

  body.single-product .woocommerce-tabs .woocommerce-Tabs-panel {
    width: 100% !important;
    margin-inline: auto !important;
    padding: 16px 0 0 !important;
    box-sizing: border-box !important;
  }

  body.single-product .woocommerce-tabs h2,
  body.single-product .woocommerce-tabs h3 {
    max-width: 100% !important;
    margin: 26px auto 14px !important;
    font-size: clamp(23px, 6.8vw, 27px) !important;
    line-height: 1.12 !important;
    letter-spacing: -.02em !important;
    text-align: center !important;
    text-wrap: balance;
  }

  body.single-product .woocommerce-tabs p,
  body.single-product .woocommerce-tabs li {
    font-size: 16px !important;
    line-height: 1.58 !important;
  }

  body.single-product .woocommerce-tabs ul.tabs {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 0 !important;
    width: 100% !important;
    height: auto !important;
    margin: 0 0 16px !important;
    padding: 0 !important;
  }

  body.single-product .woocommerce-tabs ul.tabs li {
    display: flex !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.single-product .woocommerce-tabs ul.tabs li a {
    display: flex !important;
    width: 100% !important;
    min-height: 46px !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 10px 8px !important;
    font-size: 14px !important;
    line-height: 1.1 !important;
    text-align: center !important;
  }

  body.single-product .woocommerce-Tabs-panel ul,
  body.single-product .woocommerce-Tabs-panel ol {
    width: 100% !important;
    margin: 0 0 22px !important;
    padding-left: 24px !important;
    padding-right: 0 !important;
    box-sizing: border-box !important;
  }

  /* Newer product descriptions repeat the title and ordering instructions
     that are already visible directly above the tabs. Remove that duplication. */
  body.single-product .woocommerce-Tabs-panel--description > h2:first-of-type,
  body.single-product .woocommerce-Tabs-panel--description > h2:first-of-type + p,
  body.single-product .woocommerce-Tabs-panel--description > h3:has(+ p),
  body.single-product .woocommerce-Tabs-panel--description > h3 + p {
    display: none !important;
  }
}

@media (min-width: 768px) and (max-width: 1024px) {
  .sn-location-main .sn-location-hero h1,
  .sn-location-main #sn-location-h1 {
    font-size: clamp(56px, 7vw, 76px) !important;
    line-height: .94 !important;
  }
}

@media (min-width: 1025px) {
  .sn-location-main .sn-location-hero {
    height: min(72vh, 700px) !important;
    min-height: 600px !important;
  }

  .sn-location-main .sn-location-hero__content {
    padding-top: 110px !important;
    padding-bottom: 58px !important;
  }

  .sn-location-main .sn-location-hero h1,
  .sn-location-main #sn-location-h1 {
    max-width: 820px !important;
    margin-bottom: 24px !important;
    font-size: clamp(52px, 5vw, 68px) !important;
    line-height: .94 !important;
  }

  .sn-location-main .sn-location-hero__copy {
    display: none !important;
  }

  .sn-location-main .sn-location-actions {
    margin-top: 0 !important;
  }
}
