{"product_id":"jaffa-linen-short-sleeve-shirt","title":"Jaffa Linen Short Sleeve Shirt","description":"\n\u003cstyle\u003e\n  \/* ============================================\n     INLINE CTA — Recurs after every section\n     ============================================ *\/\n  .cv-cta {\n    text-align: center;\n    padding: 60px 6vw 80px;\n    background: #F4EDE4;\n    border-top: 1px solid #d9c8b2;\n  }\n  @media (min-width: 980px) {\n    .cv-cta { padding: 80px 6vw 100px; }\n  }\n\n  .cv-cta-btn {\n    display: inline-flex;\n    align-items: center;\n    gap: 18px;\n    background: #3D2B1F;\n    color: #F4EDE4 !important;\n    padding: 22px 44px;\n    font-family: 'Outfit', sans-serif;\n    font-size: 11.5px;\n    letter-spacing: 3px;\n    text-transform: uppercase;\n    font-weight: 400;\n    transition: background 0.4s ease, transform 0.4s ease;\n    border: 0;\n    cursor: pointer;\n    text-decoration: none;\n  }\n  .cv-cta-btn:hover {\n    background: #2a1d15;\n    transform: translateY(-2px);\n  }\n\n  .cv-cta-label {\n    border-right: 1px solid rgba(244, 237, 228, 0.25);\n    padding-right: 18px;\n  }\n\n  .cv-cta-price {\n    font-family: 'Cormorant Garamond', serif;\n    font-style: italic;\n    font-size: 16px;\n    letter-spacing: 0.5px;\n    text-transform: none;\n    color: #F4EDE4;\n  }\n\n  \/* Smooth scroll to buy section *\/\n  html { scroll-behavior: smooth; }\n  \/* ============================================\n     CASA VALENTI — JAFFA PDP\n     ============================================ *\/\n\n  .cv-pdp, .cv-pdp * { box-sizing: border-box; }\n\n  .cv-pdp {\n    font-family: 'Outfit', -apple-system, BlinkMacSystemFont, sans-serif;\n    color: #3D2B1F;\n    background: #F4EDE4;\n    width: 100%;\n    overflow-x: hidden;\n    line-height: 1.65;\n    -webkit-font-smoothing: antialiased;\n    font-weight: 300;\n  }\n\n  .cv-pdp img { display: block; max-width: 100%; height: auto; }\n\n  .cv-pdp a {\n    color: inherit;\n    text-decoration: none;\n    transition: color 0.4s ease, opacity 0.4s ease;\n  }\n\n  .cv-pdp button { font-family: inherit; cursor: pointer; }\n\n  \/* Typography *\/\n  .cv-serif { font-family: 'Cormorant Garamond', 'Times New Roman', serif; }\n\n  .cv-eyebrow {\n    font-size: 11px;\n    font-weight: 400;\n    letter-spacing: 3.5px;\n    text-transform: uppercase;\n    color: #B08D57;\n    line-height: 1.4;\n  }\n\n  .cv-rule {\n    width: 28px;\n    height: 1px;\n    background: #B08D57;\n    border: 0;\n    margin: 0;\n    opacity: 0.6;\n  }\n\n  \/* ============================================\n     1. BREADCRUMB\n     ============================================ *\/\n  .cv-crumb {\n    padding: 32px 6vw 24px;\n    font-size: 10.5px;\n    letter-spacing: 2.5px;\n    text-transform: uppercase;\n    color: #8a6f55;\n    font-weight: 400;\n  }\n  .cv-crumb a:hover { color: #3D2B1F; }\n  .cv-crumb .sep { margin: 0 14px; opacity: 0.9; }\n  .cv-crumb .current { color: #3D2B1F; }\n\n  \/* ============================================\n     2. MAIN PRODUCT — Gallery + Info\n     ============================================ *\/\n  .cv-hero {\n    display: grid;\n    grid-template-columns: 1fr;\n    gap: 0;\n    padding: 0 0 80px;\n  }\n\n  @media (min-width: 980px) {\n    .cv-hero {\n      grid-template-columns: 1.25fr 1fr;\n      gap: 0;\n      padding: 0 0 120px;\n    }\n  }\n\n  \/* Gallery *\/\n  .cv-pdp .cv-gallery,\n.cv-pdp .cv-gallery picture,\n.cv-pdp .cv-gallery-img,\n.cv-pdp .cv-gallery img {\n  opacity: 1 !important;\n  filter: none !important;\n  -webkit-filter: none !important;\n  mix-blend-mode: normal !important;\n  transition: none !important;\n  animation: none !important;\n  background: transparent !important;\n}\n\n.cv-pdp .cv-gallery-img {\n  width: 100%;\n  aspect-ratio: 4\/5;\n  object-fit: cover;\n  display: block;\n}\n\n.cv-pdp .cv-gallery-feature {\n  aspect-ratio: 1\/1;\n}\n\n.cv-pdp .cv-gallery {\n  display: grid;\n  grid-template-columns: 1fr;\n  gap: 2px;\n  padding: 0 6vw 0 6vw;\n}\n\n@media (min-width: 980px) {\n  .cv-pdp .cv-gallery {\n    padding: 0 0 0 6vw;\n    grid-template-columns: 1fr 1fr;\n  }\n  .cv-pdp .cv-gallery .cv-gallery-feature {\n    grid-column: 1 \/ -1;\n  }\n}\n\n  \/* Product Info *\/\n  .cv-product-info {\n    padding: 60px 6vw;\n    align-self: start;\n  }\n  @media (min-width: 980px) {\n    .cv-product-info {\n      padding: 80px 6vw 80px 5vw;\n      position: sticky;\n      top: 40px;\n    }\n  }\n\n  .cv-info-eyebrow {\n    margin-bottom: 28px;\n    color: #B08D57;\n  }\n\n  .cv-product-title {\n    font-family: 'Cormorant Garamond', serif;\n    font-size: clamp(40px, 5.2vw, 64px);\n    font-weight: 300;\n    line-height: 0.98;\n    letter-spacing: -1px;\n    margin: 0 0 8px;\n    color: #3D2B1F;\n  }\n\n  .cv-product-subtitle {\n    font-family: 'Cormorant Garamond', serif;\n    font-style: italic;\n    font-weight: 400;\n    font-size: 18px;\n    color: #6f5b46;\n    margin: 0 0 28px;\n    letter-spacing: 0.3px;\n  }\n\n  .cv-product-price {\n    font-size: 15px;\n    font-weight: 300;\n    letter-spacing: 1.2px;\n    color: #3D2B1F;\n    margin: 0 0 36px;\n  }\n\n  .cv-divider {\n    width: 100%;\n    height: 1px;\n    background: #d9c8b2;\n    margin: 0 0 32px;\n    border: 0;\n  }\n\n  .cv-product-narrative {\n    font-family: 'Cormorant Garamond', serif;\n    font-size: 17px;\n    font-style: italic;\n    color: #5a4a39;\n    line-height: 1.7;\n    margin: 0 0 40px;\n    max-width: 380px;\n  }\n\n  \/* Size Selector *\/\n  .cv-selector-label {\n    display: flex;\n    justify-content: space-between;\n    align-items: baseline;\n    margin-bottom: 14px;\n  }\n  .cv-selector-title {\n    font-size: 11px;\n    letter-spacing: 2.5px;\n    text-transform: uppercase;\n    color: #3D2B1F;\n    font-weight: 400;\n  }\n  .cv-selector-link {\n    font-size: 11px;\n    letter-spacing: 1.5px;\n    text-transform: uppercase;\n    color: #B08D57;\n    border-bottom: 1px solid #d9c8b2;\n    padding-bottom: 1px;\n  }\n  .cv-selector-link:hover { color: #9C5B3E; border-color: #9C5B3E; }\n\n  .cv-sizes {\n    display: grid;\n    grid-template-columns: repeat(5, 1fr);\n    gap: 6px;\n    margin-bottom: 28px;\n  }\n  .cv-size-btn {\n    background: transparent;\n    border: 1px solid #d9c8b2;\n    padding: 14px 0;\n    font-size: 12px;\n    letter-spacing: 1.5px;\n    color: #3D2B1F;\n    transition: all 0.3s ease;\n    font-weight: 400;\n  }\n  .cv-size-btn:hover {\n    border-color: #3D2B1F;\n  }\n  .cv-size-btn.active {\n    background: #3D2B1F;\n    border-color: #3D2B1F;\n    color: #F4EDE4;\n  }\n  .cv-size-btn[disabled] {\n    opacity: 0.35;\n    cursor: not-allowed;\n    text-decoration: line-through;\n  }\n\n  \/* Add to cart *\/\n  .cv-atc {\n    width: 100%;\n    background: #3D2B1F;\n    color: #F4EDE4;\n    border: 0;\n    padding: 22px;\n    font-size: 11.5px;\n    letter-spacing: 3px;\n    text-transform: uppercase;\n    font-weight: 400;\n    transition: background 0.4s ease;\n    margin-bottom: 16px;\n  }\n  .cv-atc:hover { background: #2a1d15; }\n  .cv-atc[disabled] { opacity: 0.5; cursor: not-allowed; }\n\n  .cv-atc-secondary {\n    width: 100%;\n    background: transparent;\n    color: #3D2B1F;\n    border: 1px solid #3D2B1F;\n    padding: 21px;\n    font-size: 11.5px;\n    letter-spacing: 3px;\n    text-transform: uppercase;\n    font-weight: 400;\n    transition: all 0.4s ease;\n    margin-bottom: 36px;\n  }\n  .cv-atc-secondary:hover {\n    background: #3D2B1F;\n    color: #F4EDE4;\n  }\n\n  \/* Key details strip *\/\n  .cv-keydetails {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 24px;\n    padding: 28px 0 0;\n    border-top: 1px solid #d9c8b2;\n  }\n  .cv-keydetail {\n    font-size: 11.5px;\n    letter-spacing: 1px;\n    line-height: 1.5;\n    color: #5a4a39;\n  }\n  .cv-keydetail strong {\n    display: block;\n    color: #3D2B1F;\n    font-weight: 400;\n    margin-bottom: 4px;\n    letter-spacing: 1.8px;\n    font-size: 10.5px;\n    text-transform: uppercase;\n  }\n\n  \/* ============================================\n     3. SECTION SCAFFOLDING\n     ============================================ *\/\n  .cv-section {\n    padding: 100px 6vw;\n    border-top: 1px solid #d9c8b2;\n  }\n  @media (min-width: 980px) {\n    .cv-section { padding: 140px 6vw; }\n  }\n\n  .cv-section-header {\n    text-align: center;\n    max-width: 720px;\n    margin: 0 auto 70px;\n  }\n  .cv-section-no {\n    font-size: 10.5px;\n    letter-spacing: 4px;\n    text-transform: uppercase;\n    color: #B08D57;\n    margin-bottom: 22px;\n    font-weight: 400;\n  }\n  .cv-section-title {\n    font-family: 'Cormorant Garamond', serif;\n    font-size: clamp(34px, 4.5vw, 56px);\n    font-weight: 300;\n    line-height: 1.05;\n    letter-spacing: -0.6px;\n    color: #3D2B1F;\n    margin: 0 0 24px;\n  }\n  .cv-section-title em {\n    font-style: italic;\n    color: #9C5B3E;\n  }\n  .cv-section-lede {\n    font-family: 'Cormorant Garamond', serif;\n    font-size: 19px;\n    font-style: italic;\n    color: #5a4a39;\n    line-height: 1.65;\n    margin: 0;\n  }\n\n  \/* ============================================\n     4. THE PRINT — Panoramic Story\n     ============================================ *\/\n  .cv-print {\n    background: #F4EDE4;\n    text-align: center;\n  }\n  .cv-panoramic-frame {\n    margin: 0 auto;\n    max-width: 1400px;\n    background: #EDE3D5;\n    padding: 6px;\n  }\n  .cv-panoramic-img {\n    width: 100%;\n    aspect-ratio: 4\/1;\n    object-fit: cover;\n    background: #F4EDE4;\n  }\n  .cv-panoramic-caption {\n    margin: 28px auto 0;\n    max-width: 580px;\n    font-size: 12px;\n    letter-spacing: 1.2px;\n    color: #8a6f55;\n    line-height: 1.7;\n    text-transform: uppercase;\n    font-weight: 400;\n  }\n\n  .cv-print-meta {\n    margin: 80px auto 0;\n    max-width: 780px;\n    display: grid;\n    grid-template-columns: 1fr;\n    gap: 40px;\n  }\n  @media (min-width: 720px) {\n    .cv-print-meta { grid-template-columns: 1fr 1fr 1fr; }\n  }\n  .cv-print-meta-item {\n    text-align: center;\n  }\n  .cv-print-meta-eyebrow {\n    font-size: 10px;\n    letter-spacing: 3px;\n    text-transform: uppercase;\n    color: #B08D57;\n    margin-bottom: 10px;\n  }\n  .cv-print-meta-value {\n    font-family: 'Cormorant Garamond', serif;\n    font-size: 22px;\n    color: #3D2B1F;\n    font-style: italic;\n  }\n\n  \/* ============================================\n     5. THE CLOTH — Three Columns\n     ============================================ *\/\n  .cv-cloth-grid {\n    display: grid;\n    grid-template-columns: 1fr;\n    gap: 60px;\n    max-width: 1300px;\n    margin: 0 auto;\n  }\n  @media (min-width: 880px) {\n    .cv-cloth-grid {\n      grid-template-columns: 1fr 1fr 1fr;\n      gap: 50px;\n    }\n  }\n  .cv-cloth-card {\n    text-align: center;\n  }\n  .cv-cloth-img {\n    width: 100%;\n    aspect-ratio: 3\/4;\n    object-fit: cover;\n    background: #EDE3D5;\n    margin-bottom: 28px;\n  }\n  .cv-cloth-no {\n    font-size: 11px;\n    letter-spacing: 2.5px;\n    color: #B08D57;\n    margin-bottom: 12px;\n    font-weight: 400;\n  }\n  .cv-cloth-title {\n    font-family: 'Cormorant Garamond', serif;\n    font-size: 26px;\n    font-weight: 400;\n    color: #3D2B1F;\n    margin: 0 0 14px;\n    letter-spacing: -0.3px;\n  }\n  .cv-cloth-text {\n    font-size: 14px;\n    color: #5a4a39;\n    line-height: 1.75;\n    max-width: 320px;\n    margin: 0 auto;\n    font-weight: 300;\n  }\n\n  \/* ============================================\n     6. EDITORIAL — Lifestyle Gallery\n     ============================================ *\/\n  .cv-editorial {\n    background: #EDE3D5;\n    padding: 100px 0;\n  }\n  @media (min-width: 980px) {\n    .cv-editorial { padding: 140px 0; }\n  }\n  .cv-editorial .cv-section-header { padding: 0 6vw; }\n\n  .cv-editorial-grid {\n    display: grid;\n    grid-template-columns: 1fr;\n    gap: 4px;\n    background: #F4EDE4;\n    padding: 0 4px;\n  }\n  @media (min-width: 720px) {\n    .cv-editorial-grid {\n      grid-template-columns: repeat(12, 1fr);\n      gap: 8px;\n      padding: 0 6vw;\n    }\n  }\n  .cv-edit-img {\n    width: 100%;\n    object-fit: cover;\n    aspect-ratio: 3\/4;\n    background: #F4EDE4;\n  }\n  @media (min-width: 720px) {\n    .cv-edit-1 { grid-column: 1 \/ 7; aspect-ratio: 3\/4; }\n    .cv-edit-2 { grid-column: 7 \/ 13; aspect-ratio: 3\/4; align-self: start; margin-top: 80px; }\n    .cv-edit-3 { grid-column: 1 \/ 5; aspect-ratio: 4\/5; }\n    .cv-edit-4 { grid-column: 5 \/ 13; aspect-ratio: 16\/10; }\n  }\n\n  .cv-editorial-quote {\n    text-align: center;\n    padding: 80px 6vw 0;\n    max-width: 760px;\n    margin: 0 auto;\n  }\n  .cv-editorial-quote p {\n    font-family: 'Cormorant Garamond', serif;\n    font-size: clamp(22px, 2.6vw, 30px);\n    font-style: italic;\n    line-height: 1.45;\n    color: #3D2B1F;\n    margin: 0 0 18px;\n  }\n  .cv-editorial-quote span {\n    font-size: 11px;\n    letter-spacing: 2.5px;\n    color: #B08D57;\n    text-transform: uppercase;\n  }\n\n  \/* ============================================\n     7. THE MAKING — Specs\n     ============================================ *\/\n  .cv-making {\n    background: #F4EDE4;\n  }\n  .cv-making-layout {\n    display: grid;\n    grid-template-columns: 1fr;\n    gap: 60px;\n    max-width: 1280px;\n    margin: 0 auto;\n  }\n  @media (min-width: 980px) {\n    .cv-making-layout {\n      grid-template-columns: 1fr 1.05fr;\n      gap: 100px;\n      align-items: center;\n    }\n  }\n\n  .cv-making-img {\n    width: 100%;\n    aspect-ratio: 4\/5;\n    object-fit: cover;\n    background: #EDE3D5;\n  }\n\n  .cv-spec-list {\n    list-style: none;\n    padding: 0;\n    margin: 0;\n  }\n  .cv-spec-row {\n    display: grid;\n    grid-template-columns: 140px 1fr;\n    gap: 24px;\n    padding: 18px 0;\n    border-bottom: 1px solid #d9c8b2;\n    align-items: baseline;\n  }\n  .cv-spec-row:first-child { padding-top: 0; }\n  .cv-spec-row:last-child { border-bottom: 0; }\n  .cv-spec-label {\n    font-size: 10.5px;\n    letter-spacing: 2.5px;\n    text-transform: uppercase;\n    color: #B08D57;\n    font-weight: 400;\n  }\n  .cv-spec-value {\n    font-family: 'Cormorant Garamond', serif;\n    font-size: 18px;\n    color: #3D2B1F;\n    font-weight: 400;\n  }\n  .cv-spec-value em { font-style: italic; color: #9C5B3E; }\n\n  \/* ============================================\n     8. COMPANIONS\n     ============================================ *\/\n  .cv-companions {\n    background: #EDE3D5;\n  }\n  .cv-companion-grid {\n    display: grid;\n    grid-template-columns: 1fr;\n    gap: 40px;\n    max-width: 1100px;\n    margin: 0 auto;\n  }\n  @media (min-width: 720px) {\n    .cv-companion-grid { grid-template-columns: 1fr 1fr; gap: 30px; }\n  }\n  .cv-companion {\n    background: #F4EDE4;\n    padding: 0;\n    transition: transform 0.6s ease;\n    text-align: center;\n  }\n  .cv-companion:hover { transform: translateY(-4px); }\n  .cv-companion-img {\n    width: 100%;\n    aspect-ratio: 4\/5;\n    object-fit: cover;\n    background: #EDE3D5;\n  }\n  .cv-companion-info {\n    padding: 28px 32px 36px;\n  }\n  .cv-companion-eyebrow {\n    font-size: 10.5px;\n    letter-spacing: 3px;\n    text-transform: uppercase;\n    color: #B08D57;\n    margin-bottom: 8px;\n  }\n  .cv-companion-title {\n    font-family: 'Cormorant Garamond', serif;\n    font-size: 28px;\n    color: #3D2B1F;\n    margin: 0 0 6px;\n    font-weight: 400;\n  }\n  .cv-companion-price {\n    font-size: 13px;\n    color: #5a4a39;\n    letter-spacing: 0.8px;\n    margin-bottom: 18px;\n  }\n  .cv-companion-link {\n    font-size: 11px;\n    letter-spacing: 2.5px;\n    text-transform: uppercase;\n    color: #3D2B1F;\n    border-bottom: 1px solid #B08D57;\n    padding-bottom: 2px;\n  }\n  .cv-companion-link:hover { color: #9C5B3E; border-color: #9C5B3E; }\n\n  \/* ============================================\n     9. DETAILS ACCORDION\n     ============================================ *\/\n  .cv-details-section {\n    max-width: 880px;\n    margin: 0 auto;\n  }\n  .cv-details-section details {\n    border-bottom: 1px solid #d9c8b2;\n    padding: 0;\n  }\n  .cv-details-section details:first-of-type {\n    border-top: 1px solid #d9c8b2;\n  }\n  .cv-details-section summary {\n    list-style: none;\n    cursor: pointer;\n    padding: 28px 0;\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    font-family: 'Cormorant Garamond', serif;\n    font-size: 22px;\n    color: #3D2B1F;\n    font-weight: 400;\n    transition: color 0.3s ease;\n  }\n  .cv-details-section summary::-webkit-details-marker { display: none; }\n  .cv-details-section summary:hover { color: #9C5B3E; }\n  .cv-details-section summary::after {\n    content: '+';\n    font-size: 22px;\n    color: #B08D57;\n    font-family: 'Outfit', sans-serif;\n    font-weight: 300;\n    transition: transform 0.3s ease;\n  }\n  .cv-details-section details[open] summary::after {\n    content: '–';\n  }\n  .cv-details-content {\n    padding: 0 0 32px;\n    font-size: 14.5px;\n    color: #5a4a39;\n    line-height: 1.85;\n    max-width: 700px;\n    font-weight: 300;\n  }\n  .cv-details-content p { margin: 0 0 14px; }\n  .cv-details-content p:last-child { margin-bottom: 0; }\n  .cv-details-content ul {\n    list-style: none;\n    padding: 0;\n    margin: 8px 0 0;\n  }\n  .cv-details-content li {\n    padding: 6px 0;\n    display: grid;\n    grid-template-columns: 160px 1fr;\n    gap: 16px;\n  }\n  .cv-details-content li strong {\n    font-size: 11px;\n    letter-spacing: 2px;\n    text-transform: uppercase;\n    color: #B08D57;\n    font-weight: 400;\n  }\n\n  \/* ============================================\n     10. SIGNATURE\n     ============================================ *\/\n  .cv-signature {\n    text-align: center;\n    padding: 120px 6vw 100px;\n    background: #F4EDE4;\n    border-top: 1px solid #d9c8b2;\n  }\n  .cv-sig-monogram {\n    font-family: 'Cormorant Garamond', serif;\n    font-style: italic;\n    font-size: 38px;\n    color: #B08D57;\n    margin-bottom: 24px;\n    letter-spacing: 0.5px;\n  }\n  .cv-sig-line {\n    font-family: 'Cormorant Garamond', serif;\n    font-size: 22px;\n    font-style: italic;\n    color: #3D2B1F;\n    line-height: 1.5;\n    max-width: 540px;\n    margin: 0 auto 24px;\n    font-weight: 400;\n  }\n  .cv-sig-meta {\n    font-size: 10.5px;\n    letter-spacing: 3px;\n    text-transform: uppercase;\n    color: #8a6f55;\n  }\n\n  \/* ============================================\n     UTILITIES\n     ============================================ *\/\n  .cv-fade-in {\n    opacity: 1;\n    transform: translateY(16px);\n    transition: opacity 1.1s ease, transform 1.1s ease;\n  }\n  .cv-fade-in.visible {\n    opacity: 1;\n    transform: translateY(0);\n  }\n\u003c\/style\u003e\n\n\u003cdiv class=\"cv-pdp\"\u003e\n\n  \u003c!-- ============================================\n       1. BREADCRUMB\n       ============================================ --\u003e\n  \u003cdiv class=\"cv-crumb\"\u003e\n    \u003ca href=\"\/\"\u003eCasa Valenti\u003c\/a\u003e\n    \u003cspan class=\"sep\"\u003e\/\u003c\/span\u003e\n    \u003ca href=\"\/collections\/the-grand-tour\"\u003eThe Grand Tour\u003c\/a\u003e\n    \u003cspan class=\"sep\"\u003e\/\u003c\/span\u003e\n    \u003cspan class=\"current\"\u003eThe Jaffa Short Sleeve Shirt\u003c\/span\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- ============================================\n       2. HERO — Gallery + Product Info\n       ============================================ --\u003e\n  \u003csection class=\"cv-hero\"\u003e\n\n    \u003cdiv class=\"cv-gallery\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0764\/1874\/4458\/files\/JaffaShortsleeve1ratio.jpg?v=1777626922\" alt=\"Jaffa Short Sleeve Shirt — Front\" class=\"cv-gallery-img cv-gallery-feature\" loading=\"eager\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0764\/1874\/4458\/files\/Back_Jaffa_Final-1-1-square.jpg?v=1777493612\" alt=\"Jaffa Short Sleeve Shirt — Back\" class=\"cv-gallery-img\" loading=\"lazy\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0764\/1874\/4458\/files\/button-closeup1_9926b292-d7bd-4674-b94d-60fcf9833f8f.jpg?v=1777494019\" alt=\"Jaffa Shirt — Print Detail\" class=\"cv-gallery-img\" loading=\"lazy\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0764\/1874\/4458\/files\/Gemini_Generated_Image_9p2ev59p2ev59p2e.jpg?v=1777627676\" alt=\"Jaffa Shirt — Worn\" class=\"cv-gallery-img\" loading=\"lazy\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0764\/1874\/4458\/files\/Gemini_Generated_Image_9rqfk89rqfk89rqf.jpg?v=1777627753\" alt=\"Jaffa Shirt — Flat Lay\" class=\"cv-gallery-img\" loading=\"lazy\"\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"cv-product-info\"\u003e\n\n      \u003cdiv class=\"cv-info-eyebrow cv-eyebrow\"\u003eThe Grand Tour · Drop Nº 01\u003c\/div\u003e\n\n      \u003ch1 class=\"cv-product-title\"\u003eJaffa\u003c\/h1\u003e\n      \u003cp class=\"cv-product-subtitle\"\u003eThe Short Sleeve Shirt\u003c\/p\u003e\n\n      \u003cp class=\"cv-product-price\"\u003e$119.99 USD\u003c\/p\u003e\n\n      \n\n      \u003c!-- Key Details Strip --\u003e\n      \u003cdiv class=\"cv-keydetails\"\u003e\n        \u003cdiv class=\"cv-keydetail\"\u003e\n          \u003cstrong\u003eComposition\u003c\/strong\u003e\n          100% European-style linen, 140–160 GSM\n        \u003c\/div\u003e\n        \u003cdiv class=\"cv-keydetail\"\u003e\n          \u003cstrong\u003ePrint\u003c\/strong\u003e\n          Engineered panoramic, digital reactive\n        \u003c\/div\u003e\n        \u003cdiv class=\"cv-keydetail\"\u003e\n          \u003cstrong\u003eButtons\u003c\/strong\u003e\n          Hand-finished coconut shell\n        \u003c\/div\u003e\n        \u003cdiv class=\"cv-keydetail\"\u003e\n          \u003cstrong\u003eMade In\u003c\/strong\u003e\n          Extreme detail, OEKO-TEX certified\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\u003c!-- ============================================\n       INLINE CTA\n       ============================================ --\u003e\n  \u003cdiv class=\"cv-cta\"\u003e\n    \u003ca href=\"#top\" class=\"cv-cta-btn\"\u003e\n      \u003cspan class=\"cv-cta-label\"\u003eReserve the Jaffa Shirt\u003c\/span\u003e\n      \u003cspan class=\"cv-cta-price\"\u003e$119.99\u003c\/span\u003e\n    \u003c\/a\u003e\n  \u003c\/div\u003e\n  \u003c!-- ============================================\n       3. THE PRINT — Panoramic Story\n       ============================================ --\u003e\n  \u003csection class=\"cv-section cv-print\"\u003e\n\n    \u003cdiv class=\"cv-section-header\"\u003e\n      \u003cdiv class=\"cv-section-no\"\u003eNº 01 — The Print\u003c\/div\u003e\n      \u003ch2 class=\"cv-section-title\"\u003eWhere the sea\u003cbr\u003emeets \u003cem\u003estone\u003c\/em\u003e.\u003c\/h2\u003e\n      \u003cp class=\"cv-section-lede\"\u003e\n        For four thousand years, ships have come into Jaffa harbor — Phoenician, Roman, Crusader, Ottoman.\n        We drew its skyline as one continuous line, then printed it across the body of the shirt\n        in a single, unbroken panorama.\n      \u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"cv-panoramic-frame\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0764\/1874\/4458\/files\/Jaffa_Artwork.jpg?v=1777628394\" alt=\"Jaffa Panoramic Artwork\" class=\"cv-panoramic-img\"\u003e\n    \u003c\/div\u003e\n\n    \u003cp class=\"cv-panoramic-caption\"\u003e\n      Hand-illustrated panorama of the Jaffa skyline · Pre-washed cream linen\n    \u003c\/p\u003e\n\n  \n\n  \u003c\/section\u003e\n\u003c!-- ============================================\n       INLINE CTA\n       ============================================ --\u003e\n  \u003cdiv class=\"cv-cta\"\u003e\n    \u003ca href=\"#top\" class=\"cv-cta-btn\"\u003e\n      \u003cspan class=\"cv-cta-label\"\u003eAdd to Wardrobe\u003c\/span\u003e\n      \u003cspan class=\"cv-cta-price\"\u003e$119.99\u003c\/span\u003e\n    \u003c\/a\u003e\n  \u003c\/div\u003e\n  \u003c!-- ============================================\n       4. THE CLOTH — Three Columns\n       ============================================ --\u003e\n  \u003csection class=\"cv-section\"\u003e\n\n    \u003cdiv class=\"cv-section-header\"\u003e\n      \u003cdiv class=\"cv-section-no\"\u003eNº 02 — The Cloth\u003c\/div\u003e\n      \u003ch2 class=\"cv-section-title\"\u003eThree things\u003cbr\u003ewe got \u003cem\u003eright\u003c\/em\u003e.\u003c\/h2\u003e\n      \u003cp class=\"cv-section-lede\"\u003e\n        A shirt is the sum of its smallest decisions.\n        These are the three we considered longest.\n      \u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"cv-cloth-grid\"\u003e\n\n      \u003cdiv class=\"cv-cloth-card\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0764\/1874\/4458\/files\/linen-closeup2.jpg?v=1776067403\" alt=\"Pre-washed linen weave\" class=\"cv-cloth-img\"\u003e\n        \u003cdiv class=\"cv-cloth-no\"\u003eI.\u003c\/div\u003e\n        \u003ch3 class=\"cv-cloth-title\"\u003ePre-Washed Linen\u003c\/h3\u003e\n        \u003cp class=\"cv-cloth-text\"\u003e\n          A 140–160 GSM weave, OEKO-TEX certified, garment-washed before construction.\n          The cloth arrives already softened — broken in by water, not by time.\n        \u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"cv-cloth-card\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0764\/1874\/4458\/files\/button-closeup2.jpg?v=1776067403\" alt=\"Coconut shell buttons\" class=\"cv-cloth-img\"\u003e\n        \u003cdiv class=\"cv-cloth-no\"\u003eII.\u003c\/div\u003e\n        \u003ch3 class=\"cv-cloth-title\"\u003eCoconut Shell Buttons\u003c\/h3\u003e\n        \u003cp class=\"cv-cloth-text\"\u003e\n          Hand-finished from coconut husk, sanded and oiled by hand.\n          No two are identical — the grain on yours will not be on anyone else's.\n        \u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"cv-cloth-card\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0764\/1874\/4458\/files\/button-closeup1_9926b292-d7bd-4674-b94d-60fcf9833f8f.jpg?v=1777494019\" alt=\"Cuban collar detail\" class=\"cv-cloth-img\"\u003e\n        \u003cdiv class=\"cv-cloth-no\"\u003eIII.\u003c\/div\u003e\n        \u003ch3 class=\"cv-cloth-title\"\u003eA Soft Cuban Collar\u003c\/h3\u003e\n        \u003cp class=\"cv-cloth-text\"\u003e\n          Cut to roll open without fastening, finished with a terracotta contrast trim\n          along the inner placket. Worn with the top button undone.\n        \u003c\/p\u003e\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\u003c!-- ============================================\n       INLINE CTA\n       ============================================ --\u003e\n  \u003cdiv class=\"cv-cta\"\u003e\n    \u003ca href=\"#top\" class=\"cv-cta-btn\"\u003e\n      \u003cspan class=\"cv-cta-label\"\u003eBegin The Summer\u003c\/span\u003e\n      \u003cspan class=\"cv-cta-price\"\u003e$119.99\u003c\/span\u003e\n    \u003c\/a\u003e\n  \u003c\/div\u003e\n  \u003c!-- ============================================\n       5. EDITORIAL — In Wear\n       ============================================ --\u003e\n  \u003csection class=\"cv-editorial\"\u003e\n\n    \u003cdiv class=\"cv-section-header\"\u003e\n      \u003cdiv class=\"cv-section-no\"\u003eNº 03 — In Wear\u003c\/div\u003e\n      \u003ch2 class=\"cv-section-title\"\u003eEight in the morning,\u003cbr\u003ethe \u003cem\u003eold port\u003c\/em\u003e.\u003c\/h2\u003e\n      \u003cp class=\"cv-section-lede\"\u003e\n        Photographed over two days in Jaffa — limestone walls, salt air,\n        the unhurried rhythm of a city that has seen everything.\n      \u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"cv-editorial-grid\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0764\/1874\/4458\/files\/Shirt-stairs2.jpg?v=1776083632\" alt=\"Editorial — Stairs\" class=\"cv-edit-img cv-edit-1\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0764\/1874\/4458\/files\/Shirt-Hammock4.jpg?v=1776083632\" alt=\"Editorial — Hammock\" class=\"cv-edit-img cv-edit-2\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0764\/1874\/4458\/files\/Gemini_Generated_Image_7l5b047l5b047l5b.jpg?v=1777630953\" alt=\"Editorial — Window\" class=\"cv-edit-img cv-edit-3\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0764\/1874\/4458\/files\/Gemini_Generated_Image_achinvachinvachi.jpg?v=1777630953\" alt=\"Editorial — Golden Hour\" class=\"cv-edit-img cv-edit-4\"\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"cv-editorial-quote\"\u003e\n      \u003cp\u003e\n        \"I wanted a shirt that looked like it had been\u003cbr\u003e\n        somewhere — not designed to look that way,\u003cbr\u003e\n        but actually \u003cem\u003earrived\u003c\/em\u003e.\"\n      \u003c\/p\u003e\n      \u003cspan\u003e— Shlomi , Founder\u003c\/span\u003e\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\u003c!-- ============================================\n       INLINE CTA\n       ============================================ --\u003e\n  \u003cdiv class=\"cv-cta\"\u003e\n    \u003ca href=\"#top\" class=\"cv-cta-btn\"\u003e\n      \u003cspan class=\"cv-cta-label\"\u003eMake It Yours\u003c\/span\u003e\n      \u003cspan class=\"cv-cta-price\"\u003e$119.99\u003c\/span\u003e\n    \u003c\/a\u003e\n  \u003c\/div\u003e\n  \u003c!-- ============================================\n       6. THE MAKING — Atelier + Specs\n       ============================================ --\u003e\n  \u003csection class=\"cv-section cv-making\"\u003e\n\n    \u003cdiv class=\"cv-section-header\"\u003e\n      \u003cdiv class=\"cv-section-no\"\u003eNº 04 — The Making\u003c\/div\u003e\n      \u003ch2 class=\"cv-section-title\"\u003eThe \u003cem\u003eAtelier\u003c\/em\u003e.\u003c\/h2\u003e\n      \u003cp class=\"cv-section-lede\"\u003e\n        Cut and sewn in small runs by a workshop we visit personally.\n      \u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"cv-making-layout\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0764\/1874\/4458\/files\/Gemini_Generated_Image_gz386agz386agz38.png?v=1777629636\" alt=\"The atelier\" class=\"cv-making-img\"\u003e\n\n      \u003cul class=\"cv-spec-list\"\u003e\n        \u003cli class=\"cv-spec-row\"\u003e\n          \u003cspan class=\"cv-spec-label\"\u003eComposition\u003c\/span\u003e\n          \u003cspan class=\"cv-spec-value\"\u003e100% Linen\u003c\/span\u003e\n        \u003c\/li\u003e\n        \u003cli class=\"cv-spec-row\"\u003e\n          \u003cspan class=\"cv-spec-label\"\u003eWeight\u003c\/span\u003e\n          \u003cspan class=\"cv-spec-value\"\u003e140–160 GSM\u003c\/span\u003e\n        \u003c\/li\u003e\n        \u003cli class=\"cv-spec-row\"\u003e\n          \u003cspan class=\"cv-spec-label\"\u003eFinish\u003c\/span\u003e\n          \u003cspan class=\"cv-spec-value\"\u003e\u003cem\u003ePre-washed\u003c\/em\u003e, garment-softened\u003c\/span\u003e\n        \u003c\/li\u003e\n        \u003cli class=\"cv-spec-row\"\u003e\n          \u003cspan class=\"cv-spec-label\"\u003eConstruction\u003c\/span\u003e\n          \u003cspan class=\"cv-spec-value\"\u003eFrench seams, 12 stitches\/inch\u003c\/span\u003e\n        \u003c\/li\u003e\n        \u003cli class=\"cv-spec-row\"\u003e\n          \u003cspan class=\"cv-spec-label\"\u003eButtons\u003c\/span\u003e\n          \u003cspan class=\"cv-spec-value\"\u003eHand-finished coconut shell\u003c\/span\u003e\n        \u003c\/li\u003e\n        \u003cli class=\"cv-spec-row\"\u003e\n          \u003cspan class=\"cv-spec-label\"\u003eTrim\u003c\/span\u003e\n          \u003cspan class=\"cv-spec-value\"\u003eTerracotta contrast inner placket\u003c\/span\u003e\n        \u003c\/li\u003e\n        \u003cli class=\"cv-spec-row\"\u003e\n          \u003cspan class=\"cv-spec-label\"\u003ePrint\u003c\/span\u003e\n          \u003cspan class=\"cv-spec-value\"\u003eDigital reactive\u003c\/span\u003e\n        \u003c\/li\u003e\n        \u003cli class=\"cv-spec-row\"\u003e\n          \u003cspan class=\"cv-spec-label\"\u003eProduction\u003c\/span\u003e\n          \u003cspan class=\"cv-spec-value\"\u003e\u003cem\u003eLimited to 300 pieces\u003c\/em\u003e\u003c\/span\u003e\n        \u003c\/li\u003e\n      \u003c\/ul\u003e\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\u003c!-- ============================================\n       INLINE CTA\n       ============================================ --\u003e\n  \u003cdiv class=\"cv-cta\"\u003e\n    \u003ca href=\"#top\" class=\"cv-cta-btn\"\u003e\n      \u003cspan class=\"cv-cta-label\"\u003eClaim Your Piece - 1 Out Of 300\u003c\/span\u003e\n      \u003cspan class=\"cv-cta-price\"\u003e$119.99\u003c\/span\u003e\n    \u003c\/a\u003e\n  \u003c\/div\u003e\n  \u003c!-- ============================================\n       7. COMPANIONS — Complete the Drop\n       ============================================ --\u003e\n  \u003csection class=\"cv-section cv-companions\"\u003e\n\n    \u003cdiv class=\"cv-section-header\"\u003e\n      \u003cdiv class=\"cv-section-no\"\u003eThe Jaffa Drop\u003c\/div\u003e\n      \u003ch2 class=\"cv-section-title\"\u003eWorn \u003cem\u003etogether\u003c\/em\u003e.\u003c\/h2\u003e\n      \u003cp class=\"cv-section-lede\"\u003e\n        Designed as a set. Released as a set.\n        Each piece of the Jaffa drop carries a different fragment of the same panorama.\n      \u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"cv-companion-grid\"\u003e\n\n      \u003ca href=\"\/products\/jaffa-short-sleeve-shirt\" class=\"cv-companion\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0764\/1874\/4458\/files\/JaffaShortsleeve1ratio.jpg?v=1777626922\" alt=\"Jaffa Short Sleeve Shirt\" class=\"cv-companion-img\"\u003e\n        \u003cdiv class=\"cv-companion-info\"\u003e\n          \u003cdiv class=\"cv-companion-eyebrow\"\u003eDrop Nº 01 · 001\u003c\/div\u003e\n          \u003ch3 class=\"cv-companion-title\"\u003eThe Short Sleeve Shirt\u003c\/h3\u003e\n          \u003cdiv class=\"cv-companion-price\"\u003e$119.99\u003c\/div\u003e\n          \u003cspan class=\"cv-companion-link\"\u003eView · Currently Viewing\u003c\/span\u003e\n        \u003c\/div\u003e\n      \u003c\/a\u003e\n\n      \u003ca href=\"\/products\/jaffa-shorts\" class=\"cv-companion\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0764\/1874\/4458\/files\/Jaffa_Shorts_Front_78f56555-1f36-46e4-949a-4923366cf49f.jpg?v=1777629789\" alt=\"Jaffa Shorts\" class=\"cv-companion-img\"\u003e\n        \u003cdiv class=\"cv-companion-info\"\u003e\n          \u003cdiv class=\"cv-companion-eyebrow\"\u003eDrop Nº 01 · 002\u003c\/div\u003e\n          \u003ch3 class=\"cv-companion-title\"\u003eThe Shorts\u003c\/h3\u003e\n          \u003cdiv class=\"cv-companion-price\"\u003e$109.99\u003c\/div\u003e\n          \u003cspan class=\"cv-companion-link\"\u003eView Shorts →\u003c\/span\u003e\n        \u003c\/div\u003e\n      \u003c\/a\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\u003c!-- ============================================\n       INLINE CTA\n       ============================================ --\u003e\n  \u003cdiv class=\"cv-cta\"\u003e\n    \u003ca href=\"#top\" class=\"cv-cta-btn\"\u003e\n      \u003cspan class=\"cv-cta-label\"\u003eReserve Before They're Gone\u003c\/span\u003e\n      \u003cspan class=\"cv-cta-price\"\u003e$119.99\u003c\/span\u003e\n    \u003c\/a\u003e\n  \u003c\/div\u003e\n  \u003c!-- ============================================\n       8. DETAILS ACCORDION\n       ============================================ --\u003e\n  \u003csection class=\"cv-section\" id=\"size-guide\"\u003e\n\n    \u003cdiv class=\"cv-section-header\"\u003e\n      \u003cdiv class=\"cv-section-no\"\u003eParticulars\u003c\/div\u003e\n      \u003ch2 class=\"cv-section-title\"\u003eEverything \u003cem\u003eelse\u003c\/em\u003e.\u003c\/h2\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"cv-details-section\"\u003e\n\n      \u003cdetails\u003e\n        \u003csummary\u003eMaterials \u0026amp; Composition\u003c\/summary\u003e\n        \u003cdiv class=\"cv-details-content\"\u003e\n          \u003cp\u003e100% European-style linen, woven at 140–160 GSM and OEKO-TEX Standard 100 certified — meaning every component, from cloth to thread, has been tested for harmful substances.\u003c\/p\u003e\n          \u003cp\u003eThe cloth is garment-washed before construction, lending the lived-in hand we look for. The print is applied via digital reactive process, fixing pigment into the fibre rather than sitting on top of it. Buttons are hand-finished coconut shell. Hardware is antique brass.\u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails\u003e\n        \u003csummary\u003eCare\u003c\/summary\u003e\n        \u003cdiv class=\"cv-details-content\"\u003e\n          \u003cp\u003eLinen is forgiving. Treat it as such.\u003c\/p\u003e\n          \u003cul\u003e\n            \u003cli\u003e\n\u003cstrong\u003eWash\u003c\/strong\u003e Cold, gentle cycle, inside out\u003c\/li\u003e\n            \u003cli\u003e\n\u003cstrong\u003eDry\u003c\/strong\u003e Lay flat or hang in shade — never tumble dry\u003c\/li\u003e\n            \u003cli\u003e\n\u003cstrong\u003eIron\u003c\/strong\u003e Optional. Linen is meant to crease.\u003c\/li\u003e\n            \u003cli\u003e\n\u003cstrong\u003eStorage\u003c\/strong\u003e Folded, in a breathable drawer\u003c\/li\u003e\n          \u003c\/ul\u003e\n          \u003cp style=\"margin-top:18px;\"\u003eAvoid bleach, fabric softener, and dry-cleaning. The print is set permanently and will not fade with normal washing.\u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails\u003e\n        \u003csummary\u003eShipping\u003c\/summary\u003e\n        \u003cdiv class=\"cv-details-content\"\u003e\n          \u003cp\u003eComplimentary worldwide shipping on all orders.\u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails\u003e\n        \u003csummary\u003eProvenance\u003c\/summary\u003e\n        \u003cdiv class=\"cv-details-content\"\u003e\n          \u003cp\u003eThe Jaffa shirt is the first piece of Casa Valenti's first collection — The Grand Tour — released Summer 2026. Each city in the Grand Tour is rendered as a single panoramic line drawing, printed in a colour drawn from that city's stone. Jaffa wears golden ochre, the colour of limestone at four o'clock.\u003c\/p\u003e\n          \u003cp\u003eThe print artwork was illustrated specifically for this collection and is not available outside it. Production is intentionally limited.\u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n  \u003c!-- ============================================\n       9. SIGNATURE\n       ============================================ --\u003e\n  \u003csection class=\"cv-signature\"\u003e\n    \u003cdiv class=\"cv-sig-monogram\"\u003eCasaValenti.\u003c\/div\u003e\n    \u003cp class=\"cv-sig-line\"\u003e\n      \"Made for the part of summer\u003cbr\u003ethat has nowhere to be.\"\n    \u003c\/p\u003e\n    \u003cdiv class=\"cv-sig-meta\"\u003eCasa Valenti · The Grand Tour · SS26\u003c\/div\u003e\n  \u003c\/section\u003e\n\n\u003c\/div\u003e\n\n\u003cscript\u003e\n  (function() {\n    'use strict';\n\n    var pdp = document.querySelector('.cv-pdp');\n    if (!pdp) return;\n\n    \/* ============================================\n       Size Selector\n       ============================================ *\/\n    var sizeButtons = pdp.querySelectorAll('.cv-size-btn');\n    var selectedSize = 'M';\n\n    sizeButtons.forEach(function(btn) {\n      btn.addEventListener('click', function() {\n        if (btn.hasAttribute('disabled')) return;\n        sizeButtons.forEach(function(b) { b.classList.remove('active'); });\n        btn.classList.add('active');\n        selectedSize = btn.getAttribute('data-size');\n      });\n    });\n\n    \/* ============================================\n       Add to Cart (Shopify AJAX)\n       ============================================\n       NOTE: Replace the variantMap below with the actual\n       Shopify variant IDs for each size of the Jaffa shirt.\n       Find them in: Products \u003e Jaffa Shirt \u003e Variants \u003e inspect\n       URL or use {% for variant in product.variants %} in Liquid.\n    *\/\n    var variantMap = {\n      'XS': 'REPLACE_XS_VARIANT_ID',\n      'S':  'REPLACE_S_VARIANT_ID',\n      'M':  'REPLACE_M_VARIANT_ID',\n      'L':  'REPLACE_L_VARIANT_ID',\n      'XL': 'REPLACE_XL_VARIANT_ID'\n    };\n\n    var addBtn = document.getElementById('cv-add-to-cart');\n    if (addBtn) {\n      addBtn.addEventListener('click', function() {\n        var variantId = variantMap[selectedSize];\n        if (!variantId || variantId.indexOf('REPLACE') === 0) {\n          \/\/ Fallback for development — redirect to cart\n          window.location.href = '\/cart';\n          return;\n        }\n\n        addBtn.textContent = 'Adding...';\n        addBtn.setAttribute('disabled', 'disabled');\n\n        fetch('\/cart\/add.js', {\n          method: 'POST',\n          headers: { 'Content-Type': 'application\/json', 'Accept': 'application\/json' },\n          body: JSON.stringify({ id: variantId, quantity: 1 })\n        })\n        .then(function(r) { return r.json(); })\n        .then(function() {\n          addBtn.textContent = 'Added — View Cart';\n          setTimeout(function() {\n            window.location.href = '\/cart';\n          }, 600);\n        })\n        .catch(function() {\n          addBtn.textContent = 'Try Again';\n          addBtn.removeAttribute('disabled');\n        });\n      });\n    }\n\n    \/* ============================================\n       Fade-in on scroll\n       ============================================ *\/\n    if ('IntersectionObserver' in window) {\n      var elements = pdp.querySelectorAll('.cv-section, .cv-editorial');\n      elements.forEach(function(el) { el.classList.add('cv-fade-in'); });\n\n      var obs = new IntersectionObserver(function(entries) {\n        entries.forEach(function(entry) {\n          if (entry.isIntersecting) {\n            entry.target.classList.add('visible');\n            obs.unobserve(entry.target);\n          }\n        });\n      }, { threshold: 0.1, rootMargin: '0px 0px -80px 0px' });\n\n      elements.forEach(function(el) { obs.observe(el); });\n    }\n\n  })();\n\u003c\/script\u003e\n","brand":"Casa Valenti","offers":[{"title":"XS","offer_id":47890432360586,"sku":null,"price":119.99,"currency_code":"USD","in_stock":false},{"title":"S","offer_id":47890432262282,"sku":null,"price":119.99,"currency_code":"USD","in_stock":false},{"title":"M","offer_id":47890432229514,"sku":null,"price":119.99,"currency_code":"USD","in_stock":false},{"title":"L","offer_id":47890432295050,"sku":null,"price":119.99,"currency_code":"USD","in_stock":false},{"title":"XL","offer_id":47890432327818,"sku":null,"price":119.99,"currency_code":"USD","in_stock":false},{"title":"XXL","offer_id":47890432393354,"sku":null,"price":119.99,"currency_code":"USD","in_stock":false}],"url":"https:\/\/casavalenti.store\/products\/jaffa-linen-short-sleeve-shirt","provider":"Casa Valenti","version":"1.0","type":"link"}