/** Shopify CDN: Minification failed

Line 127:0 All "@import" rules must come first

**/

/* Shahiduzzaman Himel css  */

.rte-readmore-wrapper{
  position: relative;
}

.rte-collapsed{
  display: -webkit-box;
  -webkit-line-clamp: 8;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.rte-readmore-btn{
  display: inline-block;
  margin-top: 10px;
  font-weight: 600;
  cursor: pointer;
  color: #1a6b3c;
  text-decoration: underline;
  font-size: 18px;
}

@media screen and (min-width: 768px) {
    .m-product-list .m-product-card__action .m-button {
        padding-left: 0;
        padding-right: 0;
    }
}

/* In-stock grip sizes / gauges shown on product cards (non-clickable) */
.m-product-card__grip-sizes {
    pointer-events: none;
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    gap: 3px;
    padding: 4px 2px;
    overflow: hidden;
}
.m-product-card__grip-size {
    flex: 0 0 auto;
    padding: 2px 5px;
    font-size: 0.6rem;
    font-weight: 500;
    line-height: 1.4;
    color: #1c1c1c;
    background: #f0f0f0;
    border-radius: 4px;
    white-space: nowrap;
}
/* Gauge pills (strings): mono, larger, wrap to a second row if needed */
.m-product-card__grip-sizes:has(.m-product-card__grip-size--gauge) {
    flex-wrap: wrap;
    max-width: 260px;
    margin: 0 auto;
    gap: 5px;
    overflow: visible;
}
.m-product-card__grip-size--gauge {
    font-family: var(--font-stack-mono, "IBM Plex Mono", monospace);
    font-size: 0.8rem;
    font-weight: 500;
    padding: 3px 8px;
    background: #f1ece2;
    border: 1px solid var(--tc-line, #dcd8cf);
    color: var(--tc-ink, #1c1b18);
    font-variant-numeric: tabular-nums;
}

/* Centre the content on racquet product cards */
.m-product-card--racquet .m-product-card__content,
.m-product-card--racquet .m-product-card__info,
.m-product-card--racquet .m-product-card__title,
.m-product-card--racquet .m-product-card__vendor,
.m-product-card--racquet .m-product-card__price {
    text-align: center;
    justify-content: center;
}
.m-product-card--racquet .m-product-card__title {
    display: block;
}

/* Compact spec icons on racquet product cards */
.m-pcard-rqspecs {
    list-style: none;
    margin: 7px 0 9px;
    padding: 0;
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    gap: 16px;
}
.m-pcard-rqspecs li {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    font-size: 0.72rem;
    font-weight: 500;
    line-height: 1;
    color: #1c1c1c;
    white-space: nowrap;
}
.m-pcard-rqspecs svg {
    width: 17px;
    height: 17px;
    color: #6a6a6a;
}
@media (max-width: 480px) {
    .m-pcard-rqspecs { gap: 11px; }
    .m-pcard-rqspecs li { font-size: 0.66rem; }
}


/* ================================================================
   IDENTITY — "String Bed"  (Route 01)
   Warm paper + ink + natural-gut amber. Archivo headings,
   IBM Plex Sans body, IBM Plex Mono for all data/specs/prices.
   ================================================================ */
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&display=swap');

:root {
    --font-stack-mono: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
    --tc-amber: #bc7c36;
    --tc-ink: #1c1b18;
    --tc-line: #dcd8cf;
}

/* Headings: tighter, uppercase, structural */
h1, h2, h3,
.m-section__heading,
.m-section-title,
.m-product-meta__title,
.m-banner__heading,
.m-heading {
    text-transform: uppercase;
    letter-spacing: -0.008em;
}

/* Eyebrow / section subheading: mono utility label */
.m-section__subheading,
.m-richtext__subtitle {
    font-family: var(--font-stack-mono);
    text-transform: uppercase;
    letter-spacing: 0.16em;
    font-weight: 400;
    font-size: 12px;
}

/* Data reads in mono: prices, spec pills, spec icons */
.m-price,
.m-price__regular,
.m-price__sale,
.m-price-item,
.m-product-meta__price,
.m-pcard-rqspecs li,
.m-product-card__grip-size {
    font-family: var(--font-stack-mono);
    font-feature-settings: "tnum" 1;
}

/* Buttons: squared off, no pill */
.m-button,
button.m-button,
.shopify-payment-button__button--unbranded {
    border-radius: 3px;
}

/* Amber selection + focus accents */
::selection { background: rgba(188, 124, 54, 0.22); }
.m-product-card__grip-size {
    background: #f1ece2;
    color: var(--tc-ink);
    border: 1px solid var(--tc-line);
}
.m-pcard-rqspecs svg { color: #8a8172; }

/* Faint "string-bed" grid on the light content sections */
.tc-feature-cards,
.rce-section,
#sf-banner-string_spotlight_eMiEp9.sf-banner {
    background-image:
        linear-gradient(rgba(28, 27, 24, 0.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(28, 27, 24, 0.04) 1px, transparent 1px) !important;
    background-size: 38px 38px !important;
    background-position: center top !important;
}

/* Section headings on stock theme sections → Archivo, uppercase, tight */
.m-section__heading,
.m-section-title {
    font-family: var(--font-stack-header, 'Archivo', sans-serif);
    font-weight: 700;
}

/* Testimonials: amber stars, warm card border */
.ss-testimonials-stars svg,
.ss-testimonials [class*="star"] svg { color: var(--tc-amber) !important; fill: var(--tc-amber) !important; }

/* Hairline rhythm between the stock sections (mockup structure) */
.m-collection-list,
.m-featured-collection-section,
.m-blog-grid,
.m-image-with-text,
.m-icon-box-section {
    border-top: 1px solid rgb(var(--color-border));
}

/* Product prices: mono, ink — sit calm under the card */
.m-product-card__price .m-price-item,
.m-product-card__price {
    letter-spacing: 0;
}


/* ================================================================
   STRING BED — homepage polish pass (match route1 mockup)
   ================================================================ */

/* ---- Collection tiles ("Top 10 Strings for:") ---- */
.m-collection-list .m-collection-card__inner {
    border: 1px solid var(--tc-line);
    background: #fff;
    padding: 14px;
}
.m-collection-list .m-collection-card__image,
.m-collection-list .m-collection-card__image .m-image,
.m-collection-list .m-collection-card__image img { border-radius: 0 !important; }
.m-collection-list .m-collection-card__info { margin-top: 12px; }
.m-collection-list .m-collection-card__title {
    font-family: var(--font-stack-header, 'Archivo', sans-serif);
    font-weight: 600; text-transform: uppercase; letter-spacing: -0.01em;
    font-size: 1rem;
}
.m-collection-list .m-collection-card__count,
.m-collection-list .m-collection-card__product-count {
    font-family: var(--font-stack-mono); font-size: 0.78rem; color: #837c6e;
}

/* ---- Product cards (Most Ordered Reels + everywhere) ---- */
.m-product-card__wrapper,
.m-featured-collection-section .m-product-card {
    border: 1px solid var(--tc-line);
    background: #fff;
}
.m-product-card__wrapper { padding: 14px; }
.m-product-card__media,
.m-product-card__media .m-image,
.m-product-card__media img { border-radius: 0 !important; }
.m-product-card__title,
.m-product-card__title a {
    font-family: var(--font-stack-header, 'Archivo', sans-serif);
    font-weight: 600; text-transform: uppercase; letter-spacing: -0.01em;
    font-size: 0.9rem;
}
.m-product-card__vendor {
    font-family: var(--font-stack-mono); font-size: 0.7rem; color: #837c6e;
    text-transform: uppercase; letter-spacing: 0.06em;
}
.m-product-card .m-price { font-size: 0.86rem; }
/* Product card "Content alignment" theme setting sets text-align on the card, but the price
   is an inline-flex row and the title uses a -webkit-box line-clamp — neither obeys text-align,
   so centering the card left them stuck flush-left. Center their flex/box content directly
   whenever the card itself is set to center. */
.m-product-card__content.m\:text-center .m-price { justify-content: center; }
.m-product-card__content.m\:text-center .m-product-card__name { text-align: center; }

/* ---- Blog cards ("From the Learn Desk") ---- */
.m-blog-grid .m-article-card {
    border: 1px solid var(--tc-line);
    background: #fff;
}
.m-blog-grid .m-article-card__image,
.m-blog-grid .m-article-card__image .m-image,
.m-blog-grid .m-article-card__image img { border-radius: 0 !important; }
.m-blog-grid .m-article-card__content { padding: 18px; }
.m-blog-grid .m-article-card__date {
    font-family: var(--font-stack-mono); font-size: 10px;
    letter-spacing: 0.14em; text-transform: uppercase; color: #9a6224;
}
.m-blog-grid .m-article-card__title,
.m-blog-grid .m-article-card__title a {
    font-family: var(--font-stack-header, 'Archivo', sans-serif);
    font-weight: 600; text-transform: none; letter-spacing: 0;
    font-size: 1rem; line-height: 1.25;
}
.m-blog-grid .m-article-card__excerpt { font-size: 0.85rem; color: #837c6e; }

/* ---- About / image-with-text ---- */
.m-image-with-text.m-section-template--25626615644483__image_with_text_6mHQ7b,
#m-section--template--25626615644483__image_with_text_6mHQ7b {
    background-color: #f8f6f1;
    background-image:
        linear-gradient(rgba(28, 27, 24, 0.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(28, 27, 24, 0.04) 1px, transparent 1px);
    background-size: 38px 38px;
}
.m-image-with-text__inner .m-image-with-text__media,
.m-image-with-text__inner .m-image-with-text__image { border-radius: 0 !important; }
.m-image-with-text__content .m-richtext__description p { font-size: 0.95rem; color: #4a463d; }
.m-tc-about-facts {
    display: flex; flex-wrap: wrap; gap: 8px 26px; margin-top: 18px;
    font-family: var(--font-stack-mono); font-size: 0.8rem; color: #837c6e;
    border-top: 1px solid var(--tc-line); padding-top: 16px;
}
.m-tc-about-facts strong { color: var(--tc-ink); font-weight: 500; }

/* ---- Trust bar (icon-box) — clean row on paper, no boxes ---- */
#m-section--template--25626615644483__16225125199f82d8fe {
    background: #f2efe6;
    border-top: 1px solid var(--tc-line) !important;
}
#m-section--template--25626615644483__16225125199f82d8fe .m-section-py {
    padding-top: 30px; padding-bottom: 30px;
}
#m-section--template--25626615644483__16225125199f82d8fe .m-icon-box {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
}
#m-section--template--25626615644483__16225125199f82d8fe .m-icon-box__inner {
    justify-content: center;
    gap: 14px;
}
#m-section--template--25626615644483__16225125199f82d8fe .m-icon-box__heading,
#m-section--template--25626615644483__16225125199f82d8fe [class*="__title"] {
    font-family: var(--font-stack-header, 'Archivo', sans-serif);
    font-weight: 600; text-transform: uppercase; font-size: 0.82rem; letter-spacing: 0.02em;
    color: var(--tc-ink);
    margin: 0 0 3px;
}
#m-section--template--25626615644483__16225125199f82d8fe .m-icon-box__description,
#m-section--template--25626615644483__16225125199f82d8fe [class*="__text"],
#m-section--template--25626615644483__16225125199f82d8fe p {
    font-family: var(--font-stack-mono); font-size: 0.72rem; color: #9a917f;
    letter-spacing: 0.04em; text-transform: uppercase; margin: 0;
}
/* recolour the lime PNG icons to the amber accent */
#m-section--template--25626615644483__16225125199f82d8fe .m-icon-box__icon img,
#m-section--template--25626615644483__16225125199f82d8fe .m-icon-box__icon svg {
    filter: brightness(0) saturate(100%) invert(48%) sepia(58%) saturate(520%) hue-rotate(347deg) brightness(94%) contrast(90%);
}
#m-section--template--25626615644483__16225125199f82d8fe .m-icon-box__icon { width: 34px !important; flex: 0 0 34px; }
#m-section--template--25626615644483__16225125199f82d8fe svg { color: #bc7c36; }

/* ---- Footer — match the mockup: dark, hairline bottom strip, mono copyright ---- */
.m-footer .m-footer--bottom {
    border-top: 1px solid rgba(255,255,255,0.12);
    background: transparent;
}
.m-footer__copyright {
    font-family: var(--font-stack-mono);
    font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase;
    color: rgba(255,255,255,0.55);
}
.m-footer [class*="__heading"], .m-footer h5, .m-footer .m-footer-block__heading {
    font-family: var(--font-stack-header, 'Archivo', sans-serif);
    font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em;
    font-size: 0.82rem;
}
.m-footer a { font-size: 0.86rem; }
.m-footer--bottom .m-payment-icons, .m-footer--bottom [class*="payment"] { opacity: 0.75; }

/* footer identity column: text wordmark + tagline + short intro (mockup) */
.m-footer .m-footer--block-custom_text .block-text { max-width: 34ch; }
.m-footer .m-footer--block-custom_text .block-text p { margin: 0 0 10px; }
/* line 1 — the wordmark, centred */
.m-footer .m-footer--block-custom_text .block-text p:first-child { margin-bottom: 6px; text-align: center; }
.m-footer .m-footer--block-custom_text .block-text p:first-child strong {
    font-family: var(--font-stack-header, 'Archivo', sans-serif);
    font-weight: 700; font-size: 1.35rem; letter-spacing: -0.01em; text-transform: uppercase;
    color: #fff;
}
/* line 2 — the tagline */
.m-footer .m-footer--block-custom_text .block-text p:nth-of-type(2) {
    font-family: var(--font-stack-mono);
    font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase;
    color: rgba(255,255,255,0.5);
    margin-bottom: 16px;
}
/* line 3 — the intro */
.m-footer .m-footer--block-custom_text .block-text p:nth-of-type(3) {
    font-size: 0.85rem; line-height: 1.6; color: rgba(255,255,255,0.6);
}
.m-footer .m-footer--block-custom_text .block-text p:nth-of-type(3) strong {
    color: rgba(255,255,255,0.9); font-weight: 500;
}

/* ---- Hairline rhythm: extend to the custom sections too ---- */
#m-section--template--25626615644483__tc_closing_home,
.tc-brands,
.tc-reviews { border-top: 1px solid var(--tc-line); }

/* ---- Buttons: no pills anywhere ---- */
.m-button, button.m-button, .m-product-card .m-button,
.shopify-payment-button__button--unbranded, .m-featured-collection-section .m-button {
    border-radius: 3px !important;
}


/* ================================================================
   STRING BED — homepage polish pass 2 (tiles / hero / reels)
   ================================================================ */

/* ---- Hero: crop onto the string coils, drop the half-racquet ---- */
.tc-hero__media {
    background-position: 60% 74% !important;
}

/* ---- Top 10 tiles: one row of 6 from tablet up ---- */
@media (min-width: 960px) {
    .m-collection-list .m-mixed-layout__inner {
        grid-template-columns: repeat(6, 1fr) !important;
    }
}
/* Unify the mixed abstract/photo tile images into one warm set */
.m-collection-list .m-collection-card__image {
    position: relative;
    overflow: hidden;
}
.m-collection-list .m-collection-card__image img {
    filter: grayscale(0.74) sepia(0.34) saturate(1.15) contrast(1.05) brightness(0.96);
}
.m-collection-list .m-collection-card__image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(28, 27, 24, 0.04), rgba(28, 27, 24, 0.30));
    mix-blend-mode: multiply;
    pointer-events: none;
}
.m-collection-list .m-collection-card__title { font-size: 0.92rem; text-align: center; }
.m-collection-list .m-collection-card__title .m-collection-card__link { text-align: center; }

/* ---- Most Ordered Reels: keep titles off the edge, centre name + price ---- */
.m-featured-collection-section .m-product-card__info,
.m-featured-collection-section .m-product-card__title { padding-left: 2px; padding-right: 2px; }
.m-featured-collection-section .m-product-card__info { text-align: center; }
.m-featured-collection-section .m-product-card__price .m-price { justify-content: center; }

/* ---- About story: centre just the heading, keep the body text left ---- */
.m-image-with-text.tc-about-story .m-richtext__title,
.m-image-with-text.tc-about-story .m-richtext__subtitle { text-align: center; }

/* ---- About page long-form: constrain prose to a readable measure ---- */
.tc-about-prose .m-richtext { max-width: 64ch; margin-left: auto; margin-right: auto; }
.tc-about-prose .m-richtext__subtitle {
  font-family: var(--font-stack-mono, 'IBM Plex Mono', monospace);
  font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: #9a6224;
  margin-bottom: 10px;
}
.tc-about-prose .m-richtext__title { margin-bottom: 14px; }
.tc-about-prose .m-richtext ul { padding-left: 1.1rem; margin: 0.6rem 0 1rem; }
.tc-about-prose .m-richtext li { margin: 0.2rem 0; }












/* ---- Cookie consent (Shopify native) — compact corner card ---- */
#shopify-pc__banner.shopify-pc__banner__dialog {
  max-width: 340px !important;
  width: calc(100% - 32px) !important;
  left: 50% !important;
  right: auto !important;
  transform: translateX(-50%) !important;
  padding: 15px 17px !important;
  border-radius: 4px !important;
  box-shadow: 0 10px 34px rgba(28,27,24,.18) !important;
  font-family: var(--font-stack-body, 'IBM Plex Sans', sans-serif) !important;
}
#shopify-pc__banner .shopify-pc__banner__body h2 {
  font-family: var(--font-stack-mono, 'IBM Plex Mono', monospace) !important;
  font-size: 11px !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  color: #9a6224 !important;
  margin: 0 0 5px !important;
}
#shopify-pc__banner .shopify-pc__banner__body p {
  font-size: 12px !important;
  line-height: 1.45 !important;
}
#shopify-pc__banner .shopify-pc__banner__btns {
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 7px !important;
  margin-top: 12px !important;
}
#shopify-pc__banner .shopify-pc__banner__btns button {
  font-size: 12px !important;
  padding: 7px 13px !important;
  border-radius: 3px !important;
  min-height: 0 !important;
  width: auto !important;
}
#shopify-pc__banner .shopify-pc__banner__btn-accept,
#shopify-pc__banner .shopify-pc__banner__btn-decline {
  flex: 1 1 0 !important;
}
#shopify-pc__banner .shopify-pc__banner__btn-accept {
  background: #bc7c36 !important;
  border-color: #bc7c36 !important;
  color: #fff !important;
}
#shopify-pc__banner .shopify-pc__banner__btn-manage-prefs {
  order: 3;
  flex: 1 1 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  text-align: left !important;
  text-decoration: underline;
  opacity: .7;
}
@media (max-width: 480px) {
  #shopify-pc__banner.shopify-pc__banner__dialog {
    max-width: none !important;
    width: calc(100% - 16px) !important;
    bottom: 8px !important;
  }
}

/* Gauge picker — in-line buttons, sold-out gauges clearly flagged */
.m-product-option--button .m-product-option--node__label {
  min-width: 52px;
  text-align: center;
}
.m-product-option--button .m-product-option--node__unavailable .m-product-option--node__label {
  opacity: 1;
  background: rgba(var(--color-border), 0.4);
  color: rgba(var(--color-foreground-secondary), 0.75);
  flex-direction: column;
  align-items: center;
  justify-content: center;
  line-height: 1.2;
}
.m-product-option--button .m-product-option--node__unavailable .m-product-option--node__label::before {
  background: linear-gradient(to bottom right, transparent calc(50% - 1px), rgba(var(--color-foreground-secondary), 0.5) 50%, transparent calc(50% + 1px)) no-repeat;
}
.m-product-option--button .m-product-option--node__unavailable .label-unavailable {
  position: static !important;
  display: block;
  overflow: visible;
  clip: auto;
  height: auto;
  width: auto;
  margin: 3px 0 0;
  padding: 0;
  border: 0;
  font-size: 9px;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: rgba(var(--color-foreground-secondary), 0.75);
  white-space: nowrap;
}
/* A sold-out gauge can still end up "selected" (clicking it shows the notify-me panel) — the
   theme's own selected-state rule (input:checked+label) has higher specificity than the block
   above and was repainting it amber with light text, burying the SOLD OUT label. Win that fight
   back explicitly so a picked-but-unavailable tile stays legible, with an amber ring to show
   it's still the active pick. */
.m-product-option--button .m-product-option--node__unavailable input:checked + .m-product-option--node__label {
  background: rgba(var(--color-border), 0.4) !important;
  color: rgba(var(--color-foreground-secondary), 0.75) !important;
  border-color: rgb(var(--color-button-hover)) !important;
  box-shadow: 0 0 0 1px rgb(var(--color-button-hover));
}

/* Sold-out product card: a corner "Sold out" ribbon sitting on top of the photo reads badly on
   dark/black-colourway strings (turned off in settings, see show_badge_soldout). A clean pill
   overlapping the bottom edge of the image instead, same placement Extreme Tennis uses — off
   the main artwork so it never clashes with the photo, but still reads as part of the image
   block rather than floating in the whitespace beneath it. */
.m-product-card__restock-banner {
  position: relative;
  z-index: 2;
  margin: -20px auto 4px;
  padding: 7px 16px;
  width: fit-content;
  max-width: calc(100% - 24px);
  background: #1c1b18;
  color: #fff;
  font-family: var(--font-heading-family, inherit);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-align: center;
  border-radius: 999px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Homepage trust-badge icons ship as green stock PNGs; force them to
   black so they match the String Bed identity instead of the theme's
   default green. */
#shopify-section-template--25644589711683__16225125199f82d8fe .m-icon-box__icon img {
  filter: brightness(0) saturate(100%);
  opacity: 0.82;
}

/* Language switcher flag icons */
.m-flag-icon-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-right: 6px;
  line-height: 0;
}
.m-flag-icon {
  display: block;
  width: 18px;
  height: 13px;
  border-radius: 2px;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.12);
}
.m-select-custom--option {
  display: flex;
  align-items: center;
}
.m-select-custom--trigger {
  display: flex;
  align-items: center;
}
