/* ==========================================================================
   St John single product template (NPO redesign, Sept 2026)
   Scoped to .single-product .stj-product. Green #389F4E / Yellow #ECE62B / Black #0a0a0a.
   ========================================================================== */
.stj-product{--green:#389F4E;--green-d:#2c7d3e;--green-dd:#215e2f;--yellow:#ECE62B;--ink:#333;--ink2:#030303;--muted:#6d6d6d;--soft:#f3f8f4;--line:#e6e9e6;--radius:4px;
  font-family:'Montserrat',sans-serif;color:var(--ink);line-height:1.6;font-size:16px}
.stj-product *,.stj-product *::before,.stj-product *::after{box-sizing:border-box}
.stj-product img{max-width:100%;height:auto;display:block}
.stj-product a{text-decoration:none}
.stj-product strong{font-weight:700;color:var(--ink2)}
.stj-wrap{max-width:1180px;margin:0 auto;padding:0 40px}

/* The7 title band (grey row with breadcrumbs) is off on product pages */
.single-product .page-title{display:none}
/* The7's hide-product-title option must not hide our title */
.single-product .stj-product h1.stj-pt{display:block!important}

/* highlight headings */
.stj-product .stj-th{display:block;margin:0;font-family:'Montserrat',sans-serif;line-height:1.2}
.stj-product .stj-th .b{display:inline;background:var(--yellow);color:#0a0a0a;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:3px 12px;font-size:33px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;line-height:1.62}
.stj-product .stj-th .b.g{background:var(--green);color:#fff}

/* buttons */
.stj-product .stj-btn{display:inline-flex;align-items:center;justify-content:center;font-family:'Montserrat',sans-serif;font-weight:700;font-size:13.5px;letter-spacing:1px;text-transform:uppercase;padding:0 34px;height:54px;line-height:1;border-radius:var(--radius);border:2px solid transparent;transition:.2s;cursor:pointer;text-decoration:none}
.stj-product .stj-btn-y{background:var(--yellow);color:#1c1c1c}.stj-product .stj-btn-y:hover{background:#dcd612;color:#1c1c1c}
.stj-product .stj-btn-g{background:var(--green);color:#fff}.stj-product .stj-btn-g:hover{background:var(--green-d);color:#fff}

/* --------------------------------------------------------------------------
   Top block: gallery + summary (override WooCommerce floats)
   -------------------------------------------------------------------------- */
.stj-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:60px;align-items:start;padding-top:30px;padding-bottom:64px}
.stj-top > *{min-width:0;max-width:100%}
.stj-gallery{overflow:hidden}
.stj-product .woocommerce-product-gallery,.stj-product .flex-viewport{max-width:100%}
.woocommerce div.product.stj-product div.images,.woocommerce div.product.stj-product div.summary{float:none;width:100%;margin:0}
.stj-product .woocommerce-product-gallery{width:100%!important;margin:0}
.stj-product .woocommerce-product-gallery__wrapper{margin:0}
.stj-product .flex-viewport{background:#f4f6f4;border-radius:6px;overflow:hidden;padding:0}
.stj-product .woocommerce-product-gallery__wrapper{background:#f4f6f4;border-radius:6px}
.stj-product .woocommerce-product-gallery__image{padding:0;background:transparent}
.stj-product .woocommerce-product-gallery__image img{width:100%;height:auto;object-fit:contain;transition:.35s}
.stj-product .woocommerce-product-gallery__image a{cursor:zoom-in;display:block;padding:28px}
.stj-product .woocommerce-product-gallery__trigger{top:14px;right:14px}
/* thumbnails (slider mode) */
.stj-product .flex-control-thumbs{display:grid!important;grid-template-columns:repeat(4,1fr);gap:12px;margin:12px 0 0;padding:0;list-style:none}
.stj-product .flex-control-thumbs li{width:auto!important;float:none!important;margin:0!important;aspect-ratio:1;position:relative;overflow:hidden;border:1px solid var(--line);border-radius:6px;background:#fff;cursor:pointer;transition:.15s}
.stj-product .flex-control-thumbs li:hover{border-color:#bcd4c2}
.stj-product .flex-control-thumbs li img{position:absolute;inset:8px;width:calc(100% - 16px)!important;height:calc(100% - 16px)!important;object-fit:contain;opacity:1!important}
.stj-product .flex-control-thumbs li img.flex-active{outline:0}
.stj-product .flex-control-thumbs li:has(img.flex-active){border-color:var(--ink2)}

/* summary */
.stj-product .stj-pt{margin:0 0 0;font-family:'Montserrat',sans-serif;line-height:1.14}
.stj-product .stj-pt .hl{display:inline-block;background:var(--yellow);color:#0a0a0a;padding:2px 12px;font-size:21px;font-weight:800;text-transform:uppercase;letter-spacing:.8px;line-height:1.55;margin-bottom:12px}
.stj-product .stj-pt .rest{display:block;font-size:40px;font-weight:600;letter-spacing:-.3px;line-height:1.1;color:var(--ink2)}
.stj-product p.price.stj-price,.stj-product p.price.stj-price .amount{font-family:'Montserrat',sans-serif;font-size:40px;font-weight:800;color:var(--green-dd);letter-spacing:-1px;line-height:1.1}
.stj-product p.price.stj-price{margin:16px 0 22px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.stj-product .stj-excerpt p{font-size:16px;font-weight:400;margin:0 0 22px;color:#444;line-height:1.65}
.stj-product .stj-excerpt ul{list-style:none;display:grid;gap:11px;margin:0 0 28px;padding:0}
.stj-product .stj-excerpt li{font-size:15px;font-weight:400;padding-left:26px;position:relative;color:var(--ink);line-height:1.55;margin:0}
.stj-product .stj-excerpt li::before{content:"\271A";position:absolute;left:0;color:var(--green);font-size:13px;top:2px}

/* cart form: quantity + button */
.stj-product form.cart{display:flex;gap:14px;align-items:stretch;flex-wrap:wrap;margin:0}
.stj-product form.cart .quantity{display:flex;align-items:stretch;border:2px solid var(--line);border-radius:var(--radius);overflow:hidden;height:54px;margin:0;float:none}
.stj-product form.cart .quantity .minus,.stj-product form.cart .quantity .plus{border:0;background:#fff;width:50px;height:100%;font-size:22px;cursor:pointer;color:var(--ink2);font-family:inherit;padding:0;margin:0;box-shadow:none;border-radius:0;line-height:1}
.stj-product form.cart .quantity input.qty{width:58px;height:100%;text-align:center;border:0;font-family:inherit;font-size:21px;font-weight:800;color:var(--ink2);margin:0;padding:0;box-shadow:none;background:#fff;-moz-appearance:textfield}
.stj-product form.cart .quantity input.qty::-webkit-outer-spin-button,.stj-product form.cart .quantity input.qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.stj-product form.cart .single_add_to_cart_button{display:inline-flex;align-items:center;justify-content:center;height:54px;line-height:1;padding:0 34px;margin:0;background:var(--green);color:#fff;border:0;border-radius:var(--radius);font-family:'Montserrat',sans-serif;font-weight:700;font-size:13.5px;letter-spacing:1px;text-transform:uppercase;transition:.2s;box-shadow:none;text-shadow:none}
.stj-product form.cart .single_add_to_cart_button:hover{background:var(--green-d);color:#fff}


/* --------------------------------------------------------------------------
   Variable products: packaging selector as tiles
   -------------------------------------------------------------------------- */
.stj-product .stj-price .from{font-size:16px;font-weight:600;color:var(--muted);letter-spacing:0;margin-right:4px;vertical-align:middle}
.stj-product form.variations_form{display:block}
.stj-product form.variations_form table.variations{margin:0 0 6px;border:0;width:100%}
.stj-product form.variations_form table.variations td,.stj-product form.variations_form table.variations th{padding:0;border:0;background:none}
.stj-product form.variations_form table.variations th.label{display:block;font-size:12.5px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:var(--ink2);padding:0 0 12px}
.stj-product form.variations_form table.variations th.label label{font:inherit;color:inherit;margin:0}
.stj-product form.variations_form .value select{display:none}
.stj-product form.variations_form .reset_variations{display:none!important}
.stj-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0 0 22px}
.stj-tile{border:2px solid var(--line);border-radius:var(--radius);padding:14px 12px;cursor:pointer;text-align:left;background:#fff;transition:.15s;font-family:'Montserrat',sans-serif}
.stj-tile:hover{border-color:#bcd4c2}
.stj-tile.on{border-color:var(--green);box-shadow:0 0 0 1px var(--green) inset}
.stj-tile .n{display:block;font-size:14px;font-weight:700;color:var(--ink2);line-height:1.25}
.stj-tile .p{display:block;font-size:15px;font-weight:800;color:var(--green-dd);margin-top:6px}
.stj-tile.na{opacity:.45;cursor:not-allowed}
.stj-product form.variations_form .single_variation_wrap .woocommerce-variation-price,.stj-product form.variations_form .single_variation_wrap .woocommerce-variation-availability{display:none}
.stj-product form.variations_form .woocommerce-variation-add-to-cart{display:flex;gap:14px;align-items:stretch;flex-wrap:wrap}
.stj-product form.variations_form .woocommerce-variation-add-to-cart .quantity{display:flex;align-items:stretch;border:2px solid var(--line);border-radius:var(--radius);overflow:hidden;height:54px;margin:0;float:none}
.stj-product form.variations_form .woocommerce-variation-add-to-cart .single_add_to_cart_button.disabled{opacity:.45;cursor:not-allowed}
@media (max-width:900px){
  .stj-tiles{grid-template-columns:1fr}
  .stj-product form.variations_form .woocommerce-variation-add-to-cart{flex-direction:column;gap:12px}
  .stj-product form.variations_form .woocommerce-variation-add-to-cart .quantity{width:100%;justify-content:space-between}
  .stj-product form.variations_form .woocommerce-variation-add-to-cart .single_add_to_cart_button{width:100%;text-align:center}
}

/* --------------------------------------------------------------------------
   Trust separator
   -------------------------------------------------------------------------- */
.stj-sep{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fafbfa;width:100vw;margin-left:calc(50% - 50vw)}
.stj-sep .stj-wrap{display:flex;gap:56px;flex-wrap:wrap;justify-content:center;padding:20px 40px;font-size:14px;color:var(--ink)}
.stj-sep span{display:inline-flex;align-items:center;gap:10px}
.stj-sep svg{width:18px;height:18px;color:var(--green);flex:none}
.stj-sep b{color:var(--ink2)}

/* --------------------------------------------------------------------------
   What's inside
   -------------------------------------------------------------------------- */
.stj-inside{padding:80px 40px}
.stj-inside .stj-lead{margin-top:22px}
.stj-inside .stj-lead p{font-size:17px;font-weight:400;color:#4b4b4b;line-height:1.65;margin:0 0 14px}
.stj-inside .stj-lead h2,.stj-inside .stj-lead h3,.stj-inside .stj-lead h4{font-family:'Montserrat',sans-serif;font-size:18px;font-weight:600;color:var(--ink2);margin:18px 0 8px}
.stj-fold{margin-top:26px;border-bottom:1px solid var(--line)}
.stj-fold summary{list-style:none;border-top:1px solid var(--line);cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:18px 0;font-size:13px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;color:var(--ink2)}
.stj-fold summary::-webkit-details-marker{display:none}
.stj-fold summary .x{width:30px;height:30px;border-radius:50%;border:2px solid var(--ink2);background:var(--ink2);color:#fff;display:grid;place-items:center;font-size:18px;line-height:1;font-weight:500;transition:.2s}
.stj-fold[open] summary .x{transform:rotate(45deg);background:transparent;color:var(--ink2)}
.stj-cols ul{columns:2;column-gap:60px;list-style:none;margin:0;padding:0 0 10px}
.stj-cols li{font-size:15px;font-weight:400;color:var(--ink);padding:12px 0 12px 26px;position:relative;border-top:1px solid var(--line);margin:0;break-inside:avoid;list-style:none}
.stj-cols li::before{content:"\271A";position:absolute;left:0;color:var(--green);font-size:12px;top:14px}
@media (min-width:901px){.stj-fold summary{display:none}}

/* --------------------------------------------------------------------------
   SEE. SAVE. SERVE. (full-bleed black row, text left / photo right)
   -------------------------------------------------------------------------- */
.stj-cause{background:#0a0a0a;color:#fff;width:100vw;margin-left:calc(50% - 50vw)}
.stj-cause-grid{display:grid;grid-template-columns:1fr 1fr}
.stj-cause-txt{display:flex;flex-direction:column;justify-content:center;padding:96px 0}
.stj-cause-txt .in{max-width:590px;margin-left:auto;padding:0 60px 0 40px}
.stj-cause-txt .stj-th .b{background:var(--yellow);color:#0a0a0a}
.stj-cause-txt p{color:rgba(255,255,255,.86);margin:18px 0 0;font-size:16.5px;line-height:1.7}
.stj-cause-txt .stj-btn{align-self:flex-start;margin-top:28px}
.stj-cause-im{position:relative;overflow:hidden;min-height:480px;background-size:cover;background-position:center 35%}
.stj-cause-im::before{content:'';position:absolute;inset:0;background:inherit;filter:brightness(1.1) contrast(1.14)}
.stj-cause-im::after{content:'';position:absolute;inset:0;background:linear-gradient(100deg,rgba(56,159,78,.55) 0%,rgba(56,159,78,.22) 30%,rgba(56,159,78,0) 58%),radial-gradient(ellipse at 100% 100%,rgba(56,159,78,.6) 0%,rgba(56,159,78,.25) 28%,rgba(56,159,78,0) 58%)}

/* --------------------------------------------------------------------------
   More from the shop (scroll-snap track: 3-up desktop with pills, 1-up mobile with arrows)
   -------------------------------------------------------------------------- */
.stj-rel{padding:80px 40px}
.stj-relhead{display:flex;align-items:center;justify-content:space-between;gap:20px}
.stj-relhead .stj-btn{padding:0 28px;height:50px}
.stj-product .stj-btn-m{display:none}
.stj-track{display:flex;gap:22px;margin-top:40px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:6px 0 10px}
.stj-track::-webkit-scrollbar{display:none}
.stj-card{flex:0 0 calc((100% - 44px)/3);scroll-snap-align:start;background:#fff;border-radius:8px;overflow:hidden;border:1px solid var(--line);transition:.25s;position:relative;display:flex;flex-direction:column;color:var(--ink)}
.stj-card:hover{transform:translateY(-5px);box-shadow:0 20px 44px rgba(20,40,25,.14);border-color:transparent}
.stj-card .im{aspect-ratio:1;background:#f4f6f4;display:grid;place-items:center;padding:26px;overflow:hidden;position:relative}
.stj-card .im img{width:100%;height:100%;object-fit:contain;transition:.4s}
.stj-card:hover .im img{transform:scale(1.06)}
.stj-card .pill{position:absolute;top:12px;background:#0a0a0a;color:#fff;font-size:10px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;padding:5px 9px;border-radius:3px;z-index:1}
.stj-card .pill.r{right:12px}
.stj-card .bd{padding:18px 20px 20px;display:flex;flex-direction:column;flex:1}
.stj-card h3{font-family:'Montserrat',sans-serif;font-size:15.5px;font-weight:600;line-height:1.3;margin:0;color:var(--ink2)}
.stj-card .row{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:16px}
.stj-card .pr,.stj-card .pr .amount{font-family:'Montserrat',sans-serif;font-weight:800;font-size:23px;color:var(--ink2);letter-spacing:-.4px}
.stj-card .go{width:40px;height:40px;border-radius:50%;background:#0a0a0a;color:#fff;display:grid;place-items:center;transition:.2s;flex:none}
.stj-card .go svg{width:16px;height:16px}
.stj-card:hover .go{background:var(--green)}
.stj-ctrl{display:flex;justify-content:center;align-items:center;gap:10px;margin-top:26px}
.stj-pg{display:flex;gap:10px}
.stj-pg span{width:34px;height:8px;border-radius:99px;background:#dfe3df;cursor:pointer;transition:.2s}
.stj-pg span:hover{background:#b9c4bb}
.stj-pg span.on{background:var(--green);width:52px}
.stj-arr{display:none;width:46px;height:46px;border-radius:50%;border:2px solid var(--ink2);background:#fff;color:var(--ink2);cursor:pointer;place-items:center;padding:0;margin:0;box-shadow:none}
.stj-arr svg{width:18px;height:18px}
.stj-arr:hover{background:var(--ink2);color:#fff}

/* --------------------------------------------------------------------------
   Mobile
   -------------------------------------------------------------------------- */
@media (max-width:900px){
  .stj-wrap{padding-left:0;padding-right:0}
  .stj-top{grid-template-columns:minmax(0,1fr);gap:28px;padding-bottom:48px}
  .stj-product .stj-pt .hl{margin-bottom:8px}
  .stj-product .stj-pt .rest{font-size:30px}
  .stj-product p.price.stj-price{margin:12px 0 18px;padding-bottom:16px}
  .stj-product form.cart{flex-direction:column;gap:12px}
  .stj-product form.cart .quantity{width:100%;justify-content:space-between}
  .stj-product form.cart .quantity input.qty{flex:1;width:auto}
  .stj-product form.cart .single_add_to_cart_button{width:100%;text-align:center}
  .stj-sep .stj-wrap{gap:10px 40px;padding:14px 50px}
  .stj-product .stj-th .b{font-size:28px}
  .stj-inside,.stj-rel{padding:56px 0}
  .stj-cols ul{columns:1}
  .stj-cause-grid{grid-template-columns:1fr}
  .stj-cause-txt{padding:56px 0}
  .stj-cause-txt .in{max-width:none;margin:0;padding:0 50px}
  .stj-cause-im{min-height:300px;order:-1}
  .stj-relhead{justify-content:center;text-align:center}
  .stj-product .stj-btn-d{display:none}
  .stj-track{gap:16px;margin-top:28px}
  .stj-card{flex:0 0 100%}
  .stj-pg{display:none}
  .stj-arr{display:grid}
  .stj-ctrl{gap:18px}
  .stj-product .stj-btn-m{display:block;width:100%;text-align:center;margin-top:26px}
}
@media (max-width:778px){
  .stj-sep .stj-wrap{padding:14px 20px}
  .stj-cause-txt .in{padding:0 20px}
}
