/** Shopify CDN: Minification failed

Line 466:0 Expected "}" to go with "{"

**/
/* ============================================================
   TERRASOLA — Complete Theme Stylesheet
   Built on Shopify Dawn base
   ============================================================ */
 
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;1,400&family=Cormorant+Garamond:ital,wght@0,300;1,300&family=Jost:wght@300;400;500&display=swap');
 
/* ── TERRASOLA COLOR DEFAULTS ──────────────────────────────── */
:root {
  --ts-green:      #8a9e4a;
  --ts-green-dark: #6a7a38;
  --ts-dark:       #2c2c1a;
  --ts-darker:     #1a1c0d;
  --ts-bg:         #f5f0e8;
  --ts-cream:      #e8dfc4;
  --ts-muted:      #a89e7e;
  --ts-tan:        #d4c9a8;
  --ts-warm:       #5a4e38;
  --ts-light-tan:  #ede5d4;
  --ts-border:     #d4c9a8;
  --font-serif:    'Playfair Display', Georgia, serif;
  --font-display:  'Cormorant Garamond', Georgia, serif;
  --font-body:     'Jost', system-ui, sans-serif;
}
 
/* ── BASE RESET ────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
body { font-family: var(--font-body); background: var(--ts-bg); color: var(--ts-dark); margin: 0; padding: 0; }
a { text-decoration: none; color: inherit; }
img { max-width: 100%; display: block; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.skip-to-content-link { position: absolute; top: -100px; left: 1rem; z-index: 9999; background: var(--ts-green); color: var(--ts-darker); padding: 0.5rem 1rem; }
.skip-to-content-link:focus { top: 1rem; }
 
/* ── ANNOUNCEMENT BAR ──────────────────────────────────────── */
.ts-announce {
  background: var(--ts-green);
  text-align: center;
  padding: 10px 1rem;
  font-size: 11px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--ts-darker);
  font-weight: 500;
  font-family: var(--font-body);
}
 
/* ── HEADER ────────────────────────────────────────────────── */
.ts-header {
  padding: 0 2rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 64px;
  position: sticky;
  top: 0;
  z-index: 200;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
.ts-header__logo {
  min-width: 160px;
  flex-shrink: 0;
}
.ts-header__logo a {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-decoration: none;
}
.ts-header__logo img {
  height: 42px;
  width: auto;
  max-width: 200px;
}
.ts-logo-name {
  font-family: var(--font-serif);
  font-size: 20px;
  color: var(--ts-header-text, var(--ts-green));
  letter-spacing: 0.12em;
  text-transform: uppercase;
  line-height: 1;
}
.ts-logo-sub {
  font-size: 8px;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--ts-header-text, var(--ts-green-dark));
  margin-top: 3px;
  opacity: 0.7;
}
.ts-nav {
  flex: 1;
  display: flex;
  justify-content: center;
}
.ts-nav ul {
  display: flex;
  gap: 1.75rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.ts-nav a {
  color: var(--ts-header-text, var(--ts-tan));
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 400;
  transition: color 0.2s;
}
.ts-nav a:hover,
.ts-nav a.active {
  color: var(--ts-header-accent, var(--ts-green));
}
.ts-header__icons {
  min-width: 100px;
  display: flex;
  gap: 1rem;
  align-items: center;
  justify-content: flex-end;
  flex-shrink: 0;
}
.ts-header__icons a {
  color: var(--ts-header-text, var(--ts-tan));
  display: flex;
  align-items: center;
  transition: color 0.2s;
  position: relative;
}
.ts-header__icons a:hover {
  color: var(--ts-header-accent, var(--ts-green));
}
.ts-cart-badge {
  position: absolute;
  top: -6px;
  right: -8px;
  background: var(--ts-header-accent, var(--ts-green));
  color: var(--ts-darker);
  font-size: 9px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
}
 
/* ── BUTTONS ───────────────────────────────────────────────── */
.ts-btn-primary { background: var(--ts-green); color: var(--ts-darker); padding: 13px 28px; font-family: var(--font-body); font-size: 11px; letter-spacing: 0.15em; text-transform: uppercase; border: none; cursor: pointer; font-weight: 500; border-radius: 2px; display: inline-block; transition: opacity 0.2s; }
.ts-btn-primary:hover { opacity: 0.85; color: var(--ts-darker); }
.ts-btn-ghost { background: transparent; color: var(--ts-tan); padding: 12px 28px; font-family: var(--font-body); font-size: 11px; letter-spacing: 0.15em; text-transform: uppercase; border: 1px solid #4a4a2e; cursor: pointer; font-weight: 400; border-radius: 2px; display: inline-block; transition: all 0.2s; }
.ts-btn-ghost:hover { border-color: var(--ts-green); color: var(--ts-green); }
 
/* ── SECTION LABELS ────────────────────────────────────────── */
.ts-eyebrow { font-size: 10px; letter-spacing: 0.25em; text-transform: uppercase; color: var(--ts-green); font-weight: 500; margin-bottom: 0.5rem; display: block; }
.ts-h2 { font-family: var(--font-serif); font-size: 32px; font-weight: 400; line-height: 1.2; margin: 0 0 0.5rem; }
.ts-h2 em { font-style: italic; color: var(--ts-green-dark); }
.ts-section-header { text-align: center; padding: 3rem 2rem 1.5rem; }
 
/* ── PULL QUOTE ────────────────────────────────────────────── */
.ts-pull-quote { background: var(--ts-green); padding: 2.75rem 4rem; text-align: center; }
.ts-pull-quote blockquote { font-family: var(--font-serif); font-size: 22px; color: var(--ts-darker); font-style: italic; font-weight: 400; line-height: 1.5; max-width: 680px; margin: 0 auto; }
 
/* ── PAGE HERO ─────────────────────────────────────────────── */
.ts-page-hero { background: var(--ts-dark); min-height: 280px; display: grid; grid-template-columns: 1fr 1fr; overflow: hidden; }
.ts-page-hero__left { padding: 4rem 3rem; display: flex; flex-direction: column; justify-content: center; }
.ts-page-hero__left h1 { font-family: var(--font-serif); font-size: 44px; color: var(--ts-cream); font-weight: 400; line-height: 1.1; margin: 0.5rem 0 1rem; }
.ts-page-hero__left h1 em { font-style: italic; color: var(--ts-green); }
.ts-page-hero__sub { font-family: var(--font-display); font-size: 18px; color: var(--ts-muted); line-height: 1.8; font-weight: 300; max-width: 380px; margin: 0; }
.ts-page-hero__right { background: var(--ts-darker); overflow: hidden; }
.ts-page-hero__right img { width: 100%; height: 100%; object-fit: cover; }
 
/* ── HOMEPAGE HERO ─────────────────────────────────────────── */
.ts-hero { min-height: 500px; display: grid; grid-template-columns: 1fr 1fr; overflow: hidden; }
.ts-hero__left { padding: 5rem 3rem; display: flex; flex-direction: column; justify-content: center; }
.ts-hero__tag { font-size: 10px; letter-spacing: 0.25em; text-transform: uppercase; color: var(--ts-green); font-weight: 500; margin-bottom: 1.2rem; }
.ts-hero__h1 { font-family: var(--font-serif); font-size: 52px; line-height: 1.05; font-weight: 400; margin: 0 0 1.25rem; }
.ts-hero__h1 em { font-style: italic; color: var(--ts-green); }
.ts-hero__sub { font-family: var(--font-display); font-size: 18px; line-height: 1.8; margin: 0 0 2.5rem; font-weight: 300; max-width: 380px; opacity: 0.8; }
.ts-hero__btns { display: flex; gap: 1rem; flex-wrap: wrap; }
.ts-hero__right { position: relative; overflow: hidden; background: var(--ts-darker); }
.ts-hero__right img { width: 100%; height: 100%; object-fit: cover; }
.ts-hero__placeholder { width: 100%; height: 100%; min-height: 500px; background: linear-gradient(135deg, #1e200f 0%, #2d3318 50%, #1a1c0d 100%); display: flex; align-items: center; justify-content: center; }
 
/* ── CATEGORY GRID ─────────────────────────────────────────── */
.ts-categories { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 0 2rem; background: var(--ts-border); }
.ts-cat-card { background: var(--ts-bg); padding: 2.5rem 1.5rem; text-align: center; cursor: pointer; position: relative; overflow: hidden; transition: background 0.2s; display: block; text-decoration: none; }
.ts-cat-card:hover { background: var(--ts-light-tan); }
.ts-cat-img { width: 150px; height: 150px; margin: 0 auto 1rem; border-radius: 50%; overflow: hidden; background: var(--ts-dark); display: flex; align-items: center; justify-content: center; }
.ts-cat-img img { width: 100%; height: 100%; object-fit: cover; }
.ts-cat-img svg { width: 40px; height: 40px; stroke: var(--ts-green); fill: none; stroke-width: 1.2; }
.ts-cat-title { font-family: var(--font-serif); font-size: 18px; color: var(--ts-dark); margin: 0 0 0.4rem; font-weight: 400; }
.ts-cat-sub { font-size: 12px; color: #7a6e56; letter-spacing: 0.08em; font-weight: 300; margin: 0; }
.ts-cat-badge { position: absolute; top: 1rem; right: 1rem; background: var(--ts-green); color: var(--ts-darker); font-size: 9px; letter-spacing: 0.1em; text-transform: uppercase; padding: 3px 8px; border-radius: 2px; font-weight: 500; }
 
/* ── PRODUCT GRID ──────────────────────────────────────────── */
.ts-product-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; padding: 2rem; }
.ts-prod-card { background: #fff; border-radius: 4px; overflow: hidden; display: block; transition: transform 0.2s, box-shadow 0.2s; }
.ts-prod-card:hover { transform: translateY(-3px); box-shadow: 0 8px 24px rgba(44,44,26,0.12); }
.ts-prod-img { height: 200px; background: var(--ts-light-tan); position: relative; overflow: hidden; }
.ts-prod-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s; }
.ts-prod-card:hover .ts-prod-img img { transform: scale(1.04); }
.ts-prod-tag { position: absolute; top: 0.6rem; left: 0.6rem; background: var(--ts-dark); color: var(--ts-tan); font-size: 9px; letter-spacing: 0.1em; text-transform: uppercase; padding: 3px 8px; border-radius: 2px; }
.ts-prod-info { padding: 0.875rem 1rem 1rem; }
.ts-prod-name { font-family: var(--font-serif); font-size: 15px; color: var(--ts-dark); margin: 0 0 2px; font-weight: 400; }
.ts-prod-type { font-size: 11px; color: #9a8e74; margin: 0 0 0.5rem; font-weight: 300; }
.ts-prod-bottom { display: flex; justify-content: space-between; align-items: center; }
.ts-prod-price { font-size: 15px; color: var(--ts-dark); font-weight: 500; }
.ts-prod-add { background: var(--ts-dark); color: var(--ts-green); border: none; width: 30px; height: 30px; border-radius: 50%; font-size: 20px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background 0.2s; line-height: 1; }
.ts-prod-add:hover { background: var(--ts-green); color: var(--ts-darker); }
 
/* ── HANDMADE BANNER ───────────────────────────────────────── */
.ts-handmade { margin: 0 2rem 3rem; border-radius: 4px; padding: 3rem; display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 2rem; }
.ts-handmade h3 { font-family: var(--font-serif); font-size: 30px; font-weight: 400; line-height: 1.2; margin: 0 0 0.75rem; }
.ts-handmade h3 em { font-style: italic; }
.ts-handmade p { font-family: var(--font-display); font-size: 16px; line-height: 1.8; font-weight: 300; margin: 0 0 1.5rem; }
.ts-print-tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.75rem; }
.ts-print-tile { background: none; border-radius: 4px; height: 220px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; text-decoration: none; transition: opacity 0.2s; overflow: hidden; }
.ts-print-tile:hover { opacity: 0.85; }
.ts-print-tile img { width: 100%; height: 100%; object-fit: cover; border-radius: 4px; }
.ts-print-tile svg { width: 28px; height: 28px; stroke: var(--ts-green); fill: none; stroke-width: 1.2; }
.ts-print-tile span { font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ts-tan); font-weight: 400; font-family: var(--font-body); margin-top: 6px; }
 
/* ── TESTIMONIAL ───────────────────────────────────────────── */
.ts-testimonial { padding: 3.5rem 2rem; text-align: center; }
.ts-stars { color: var(--ts-green); font-size: 15px; margin-bottom: 1rem; letter-spacing: 4px; }
.ts-testimonial blockquote { font-family: var(--font-display); font-size: 24px; font-style: italic; max-width: 640px; margin: 0 auto 1rem; line-height: 1.6; font-weight: 300; }
.ts-testimonial cite { font-size: 12px; letter-spacing: 0.15em; text-transform: uppercase; color: var(--ts-green); font-style: normal; font-weight: 500; }
 
/* ── ABOUT PAGE ────────────────────────────────────────────── */
.ts-about-story { display: grid; grid-template-columns: 1fr 1fr; min-height: 420px; }
.ts-about-story__img { background: var(--ts-light-tan); overflow: hidden; position: relative; min-height: 420px; display: flex; align-items: center; justify-content: center; }
.ts-about-story__img img { width: 100%; height: 100%; object-fit: cover; position: absolute; top: 0; left: 0; }
.ts-about-story__text { background: var(--ts-bg); padding: 4rem 3rem; display: flex; flex-direction: column; justify-content: center; }
.ts-about-story__text h2 { font-family: var(--font-serif); font-size: 32px; color: var(--ts-dark); font-weight: 400; line-height: 1.2; margin: 0.5rem 0 1.25rem; }
.ts-about-story__text h2 em { font-style: italic; color: var(--ts-green-dark); }
.ts-about-story__text p { font-family: var(--font-display); font-size: 17px; color: var(--ts-warm); line-height: 1.9; font-weight: 300; margin: 0 0 1rem; }
.ts-nc { background: var(--ts-dark); padding: 3.5rem 3rem; display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; }
.ts-nc h3 { font-family: var(--font-serif); font-size: 30px; color: var(--ts-cream); font-weight: 400; margin: 0 0 1rem; line-height: 1.2; }
.ts-nc h3 em { color: var(--ts-green); font-style: italic; }
.ts-nc p { font-family: var(--font-display); color: var(--ts-muted); font-size: 16px; line-height: 1.8; font-weight: 300; margin: 0; }
.ts-nc-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.ts-stat { background: var(--ts-darker); border-radius: 4px; padding: 1.5rem; text-align: center; }
.ts-stat__num { font-family: var(--font-serif); font-size: 34px; color: var(--ts-green); font-weight: 400; line-height: 1; margin-bottom: 0.4rem; }
.ts-stat__label { font-size: 10px; letter-spacing: 0.15em; text-transform: uppercase; color: #7a7a50; }
.ts-values { background: var(--ts-light-tan); padding: 3.5rem 2rem; }
.ts-values-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; margin-top: 2rem; }
.ts-val-card { background: var(--ts-bg); padding: 2rem 1.5rem; border-radius: 4px; }
.ts-val-icon { width: 44px; height: 44px; background: var(--ts-dark); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-bottom: 1rem; }
.ts-val-icon svg { width: 22px; height: 22px; stroke: var(--ts-green); fill: none; stroke-width: 1.3; }
.ts-val-title { font-family: var(--font-serif); font-size: 17px; color: var(--ts-dark); margin: 0 0 0.5rem; font-weight: 400; }
.ts-val-text { font-size: 13px; color: #7a6e56; line-height: 1.75; font-weight: 300; margin: 0; }
 
/* ── CONTACT PAGE ──────────────────────────────────────────── */
.ts-contact-body { display: grid; grid-template-columns: 1fr 1fr; }
.ts-contact-form { background: var(--ts-bg); padding: 3.5rem 3rem; }
.ts-contact-form h2 { font-family: var(--font-serif); font-size: 30px; color: var(--ts-dark); font-weight: 400; line-height: 1.2; margin: 0.5rem 0 0.75rem; }
.ts-contact-form h2 em { font-style: italic; color: var(--ts-green-dark); }
.ts-contact-form > p { font-family: var(--font-display); font-size: 17px; color: #7a6e56; line-height: 1.8; font-weight: 300; margin: 0 0 2rem; }
.ts-field { margin-bottom: 1.25rem; }
.ts-label { display: block; font-size: 10px; letter-spacing: 0.15em; text-transform: uppercase; color: #7a6e56; font-weight: 500; margin-bottom: 0.4rem; }
.ts-input { width: 100%; background: #fff; border: 1px solid var(--ts-border); border-radius: 2px; padding: 11px 14px; font-family: var(--font-body); font-size: 14px; color: var(--ts-dark); outline: none; transition: border-color 0.2s; }
.ts-input:focus { border-color: var(--ts-green); }
.ts-textarea { min-height: 130px; resize: vertical; }
.ts-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.ts-contact-info { background: var(--ts-dark); padding: 3.5rem 3rem; display: flex; flex-direction: column; }
.ts-info-block { margin-bottom: 1.75rem; }
.ts-info-label { font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--ts-green); font-weight: 500; margin-bottom: 0.5rem; }
.ts-info-val { font-family: var(--font-display); font-size: 18px; color: var(--ts-tan); font-weight: 300; line-height: 1.6; margin: 0; }
.ts-info-note { font-size: 12px; color: #7a7a50; margin-top: 4px; }
.ts-divider { border: none; border-top: 1px solid #3a3a20; margin: 0.25rem 0 1.75rem; }
.ts-social-row { display: flex; gap: 0.75rem; flex-wrap: wrap; margin-top: 0.75rem; }
.ts-social-btn { background: var(--ts-darker); border: 1px solid #3a3a20; border-radius: 2px; padding: 9px 18px; font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ts-green); cursor: pointer; font-family: var(--font-body); font-weight: 400; transition: border-color 0.2s; text-decoration: none; display: inline-block; }
.ts-social-btn:hover { border-color: var(--ts-green); }
.ts-map-placeholder { background: var(--ts-darker); border-radius: 4px; height: 140px; display: flex; flex-direction: column; align-items: center; justify-content: center; margin-top: 2rem; border: 1px solid #3a3a20; gap: 8px; }
.ts-map-placeholder span { font-size: 10px; letter-spacing: 0.15em; text-transform: uppercase; color: #4a4a2e; }
.ts-form-success { background: var(--ts-green); color: var(--ts-darker); padding: 1rem 1.25rem; border-radius: 2px; margin-bottom: 1.5rem; font-size: 13px; }
 
/* ── PRODUCT PAGE ──────────────────────────────────────────── */
.ts-breadcrumb { background: var(--ts-light-tan); padding: 0.75rem 2rem; font-size: 11px; color: #9a8e74; letter-spacing: 0.06em; }
.ts-breadcrumb a { color: var(--ts-green); }
.ts-product-main { display: grid; grid-template-columns: 1fr 1fr; min-height: 520px; }
.ts-product-gallery { background: #e8e0d0; display: flex; flex-direction: column; }
.ts-product-main-img { flex: 1; position: relative; overflow: hidden; min-height: 400px; }
.ts-product-main-img img { width: 100%; height: 100%; object-fit: cover; }
.ts-product-badge { position: absolute; top: 1.25rem; left: 1.25rem; background: var(--ts-dark); color: var(--ts-tan); font-size: 9px; letter-spacing: 0.12em; text-transform: uppercase; padding: 5px 12px; border-radius: 2px; }
.ts-product-thumbs { display: flex; gap: 8px; padding: 1rem 1.25rem; background: #ddd5c2; }
.ts-product-thumb { width: 68px; height: 68px; border-radius: 2px; overflow: hidden; border: 2px solid transparent; cursor: pointer; transition: border-color 0.2s; }
.ts-product-thumb.active, .ts-product-thumb:hover { border-color: var(--ts-green); }
.ts-product-thumb img { width: 100%; height: 100%; object-fit: cover; }
.ts-product-info { background: var(--ts-bg); padding: 3rem; display: flex; flex-direction: column; }
.ts-product-name { font-family: var(--font-serif); font-size: 36px; color: var(--ts-dark); font-weight: 400; line-height: 1.1; margin: 0.5rem 0 0.3rem; }
.ts-product-type { font-family: var(--font-display); font-size: 18px; color: #9a8e74; font-style: italic; margin: 0 0 1rem; font-weight: 300; }
.ts-product-price { font-family: var(--font-serif); font-size: 30px; color: var(--ts-dark); font-weight: 400; margin: 0 0 1.75rem; }
.ts-option-label { font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: #7a6e56; font-weight: 500; margin-bottom: 0.6rem; display: block; }
.ts-size-row { display: flex; gap: 8px; margin-bottom: 1.5rem; flex-wrap: wrap; }
.ts-size-btn { padding: 9px 20px; background: #fff; border: 1px solid var(--ts-border); border-radius: 2px; font-size: 12px; color: var(--ts-warm); cursor: pointer; font-family: var(--font-body); font-weight: 400; transition: all 0.2s; }
.ts-size-btn:hover, .ts-size-btn.active { background: var(--ts-dark); color: var(--ts-green); border-color: var(--ts-dark); }
.ts-qty-row { display: flex; align-items: center; gap: 1.25rem; margin-bottom: 1.5rem; }
.ts-qty-ctrl { display: flex; align-items: center; border: 1px solid var(--ts-border); border-radius: 2px; overflow: hidden; }
.ts-qty-btn { width: 36px; height: 36px; background: #fff; border: none; font-size: 20px; color: var(--ts-warm); cursor: pointer; }
.ts-qty-val { width: 44px; text-align: center; font-size: 15px; color: var(--ts-dark); background: #fff; border-left: 1px solid var(--ts-border); border-right: 1px solid var(--ts-border); height: 36px; display: flex; align-items: center; justify-content: center; }
.ts-add-btn { width: 100%; background: var(--ts-green); color: var(--ts-darker); border: none; padding: 15px; font-family: var(--font-body); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; font-weight: 500; border-radius: 2px; cursor: pointer; margin-bottom: 0.75rem; transition: opacity 0.2s; }
.ts-add-btn:hover { opacity: 0.88; }
.ts-wishlist-btn { width: 100%; background: transparent; color: var(--ts-warm); border: 1px solid var(--ts-border); padding: 13px; font-family: var(--font-body); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; font-weight: 400; border-radius: 2px; cursor: pointer; margin-bottom: 2rem; transition: all 0.2s; }
.ts-wishlist-btn:hover { border-color: var(--ts-green); color: var(--ts-green); }
.ts-product-divider { border: none; border-top: 1px solid var(--ts-border); margin: 0 0 1.5rem; }
.ts-product-desc { font-family: var(--font-display); font-size: 17px; color: var(--ts-warm); line-height: 1.9; font-weight: 300; margin-bottom: 1.5rem; }
.ts-care-pills { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.6rem; margin-top: 0.75rem; }
.ts-care-pill { background: var(--ts-dark); color: var(--ts-green); font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; padding: 8px 10px; border-radius: 3px; font-weight: 400; text-align: center; line-height: 1.4; }
.ts-care-strip { background: var(--ts-dark); padding: 3rem 2rem; }
.ts-care-strip-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-top: 2rem; }
.ts-care-item { background: var(--ts-darker); border-radius: 4px; padding: 1.5rem 1rem; text-align: center; }
.ts-care-item svg { width: 28px; height: 28px; stroke: var(--ts-green); fill: none; stroke-width: 1.2; margin: 0 auto 0.75rem; display: block; }
.ts-care-item__title { font-family: var(--font-serif); font-size: 14px; color: var(--ts-tan); font-weight: 400; margin-bottom: 0.4rem; }
.ts-care-item__val { font-size: 11px; color: #7a7a50; line-height: 1.5; }
 
/* ── FOOTER ────────────────────────────────────────────────── */
.ts-footer { background: var(--ts-dark); padding: 3rem 2rem 2rem; }
.ts-footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 2rem; margin-bottom: 2rem; }
.ts-footer-brand p { font-family: var(--font-display); font-size: 14px; color: #7a7a50; line-height: 1.7; font-weight: 300; margin-top: 0.75rem; max-width: 220px; }
.ts-footer-shop-name { font-family: var(--font-serif); font-size: 18px; color: var(--ts-green); letter-spacing: 0.1em; text-transform: uppercase; margin: 0 0 0.5rem; }
.ts-footer-logo img { height: 36px; width: auto; opacity: 0.7; margin-bottom: 0.75rem; }
.ts-footer h4 { font-family: var(--font-serif); color: var(--ts-green); font-size: 13px; font-weight: 400; letter-spacing: 0.1em; text-transform: uppercase; margin: 0 0 1rem; }
.ts-footer ul { list-style: none; padding: 0; margin: 0; }
.ts-footer li { margin-bottom: 0.5rem; }
.ts-footer li a { font-size: 12px; color: #7a7a50; transition: color 0.2s; }
.ts-footer li a:hover { color: var(--ts-tan); }
.ts-footer-copy { border-top: 1px solid #3a3a20; padding-top: 1.25rem; text-align: center; font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: #4a4a2e; }
 
/* ── CART ──────────────────────────────────────────────────── */
.ts-cart { max-width: 900px; margin: 0 auto; padding: 3rem 2rem; }
.ts-cart-item { display: grid; grid-template-columns: 80px 1fr auto; gap: 1.5rem; align-items: center; padding: 1.5rem 0; border-bottom: 1px solid var(--ts-border); }
.ts-cart-item img { border-radius: 2px; width: 80px; height: 80px; object-fit: cover; }
 
/* ── RESPONSIVE ────────────────────────────────────────────── */
@media (max-width: 900px) {
  .ts-hero, .ts-page-hero, .ts-about-story, .ts-contact-body, .ts-product-main, .ts-nc, .ts-handmade { grid-template-columns: 1fr; }
  .ts-hero__right, .ts-page-hero__right { display: none; }
  .ts-hero__h1 { font-size: 36px; }
  .ts-product-grid { grid-template-columns: repeat(2, 1fr); }
  .ts-categories, .ts-values-grid, .ts-care-strip-grid { grid-template-columns: 1fr; }
  .ts-footer-grid { grid-template-columns: 1fr 1fr; }
  .ts-nav ul { display: none; }
  .ts-care-pills { grid-template-columns: repeat(2, 1fr); }
  .ts-handmade { margin: 0 0 2rem; border-radius: 0; }
}
@media (max-width: 600px) {
  .ts-product-grid { grid-template-columns: 1fr; }
  .ts-footer-grid { grid-template-columns: 1fr; }
  .ts-hero__left, .ts-page-hero__left { padding: 3rem 1.5rem; }
  .ts-product-info { padding: 2rem 1.5rem; }
  .ts-print-tiles { grid-template-columns: 1fr 1fr; }
  .ts-nc-stats { grid-template-columns: 1fr 1fr; }
}

/* ── HANDMADE BUTTON ───────────────────────────────────────── */
.ts-btn-handmade { padding: 13px 28px; font-family: var(--font-body); font-size: 11px; letter-spacing: 0.15em; text-transform: uppercase; border: none; cursor: pointer; font-weight: 500; border-radius: 2px; display: inline-block; transition: opacity 0.2s; }
.ts-btn-handmade:hover { opacity: 0.85; }
  
/* ── SHOWS & EVENTS ────────────────────────────────────────── */
.ts-shows-intro { font-family: var(--font-display); font-size: 17px; color: #7a6e56; line-height: 1.7; font-weight: 300; margin-top: 0.5rem; }
.ts-shows-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; padding: 0 2rem; }
.ts-show-card { background: #fff; border-radius: 4px; overflow: hidden; transition: transform 0.2s, box-shadow 0.2s; }
.ts-show-card:hover { transform: translateY(-3px); box-shadow: 0 8px 24px rgba(44,44,26,0.12); }
.ts-show-img { width: 100%; aspect-ratio: 1 / 1; position: relative; overflow: hidden; background: var(--ts-light-tan); }
.ts-show-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s; }
.ts-show-card:hover .ts-show-img img { transform: scale(1.04); }
.ts-show-img-placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; }
.ts-show-badge { position: absolute; top: 0.75rem; left: 0.75rem; background: var(--ts-green); color: var(--ts-darker); font-size: 9px; letter-spacing: 0.1em; text-transform: uppercase; padding: 3px 8px; border-radius: 2px; font-weight: 500; }
.ts-show-info { padding: 1.25rem; }
.ts-show-title { font-family: var(--font-serif); font-size: 16px; color: var(--ts-dark); font-weight: 400; margin-bottom: 0.3rem; }
.ts-show-date { font-size: 11px; color: var(--ts-green); letter-spacing: 0.08em; text-transform: uppercase; font-weight: 500; margin-bottom: 0.6rem; }
.ts-show-excerpt { font-family: var(--font-display); font-size: 14px; color: #7a6e56; line-height: 1.7; font-weight: 300; margin-bottom: 0.75rem; }
.ts-show-link { font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ts-green); font-weight: 500; text-decoration: none; }
.ts-show-link:hover { text-decoration: underline; }

@media (max-width: 900px) {
  .ts-shows-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .ts-shows-grid { grid-template-columns: 1fr; }
}
/* ── PLANT OF THE MONTH ────────────────────────────────────── */
.ts-potm-section { padding-bottom: 3rem; }
.ts-potm-header { text-align: center; padding: 3rem 2rem 2rem; }
.ts-potm-subheading { font-family: var(--font-display); font-size: 17px; color: var(--ts-muted); line-height: 1.7; font-weight: 300; margin-top: 0.5rem; }
.ts-potm-inner { display: grid; grid-template-columns: 1fr 1px 1fr; gap: 0; margin: 0 2rem; }
.ts-potm-divider { background: rgba(255,255,255,0.1); }

/* Plant side */
.ts-potm-plant { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; padding: 2rem 2rem 2rem 0; align-items: start; }
.ts-potm-plant-img { position: relative; border-radius: 4px; overflow: hidden; }
.ts-potm-plant-img img { width: 100%; aspect-ratio: 3/4; object-fit: cover; border-radius: 4px; }
.ts-potm-img-placeholder { width: 100%; aspect-ratio: 3/4; background: rgba(255,255,255,0.05); border-radius: 4px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem; border: 2px dashed rgba(255,255,255,0.1); }
.ts-potm-img-placeholder span { font-size: 10px; letter-spacing: 0.15em; text-transform: uppercase; color: rgba(255,255,255,0.3); }
.ts-potm-badge { position: absolute; top: 1rem; left: 1rem; background: var(--ts-green); color: var(--ts-darker); font-size: 9px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; padding: 4px 10px; border-radius: 2px; }
.ts-potm-plant-info { display: flex; flex-direction: column; justify-content: center; padding: 1rem 0; }
.ts-potm-plant-name { font-family: var(--font-serif); font-size: 26px; color: var(--ts-cream); font-weight: 400; line-height: 1.2; margin: 0 0 0.3rem; }
.ts-potm-plant-variety { font-family: var(--font-display); font-size: 16px; color: var(--ts-muted); font-style: italic; font-weight: 300; margin: 0 0 0.75rem; }
.ts-potm-plant-price { font-family: var(--font-serif); font-size: 22px; color: var(--ts-green); font-weight: 400; margin: 0 0 1rem; }
.ts-potm-plant-desc { font-family: var(--font-display); font-size: 15px; color: var(--ts-muted); line-height: 1.8; font-weight: 300; margin: 0 0 1.25rem; }
.ts-potm-care { background: rgba(255,255,255,0.06); border-radius: 4px; padding: 0.75rem 1rem; margin-bottom: 1.5rem; border-left: 3px solid var(--ts-green); }
.ts-potm-care-label { display: block; font-size: 9px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--ts-green); font-weight: 600; margin-bottom: 0.3rem; }
.ts-potm-care-text { font-size: 12px; color: var(--ts-tan); line-height: 1.6; }

/* Complete the look side */
.ts-potm-look { padding: 2rem 0 2rem 2rem; display: flex; flex-direction: column; }
.ts-potm-look-header { margin-bottom: 1.5rem; }
.ts-potm-look-title { font-family: var(--font-serif); font-size: 22px; color: var(--ts-cream); font-weight: 400; margin: 0.3rem 0 0.5rem; }
.ts-potm-look-sub { font-family: var(--font-display); font-size: 15px; color: var(--ts-muted); line-height: 1.7; font-weight: 300; margin: 0; }
.ts-potm-tiles { display: flex; flex-direction: column; gap: 1rem; flex: 1; }
.ts-potm-tile { display: grid; grid-template-columns: 80px 1fr; gap: 1rem; align-items: center; background: rgba(255,255,255,0.06); border-radius: 4px; padding: 0.75rem; text-decoration: none; transition: background 0.2s; }
.ts-potm-tile:hover { background: rgba(255,255,255,0.1); }
.ts-potm-tile-img { width: 80px; height: 80px; border-radius: 4px; overflow: hidden; background: rgba(255,255,255,0.05); flex-shrink: 0; }
.ts-potm-tile-img img { width: 100%; height: 100%; object-fit: cover; }
.ts-potm-tile-placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; }
.ts-potm-tile-name { font-family: var(--font-serif); font-size: 15px; color: var(--ts-cream); font-weight: 400; margin: 0 0 0.3rem; }
.ts-potm-tile-price { font-size: 13px; color: var(--ts-green); font-weight: 500; margin: 0; }
.ts-potm-look-btn { margin-top: 1.5rem; text-align: center; display: block; }

/* ── NEWSLETTER ────────────────────────────────────────────── */
.ts-newsletter-section { padding: 4rem 2rem; }
.ts-newsletter-inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; }
.ts-newsletter-icon { width: 56px; height: 56px; background: var(--ts-green); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-bottom: 1rem; color: var(--ts-darker); }
.ts-newsletter-heading { font-family: var(--font-serif); font-size: 32px; font-weight: 400; line-height: 1.2; margin: 0.5rem 0 1rem; }
.ts-newsletter-sub { font-family: var(--font-display); font-size: 17px; line-height: 1.8; font-weight: 300; opacity: 0.8; margin: 0; }
.ts-newsletter-form { display: flex; flex-direction: column; gap: 0.75rem; }
.ts-newsletter-field { display: flex; flex-direction: column; gap: 0.4rem; }
.ts-newsletter-label { font-size: 10px; letter-spacing: 0.15em; text-transform: uppercase; color: var(--ts-green); font-weight: 500; }
.ts-newsletter-input { background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.15); border-radius: 2px; padding: 12px 16px; font-family: var(--font-body); font-size: 14px; color: var(--ts-cream); outline: none; transition: border-color 0.2s; width: 100%; }
.ts-newsletter-input::placeholder { color: rgba(255,255,255,0.3); }
.ts-newsletter-input:focus { border-color: var(--ts-green); }
.ts-newsletter-btn { padding: 14px; font-family: var(--font-body); font-size: 12px; letter-spacing: 0.15em; text-transform: uppercase; font-weight: 600; border: none; border-radius: 2px; cursor: pointer; transition: opacity 0.2s; margin-top: 0.25rem; }
.ts-newsletter-btn:hover { opacity: 0.85; }
.ts-newsletter-disclaimer { font-size: 11px; color: rgba(255,255,255,0.35); margin-top: 0.5rem; letter-spacing: 0.04em; }
.ts-newsletter-success { background: var(--ts-green); color: var(--ts-darker); padding: 1rem 1.25rem; border-radius: 2px; font-size: 14px; font-weight: 500; }
.ts-newsletter-error { color: #e87a6a; font-size: 13px; margin-top: 0.5rem; }
.ts-newsletter-perks { max-width: 1000px; margin: 2.5rem auto 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; padding-top: 2rem; border-top: 1px solid rgba(255,255,255,0.08); }
.ts-newsletter-perk { display: flex; align-items: center; gap: 0.6rem; }
.ts-newsletter-perk svg { stroke: var(--ts-green); flex-shrink: 0; }
.ts-newsletter-perk span { font-size: 12px; color: var(--ts-muted); font-weight: 400; }

/* Responsive */
@media (max-width: 900px) {
  .ts-potm-inner { grid-template-columns: 1fr; }
  .ts-potm-divider { display: none; }
  .ts-potm-plant { grid-template-columns: 1fr; padding: 2rem 0 0; }
  .ts-potm-plant-img img { aspect-ratio: 16/9; }
  .ts-potm-look { padding: 2rem 0; }
  .ts-newsletter-inner { grid-template-columns: 1fr; gap: 2rem; }
  .ts-newsletter-perks { grid-template-columns: repeat(2, 1fr); }

@media (max-width: 600px) {
  .ts-newsletter-perks { grid-template-columns: 1fr; }
  .ts-potm-inner { margin: 0; }
}


