.elementor-20449 .elementor-element.elementor-element-bcb7658{--display:flex;}.elementor-20449 .elementor-element.elementor-element-5938a39{--display:flex;}.elementor-20449 .elementor-element.elementor-element-61ae0cc{--display:flex;}.elementor-20449 .elementor-element.elementor-element-6b483a7{--display:flex;}.elementor-20449 .elementor-element.elementor-element-702898a{--display:flex;}.elementor-20449 .elementor-element.elementor-element-e531743 .cart button, .elementor-20449 .elementor-element.elementor-element-e531743 .cart .button{transition:all 0.2s;}.elementor-20449 .elementor-element.elementor-element-e531743 .quantity .qty{transition:all 0.2s;}.elementor-20449 .elementor-element.elementor-element-ac11d70{--display:flex;}.elementor-20449 .elementor-element.elementor-element-b1591b0{--display:flex;}.elementor-20449 .elementor-element.elementor-element-fffac15{--display:flex;}.elementor-20449 .elementor-element.elementor-element-28e5b19{--display:flex;}.elementor-20449 .elementor-element.elementor-element-7f9ebcd{--display:flex;}.elementor-20449 .elementor-element.elementor-element-1850924{--display:flex;}.elementor-20449 .elementor-element.elementor-element-5ecdbbc{--display:flex;}.elementor-20449 .elementor-element.elementor-element-3c2de03{--display:flex;}.elementor-20449 .elementor-element.elementor-element-263ee26{--display:flex;}.elementor-20449 .elementor-element.elementor-element-b8d9ae1{text-align:center;}.elementor-20449 .elementor-element.elementor-element-70d6f8e{--display:flex;}.elementor-20449 .elementor-element.elementor-element-250dece{--grid-row-gap:35px;--grid-column-gap:30px;}.elementor-20449 .elementor-element.elementor-element-250dece .elementor-posts-container .elementor-post__thumbnail{padding-bottom:calc( 0.66 * 100% );}.elementor-20449 .elementor-element.elementor-element-250dece:after{content:"0.66";}.elementor-20449 .elementor-element.elementor-element-250dece .elementor-post__thumbnail__link{width:100%;}.elementor-20449 .elementor-element.elementor-element-250dece.elementor-posts--thumbnail-left .elementor-post__thumbnail__link{margin-right:20px;}.elementor-20449 .elementor-element.elementor-element-250dece.elementor-posts--thumbnail-right .elementor-post__thumbnail__link{margin-left:20px;}.elementor-20449 .elementor-element.elementor-element-250dece.elementor-posts--thumbnail-top .elementor-post__thumbnail__link{margin-bottom:20px;}.elementor-20449 .elementor-element.elementor-element-dc9e842{--display:flex;}@media(max-width:767px){.elementor-20449 .elementor-element.elementor-element-250dece .elementor-posts-container .elementor-post__thumbnail{padding-bottom:calc( 0.5 * 100% );}.elementor-20449 .elementor-element.elementor-element-250dece:after{content:"0.5";}.elementor-20449 .elementor-element.elementor-element-250dece .elementor-post__thumbnail__link{width:100%;}}/* Start custom CSS *//* ============================ */
/* 2026 Product Page · 20449    */
/* Scoped to this template only */
/* ============================ */
.elementor-20449{
  --aiq-red:#DF2525; --aiq-red-dark:#BE1C1C; --aiq-pink-300:#FBE1E9;
  --aiq-off-white:#FFFDFA; --aiq-charcoal:#33312E;
  --ink-200:#FAF6EF; --ink-300:#E8E4DC; --ink-600:#807B74; --ink-700:#5B5854; --ink-800:#33312E;
  --fg-1:var(--ink-800); --fg-2:var(--ink-700); --fg-3:var(--ink-600);
  --hair:var(--ink-300);
  --font-display:'Yeseva One',Georgia,serif;
  --font-heading:'Aleo',Georgia,serif;
  --font-body:'Open Sans',-apple-system,BlinkMacSystemFont,sans-serif;
  --r-img:10px; --r-btn:10px;
  --sp-3:12px; --sp-4:16px; --sp-6:24px; --sp-8:32px; --sp-12:48px; --sp-16:64px;
  --rail-w:440px; --page-max:1180px;
}

/* ============================ */
/* Layout shell                 */
/* ============================ */
.elementor-20449 > .e-con{max-width:var(--page-max);margin-left:auto;margin-right:auto}
.elementor-20449 .taq-breadcrumb-row{padding:12px 0 0;font-size:14px;color:var(--fg-2)}
.elementor-20449 .taq-main{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) var(--rail-w);
  gap:44px;align-items:start;padding:20px 0 44px;
}
.elementor-20449 .taq-main > .e-con{width:auto;max-width:none}
.elementor-20449 .taq-section{padding:var(--sp-16) 0;border-top:1px solid var(--hair)}
.elementor-20449 .taq-canary{background:#F164EE}

/* ============================ */
/* Type                         */
/* ============================ */
.elementor-20449 .taq-eyebrow,
.elementor-20449 .taq-eyebrow .elementor-heading-title{
  font-family:var(--font-body);font-size:12px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--fg-3);margin:0 0 8px;
}
.elementor-20449 h2.taq-h2,
.elementor-20449 .taq-h2 .elementor-heading-title{
  font-family:var(--font-heading);font-size:28px;line-height:1.15;color:var(--fg-1);margin:0 0 var(--sp-4);
}
.elementor-20449 h2.taq-h2-lead,
.elementor-20449 .taq-h2-lead .elementor-heading-title{font-family:var(--font-display);font-size:36px}
.elementor-20449 h3.taq-h3,
.elementor-20449 .taq-h3 .elementor-heading-title{font-family:var(--font-heading);font-size:20px;color:var(--fg-1);margin:0}
.elementor-20449 h4.taq-card-title{font-family:var(--font-heading);font-size:17px;color:var(--fg-1);margin:0}
.elementor-20449 h4.taq-card-title a{color:inherit;text-decoration:none}
.elementor-20449 h4.taq-card-title a:hover{color:var(--aiq-red)}
.elementor-20449 .taq-lead{font-family:var(--font-body);font-size:21px;line-height:1.6;color:var(--fg-2);max-width:62ch;margin-bottom:var(--sp-8)}
.elementor-20449 .taq-body,
.elementor-20449 .taq-how-copy p{font-family:var(--font-body);color:var(--fg-2);line-height:1.6}
.elementor-20449 p.taq-caption,
.elementor-20449 .taq-caption{font-family:var(--font-body);font-size:13px;color:var(--fg-3)}

/* ============================ */
/* Images, shared               */
/* ============================ */
.elementor-20449 img.taq-shot{
  width:100%;height:100%;object-fit:cover;border-radius:var(--r-img);display:block;
}
.elementor-20449 .taq-cell{line-height:0}
.elementor-20449 .taq-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.elementor-20449 .taq-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}

/* ============================ */
/* Gallery stack                */
/* ============================ */
.elementor-20449 .taq-gallery{display:flex;flex-direction:column;gap:var(--sp-6)}
.elementor-20449 .taq-galgroup{display:flex;flex-direction:column;gap:var(--sp-3)}
.elementor-20449 h3.taq-galgroup-title{
  font-family:var(--font-heading);font-weight:700;font-size:17px;color:var(--fg-1);margin:0;
}
.elementor-20449 .taq-galgroup-hero img{aspect-ratio:1}
.elementor-20449 .taq-galgroup-colorways img{aspect-ratio:1}
.elementor-20449 .taq-galgroup-context img{aspect-ratio:4/3}
.elementor-20449 .taq-galgroup-slots img{aspect-ratio:1}
.elementor-20449 .taq-video{position:relative;padding-top:56.25%;border-radius:var(--r-img);overflow:hidden}
.elementor-20449 .taq-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* ============================ */
/* Buy box and rail             */
/* ============================ */
.elementor-20449 .taq-rail{position:sticky;top:24px;display:flex;flex-direction:column;gap:var(--sp-6)}
.elementor-20449 .taq-buybox{display:flex;flex-direction:column;gap:var(--sp-3)}
.elementor-20449 .taq-title h1,
.elementor-20449 .taq-title .elementor-heading-title{
  font-family:var(--font-display);font-size:36px;line-height:1.1;color:var(--fg-1);margin:0;
}
.elementor-20449 .taq-price .price,
.elementor-20449 .taq-price .amount,
.elementor-20449 .taq-price .woocommerce-Price-amount{
  font-family:var(--font-body) !important;font-weight:700 !important;font-size:21px;color:var(--fg-1);
}
.elementor-20449 .taq-atc .quantity{margin-bottom:var(--sp-3)}
.elementor-20449 .taq-atc button.single_add_to_cart_button{
  width:100%;background:var(--aiq-red);color:var(--aiq-off-white);border:none;
  border-radius:var(--r-btn);padding:18px 24px;font-family:var(--font-body);
  font-weight:700;font-size:17px;letter-spacing:.04em;
}
.elementor-20449 .taq-atc button.single_add_to_cart_button:hover{background:var(--aiq-red-dark)}

/* ============================ */
/* Upsell shelf                 */
/* ============================ */

/* ============================ */
/* Detail blocks                */
/* ============================ */
.elementor-20449 .taq-detail-blocks{display:flex;flex-direction:column;gap:var(--sp-12)}
.elementor-20449 ul.taq-list{list-style:none;margin:0;padding:0}
.elementor-20449 ul.taq-list li{
  font-family:var(--font-body);color:var(--fg-2);line-height:1.6;padding:6px 0 6px 20px;position:relative;
}
.elementor-20449 ul.taq-list li:before{content:"";position:absolute;left:0;top:15px;width:6px;height:6px;border-radius:50%;background:var(--aiq-red)}
.elementor-20449 dl.taq-dl{display:grid;grid-template-columns:200px minmax(0,1fr);gap:10px 24px;margin:0}
.elementor-20449 dl.taq-dl dt{font-family:var(--font-body);font-weight:700;color:var(--fg-1)}
.elementor-20449 dl.taq-dl dd{margin:0;font-family:var(--font-body);color:var(--fg-2);line-height:1.6}

/* ============================ */
/* How it works                 */
/* ============================ */
.elementor-20449 .taq-step-num{
  font-family:var(--font-body);font-weight:700;font-size:13px;color:var(--aiq-red);
  display:inline-block;margin-right:8px;vertical-align:2px;
}

/* ============================ */
/* Testimonials and community   */
/* ============================ */
.elementor-20449 .taq-quote{
  background:var(--ink-200);border-radius:12px;padding:var(--sp-8);
  display:flex;flex-direction:column;gap:var(--sp-4);
}
.elementor-20449 .taq-quote blockquote{
  margin:0;border:none;padding:0;font-family:var(--font-heading);
  font-size:20px;line-height:1.4;color:var(--fg-1);
}
.elementor-20449 .taq-quote blockquote:before{content:"“"}
.elementor-20449 .taq-quote blockquote:after{content:"”"}
.elementor-20449 .taq-attrib{
  display:flex;align-items:center;gap:10px;font-family:var(--font-body);font-size:13px;color:var(--fg-3);
}
.elementor-20449 img.taq-quote-photo{width:36px;height:36px;border-radius:50%;object-fit:cover}
.elementor-20449 .taq-community-inner img.taq-shot{aspect-ratio:4/3}

/* ============================ */
/* Keep going, signup, blog     */
/* ============================ */
.elementor-20449 .taq-textlink .elementor-button{
  background:transparent;color:var(--aiq-red);padding:0;
  font-family:var(--font-body);font-size:15px;font-weight:700;
}
.elementor-20449 .taq-textlink .elementor-button:after{content:" →"}
.elementor-20449 .taq-signup-form{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:var(--sp-4) 0}
.elementor-20449 .taq-signup-form label{position:absolute;left:-9999px}
.elementor-20449 .taq-signup-form input{
  flex:1 1 280px;padding:14px 16px;border:1px solid var(--hair);border-radius:6px;
  font-family:var(--font-body);font-size:15px;background:#fff;
}
.elementor-20449 .taq-signup-form button{
  background:var(--aiq-red);color:var(--aiq-off-white);border:none;border-radius:var(--r-btn);
  padding:14px 28px;font-family:var(--font-body);font-weight:700;cursor:pointer;
}

/* ============================ */
/* Sticky add to cart bar       */
/* ============================ */
.elementor-20449 .taq-stickybar{
  position:fixed;left:0;right:0;bottom:0;z-index:900;background:var(--ink-200);
  border-top:1px solid var(--hair);box-shadow:0 -2px 8px rgba(51,49,46,.08);
  transform:translateY(100%);transition:transform .18s ease;
}
.elementor-20449 .taq-stickybar.is-on{transform:translateY(0)}
.elementor-20449 .taq-stickybar-inner{
  max-width:var(--page-max);margin:0 auto;display:flex;align-items:center;gap:var(--sp-4);padding:12px 24px;
}
.elementor-20449 .taq-stickybar-title{font-family:var(--font-heading);font-size:15px;color:var(--fg-1);flex:1}
.elementor-20449 .taq-stickybar-price{font-family:var(--font-body);font-weight:700;font-size:15px}
.elementor-20449 .taq-stickybar-btn{
  background:var(--aiq-red);color:var(--aiq-off-white);border-radius:var(--r-btn);
  padding:12px 24px;font-family:var(--font-body);font-weight:700;text-decoration:none;
}

/* ============================ */
/* Responsive                   */
/* ============================ */
@media (max-width:1024px){
  .elementor-20449 .taq-main{grid-template-columns:1fr;gap:var(--sp-8)}
  .elementor-20449 .taq-rail{position:static;order:-1}
  }
@media (max-width:767px){
  .elementor-20449 .taq-grid-3,
  .elementor-20449 .taq-grid-2{grid-template-columns:1fr}
      .elementor-20449 dl.taq-dl{grid-template-columns:1fr;gap:4px 0}
  .elementor-20449 dl.taq-dl dd{margin-bottom:12px}
    .elementor-20449 .taq-section{padding:var(--sp-12) 0}
}


/* ============================ */
/* ============================ */
.elementor-20449 .taq-atc table.variations,
.elementor-20449 .taq-atc table.variations tbody,
.elementor-20449 .taq-atc table.variations tr{display:block;width:100%;margin:0}
.elementor-20449 .taq-atc table.variations th.label,
.elementor-20449 .taq-atc table.variations td.value{display:block;width:100%;text-align:left;padding:0}
.elementor-20449 .taq-atc table.variations th.label{margin-bottom:10px}
.elementor-20449 .taq-atc table.variations th.label label{font-family:var(--font-body);font-weight:700;font-size:15px;color:var(--fg-1)}
.elementor-20449 ul.variable-items-wrapper{display:flex;flex-direction:column;gap:10px;width:100%;padding:0;margin:0}
.elementor-20449 ul.variable-items-wrapper li.variable-item{
  width:100% !important;height:auto !important;justify-content:flex-start;text-align:left;
  padding:16px 18px;border:1px solid var(--hair);border-radius:6px;
  background:var(--aiq-off-white);box-shadow:none;margin:0;
}
.elementor-20449 ul.variable-items-wrapper li.variable-item.selected{border:2px solid var(--aiq-charcoal);box-shadow:none}
.elementor-20449 ul.variable-items-wrapper li.variable-item .variable-item-span{
  font-family:var(--font-body);font-size:15px;color:var(--fg-1);text-align:left;width:100%;
}
.elementor-20449 .taq-atc a.reset_variations{font-family:var(--font-body);font-size:13px;color:var(--fg-3)}

/* The variation row is display:flex from the swatch plugin, so the cell */
/* shrinks to content. Force the row to stack and the cell to fill. */
.elementor-20449 .taq-atc table.variations tr{display:flex !important;flex-direction:column !important;width:100% !important}
.elementor-20449 .taq-atc table.variations td.value{flex:1 1 auto !important;width:100% !important;max-width:none !important}
.elementor-20449 .taq-atc table.variations th.label{flex:0 0 auto !important;width:100% !important}

/* ============================ */
/* ============================ */
.elementor-20449 .taq-upsells__head{
  font-family:var(--font-body);font-size:12px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--fg-3);margin:0 0 var(--sp-3);
}
.elementor-20449 .taq-upsells__list{display:flex;flex-direction:column}
.elementor-20449 .taq-upsells__row{
  display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;
  gap:12px;padding:12px 0;border-bottom:1px solid var(--hair);
}
.elementor-20449 .taq-upsells__row:last-child{border-bottom:none}
.elementor-20449 a.taq-upsells__title{
  font-family:var(--font-body);font-size:15px;color:var(--fg-1);text-decoration:none;
}
.elementor-20449 a.taq-upsells__title:hover{color:var(--aiq-red)}
.elementor-20449 .taq-upsells__price,
.elementor-20449 .taq-upsells__price .amount{
  font-family:var(--font-body) !important;font-weight:700 !important;font-size:15px;color:var(--fg-1);white-space:nowrap;
}
.elementor-20449 a.taq-upsells__btn{
  background:var(--aiq-red);color:var(--aiq-off-white);border-radius:var(--r-btn);
  padding:8px 18px;font-family:var(--font-body);font-weight:700;font-size:13px;
  text-decoration:none;white-space:nowrap;
}
.elementor-20449 a.taq-upsells__btn:hover{background:var(--aiq-red-dark)}


/* ============================ */
/* Ported verbatim from template 20393 Page Settings, 14 Aug.  */
/* Swatch and upsell styling. Kept unprefixed exactly as it    */
/* was written; it only loads where 20449 renders.             */
/* ============================ */
/* ==========================================================================
   The AI Quilter — single product page CSS
   Paste this whole file into ONE Custom CSS box only.
   Recommended: Elementor → Site Settings → Custom CSS, so it applies
   regardless of a template's draft status.

   WHY THE SELECTORS LOOK LIKE THIS
   The swatch plugin styles its buttons with six-class body.elementor-page-20449s, so these
   rules repeat a class name (.variable-item.variable-item) to win on
   specificity without needing !important. They deliberately do NOT depend on
   the plugin's style classes (.wvs-style-squared, .button-variable-items-
   wrapper), because those change when a plugin style setting changes or when
   the swatch markup transient is regenerated, which silently breaks
   everything. The only hooks used are the attribute name and the two
   structural classes that cannot change.

   SCOPE
   Every swatch rule is scoped to the pa_pattern-format attribute. Size,
   Color, and every other attribute on every other product, including
   t-shirts, are untouched. The price rules apply to single product pages
   only; shop and archive prices are unchanged.
   ========================================================================== */


/* --------------------------------------------------------------------------
   Pattern Format swatches — stacked full-width rows
   -------------------------------------------------------------------------- */

.woo-variation-swatches.woo-variation-swatches ul.variable-items-wrapper.variable-items-wrapper[data-attribute_name="attribute_pa_pattern-format"] {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0;
  padding: 0;
}

.woo-variation-swatches.woo-variation-swatches ul.variable-items-wrapper.variable-items-wrapper[data-attribute_name="attribute_pa_pattern-format"] li.variable-item.variable-item {
  width: 100%;
  min-width: 0;
  max-width: none;
  height: auto;
  min-height: 0;
  margin: 0;
  padding: 12px 14px;
  border: 1px solid #E8E4DC;
  border-radius: 3px;
  background: #FFFDFA;
  box-shadow: none;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  cursor: pointer;
  transition: border-color .15s ease, transform .15s ease;
}

.woo-variation-swatches.woo-variation-swatches ul.variable-items-wrapper.variable-items-wrapper[data-attribute_name="attribute_pa_pattern-format"] li.variable-item.variable-item .variable-item-contents {
  width: 100%;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 12px;
  margin: 0;
}

/* the format name */
.woo-variation-swatches.woo-variation-swatches ul.variable-items-wrapper.variable-items-wrapper[data-attribute_name="attribute_pa_pattern-format"] li.variable-item.variable-item .variable-item-span {
  font-family: 'Aleo', serif;
  font-weight: 700;
  font-size: 16px;
  line-height: 1.3;
  color: #33312E;
  text-align: left;
  text-transform: none;
  letter-spacing: 0;
}

/* selected */
.woo-variation-swatches.woo-variation-swatches ul.variable-items-wrapper.variable-items-wrapper[data-attribute_name="attribute_pa_pattern-format"] li.variable-item.variable-item[aria-checked="true"],
.woo-variation-swatches.woo-variation-swatches ul.variable-items-wrapper.variable-items-wrapper[data-attribute_name="attribute_pa_pattern-format"] li.variable-item.variable-item.selected {
  border: 2px solid #33312E;
  padding: 11px 13px; /* keeps the row from shifting as the border thickens */
  background: #FFFDFA;
}

/* hover */
.woo-variation-swatches.woo-variation-swatches ul.variable-items-wrapper.variable-items-wrapper[data-attribute_name="attribute_pa_pattern-format"] li.variable-item.variable-item:hover {
  border-color: #33312E;
  transform: translateY(-1px);
}

/* unavailable */
.woo-variation-swatches.woo-variation-swatches ul.variable-items-wrapper.variable-items-wrapper[data-attribute_name="attribute_pa_pattern-format"] li.variable-item.variable-item.disabled {
  opacity: 1;
  border-color: #E8E4DC;
  background: #FAF6EF;
  cursor: not-allowed;
}

/* Hides the redundant "Pattern Format : Kit with Fabric" echo beside the
   label. This attribute only; other attributes keep theirs. */
.woocommerce div.product th.label:has(> label[for="pa_pattern-format"]) .woo-selected-variation-item-name {
  display: none;
}


/* --------------------------------------------------------------------------
   Upsell rows — the "Goes with this" shelf under Add to cart.
   Markup comes from the [taq_upsell_rows] shortcode in taq-upsell-rows.php,
   so every class here is ours and no plugin can rename it.
   -------------------------------------------------------------------------- */

.taq-upsells {
  background: #FAF6EF;
  border-radius: 3px;
  padding: 20px;
}

.taq-upsells__head {
  font-family: 'Open Sans', sans-serif;
  font-weight: 700;
  font-size: 12px;
  text-transform: uppercase;
  color: #33312E;
  margin-bottom: 12px;
}

.taq-upsells__list {
  display: flex;
  flex-direction: column;
}

.taq-upsells__row {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 12px;
  align-items: center;
  padding: 11px 0;
  border-top: 1px solid #D9D4CB;
}

.taq-upsells__row:last-child {
  border-bottom: 1px solid #D9D4CB;
}

.taq-upsells__title {
  font-family: 'Aleo', serif;
  font-weight: 700;
  font-size: 16px;
  line-height: 1.3;
  color: #33312E;
  text-decoration: none;
}

.taq-upsells__title:hover {
  text-decoration: underline;
}

.taq-upsells__price {
  font-family: 'Open Sans', sans-serif;
  font-weight: 700;
  font-size: 15px;
  color: #33312E;
}

/* WooCommerce's own button styles land on .button, so these need to be
   specific enough to win without !important */
.taq-upsells .taq-upsells__btn.taq-upsells__btn {
  font-family: 'Open Sans', sans-serif;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: .04em;
  text-transform: uppercase;
  background: transparent;
  color: #33312E;
  border: 1.5px solid #33312E;
  border-radius: 10px;
  padding: 7px 13px;
  line-height: 1.2;
  text-decoration: none;
  transition: background .15s ease, color .15s ease;
}

.taq-upsells .taq-upsells__btn.taq-upsells__btn:hover {
  background: #33312E;
  color: #FFFDFA;
}

/* Woo adds .added and an "added_to_cart" link after an AJAX add */
.taq-upsells .added_to_cart {
  font-family: 'Open Sans', sans-serif;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #DF2525;
  margin-left: 10px;
  white-space: nowrap;
}


/* --------------------------------------------------------------------------
   Single product price — larger, all products
   Covers the main price and the variation price shown after a format is
   chosen. Open Sans 700, because a price is UI, not a heading — Aleo is for
   headings and Yeseva One for display moments.
   -------------------------------------------------------------------------- */

.single-product .woocommerce div.product p.price,
.single-product .woocommerce div.product span.price,
.single-product .woocommerce div.product .woocommerce-variation-price .price {
  font-family: 'Open Sans', sans-serif;
  font-weight: 700;
  font-size: 28px;
  line-height: 1.2;
  color: #33312E;
}

/* a sale item's crossed-out old price stays smaller and quieter */
.single-product .woocommerce div.product p.price del,
.single-product .woocommerce div.product .woocommerce-variation-price .price del {
  font-size: 20px;
  font-weight: 400;
  color: #5B5854;
}


/* ============================ */
/* Optional sections collapse when their shortcode is empty    */
/* ============================ */
.elementor-20449 .taq-section:has(> .elementor-element > .elementor-widget-container > .elementor-shortcode:empty){display:none}
.elementor-20449 .taq-section:has(.elementor-shortcode:empty){display:none}

/* ============================ */
/* Bundle                       */
/* Design: warm band, component cards in a row, offer card as the   */
/* last column in charcoal. Flex not grid so any component count    */
/* keeps the offer card at 1.1x the width of a component.           */
/* ============================ */
.elementor-20449 .taq-bundle-grid{display:flex;gap:16px;align-items:stretch}
.elementor-20449 .taq-bundle-card{
  flex:1 1 0;min-width:0;background:#fff;border:1px solid var(--hair);
  border-radius:3px;overflow:hidden;display:flex;flex-direction:column;padding:0;gap:0;
}
.elementor-20449 .taq-bundle-card .taq-cell{line-height:0}
.elementor-20449 .taq-bundle-card img.taq-shot{aspect-ratio:1;border-radius:0}
.elementor-20449 .taq-bundle-card h4.taq-card-title{
  font-family:var(--font-heading);font-weight:700;font-size:16px;line-height:1.3;
  color:var(--fg-1);text-transform:none;margin:0;padding:14px 14px 0;
}
.elementor-20449 .taq-bundle-card h4.taq-card-title a{text-transform:none;color:inherit;text-decoration:none}
.elementor-20449 .taq-bundle-card .taq-card-price{
  font-family:var(--font-body);font-size:15px;color:var(--fg-2);margin-top:4px;padding:0 14px 14px;font-weight:400;
}
/* Offer card */
.elementor-20449 .taq-bundle-card.taq-bundle-offer{
  flex:1.1 1 0;background:var(--aiq-charcoal);border:none;border-radius:3px;
  padding:22px;justify-content:space-between;gap:16px;
}
.elementor-20449 .taq-bundle-offer .taq-bundle-add{margin:0;padding:0}
.elementor-20449 .taq-bundle-offer .taq-bundle-add a.button{
  display:block;width:100%;text-align:center;background:var(--aiq-red);color:var(--aiq-off-white);
  border-radius:var(--r-btn);padding:13px 16px;font-family:var(--font-body);font-weight:700;font-size:14px;
}
.elementor-20449 .taq-bundle-offer .taq-bundle-add a.button:hover{background:var(--aiq-red-dark)}
@media (max-width:1024px){
  .elementor-20449 .taq-bundle-grid{flex-wrap:wrap}
  .elementor-20449 .taq-bundle-card{flex:1 1 calc(50% - 8px)}
  .elementor-20449 .taq-bundle-card.taq-bundle-offer{flex:1 1 100%}
}
@media (max-width:767px){
  .elementor-20449 .taq-bundle-grid{flex-direction:column}
  .elementor-20449 .taq-bundle-card{flex:1 1 auto}
}

/* ============================ */
/* Brand kit 2551 uppercases every h4. Card titles are product     */
/* names, so opt out locally rather than change the kit.           */
/* ============================ */
.elementor-20449 h4.taq-card-title,
.elementor-20449 h4.taq-card-title a{text-transform:none}

/* ============================ */
/* Keep going cards                                             */
/* The whole card is a link. The URL is never shown as text, so  */
/* a Thinkific course and a class post look the same.            */
/* ============================ */
.elementor-20449 .taq-card{display:flex;flex-direction:column;gap:8px;background:#fff;border:1px solid var(--hair);border-radius:3px;overflow:hidden}
.elementor-20449 a.taq-card-linked{text-decoration:none;color:inherit;transition:box-shadow .15s ease,transform .15s ease}
.elementor-20449 a.taq-card-linked:hover{box-shadow:0 2px 8px rgba(51,49,46,.08);transform:translateY(-2px)}
.elementor-20449 .taq-card img.taq-shot{aspect-ratio:16/10;border-radius:0}
.elementor-20449 .taq-card .taq-eyebrow{margin:14px 14px 0}
.elementor-20449 .taq-card h4.taq-card-title{font-family:var(--font-heading);font-weight:700;font-size:16px;line-height:1.3;color:var(--fg-1);text-transform:none;margin:0;padding:0 14px}
.elementor-20449 .taq-card p.taq-caption{margin:4px 0 0;padding:0 14px 14px;font-size:15px;color:var(--fg-2)}

/* ============================ */
/* Card images normalize whatever markup they arrive in.        */
/* Open Graph images and filtered attachment markup do not       */
/* always keep the taq-shot class, so match any img in a card.   */
/* ============================ */
.elementor-20449 .taq-card img{width:100%;height:100%;display:block;aspect-ratio:16/10;object-fit:cover;border-radius:0}
.elementor-20449 .taq-bundle-card img{width:100%;height:100%;display:block;aspect-ratio:1;object-fit:cover;border-radius:0}
.elementor-20449 .taq-bundle-offer img{display:none}

/* ============================ */
/* Full bleed tinted sections                                    */
/* The design tints the whole band and pads the content in, so   */
/* these two opt out of the 1180 cap and pad themselves instead. */
/* ============================ */
.elementor-20449 > .e-con.taq-how,
.elementor-20449 > .e-con.taq-bundle{
  max-width:none;background:var(--ink-200);border-top:none;
  padding-inline:max(24px, calc((100% - var(--page-max)) / 2));
}

/* ============================ */
/* How it works                 */
/* ============================ */
/* Moved 4 September 2026. This section is now Elementor template 20721,   */
/* "CONTAINER How It Works", which carries its own typography, colors,     */
/* grid and image settings as native Elementor Style settings.             */
/* Edit it there, not here.                                                */
/* The full bleed cream band rule above stays, because it styles the       */
/* container that lives in THIS template, not anything inside 20721.       */



/* ============================ */
/* About this pattern · Woo long description                     */
/* ============================ */
.elementor-20449 .taq-about-inner{max-width:68ch}
.elementor-20449 .taq-about-body p{margin:0 0 14px;font-size:18px;line-height:1.65;color:var(--fg-1)}
.elementor-20449 .taq-about-body p:last-child{margin-bottom:0}

/* ============================ */
/* Short description, under the price in the buy box             */
/* ============================ */
.elementor-20449 .taq-short-desc,
.elementor-20449 .taq-short-desc p{font-family:var(--font-body);font-size:16px;line-height:1.55;color:var(--fg-2);margin:0}

/* ============================ */
/* Newsletter band, full width                                   */
/* section drops the 1180 cap and the caption is padded back      */
/* onto the grid on its own.                                      */
/* ============================ */

/* ============================ */
/* Newsletter band                                               */
/* Charcoal, full width, copy left and form right, per design.   */
/* ============================ */
.elementor-20449 > .e-con.taq-signup{
  max-width:none;background:var(--aiq-charcoal);border-top:none;
  padding-block:52px;padding-inline:max(24px, calc((100% - var(--page-max)) / 2));
}
.elementor-20449 .taq-signup-fine p{font-size:15px;color:var(--aiq-off-white);margin:0}

/* ============================ */
/* Section links, arrow style                                    */
/* ============================ */
.elementor-20449 .taq-sechead{display:flex;align-items:baseline;justify-content:space-between;gap:24px;margin-bottom:24px}
.elementor-20449 .taq-seclink,
.elementor-20449 a.taq-seclink{font-family:var(--font-body);font-size:15px;font-weight:700;color:var(--aiq-red);text-decoration:none;white-space:nowrap}
.elementor-20449 .taq-seclink a{color:var(--aiq-red);text-decoration:none;font-weight:700}
.elementor-20449 a.taq-seclink:after,
.elementor-20449 .taq-seclink a:after{content:" →"}
.elementor-20449 p.taq-seclink{margin:20px 0 0}
@media (max-width:767px){
    .elementor-20449 .taq-sechead{flex-direction:column;align-items:flex-start;gap:8px}
}

/* ============================ */
/* Blog heading row                                              */
/* Eyebrow and heading left, All articles right on the same       */
/* baseline, arrow kept on one line.                              */
/* ============================ */
.elementor-20449 .taq-blog{display:grid !important;grid-template-columns:minmax(0,1fr) auto;column-gap:24px;align-items:baseline}
.elementor-20449 .taq-blog > .taq-eyebrow{grid-column:1;grid-row:1}
.elementor-20449 .taq-blog > .taq-h2{grid-column:1;grid-row:2;margin-bottom:24px}
.elementor-20449 .taq-blog > .taq-textlink{grid-column:2;grid-row:2;justify-self:end;align-self:baseline;width:auto}
.elementor-20449 .taq-blog > .taq-posts{grid-column:1 / -1;grid-row:3}
.elementor-20449 .taq-textlink .elementor-button,
.elementor-20449 .taq-textlink .elementor-button-content-wrapper,
.elementor-20449 .taq-textlink .elementor-button-text{display:inline;white-space:nowrap}

/* ============================ */
/* Bundle offer card                                             */
/* Fixed kicker, bundle name, its short description, then the    */
/* price line and CTA pinned to the bottom.                      */
/* ============================ */
.elementor-20449 .taq-bundle-offer{display:flex;flex-direction:column;justify-content:space-between;gap:24px}
.elementor-20449 .taq-bundle-offer-top{display:flex;flex-direction:column;gap:8px}
.elementor-20449 .taq-bundle-offer-bottom{display:flex;flex-direction:column;gap:12px}
.elementor-20449 .taq-bundle-kicker{
  font-family:var(--font-heading);font-weight:700;font-size:28px;line-height:1.15;
  color:var(--aiq-off-white);margin-bottom:12px;
}
.elementor-20449 .taq-bundle-name{
  font-family:var(--font-heading);font-weight:700;font-size:19px;line-height:1.3;
  color:var(--aiq-off-white);
}
.elementor-20449 .taq-bundle-short,
.elementor-20449 .taq-bundle-short p{
  font-family:var(--font-body);font-size:15px;line-height:1.55;
  color:var(--aiq-off-white);margin:0;
}
.elementor-20449 p.taq-bundle-price-line{
  font-family:var(--font-body);font-size:15px;color:var(--aiq-off-white);margin:0;
}
.elementor-20449 .taq-bundle-offer .taq-bundle-add a.button{
  display:block;width:100%;text-align:center;background:var(--aiq-red);
  color:var(--aiq-off-white);border-radius:var(--r-btn);padding:13px 16px;
  font-family:var(--font-body);font-weight:700;font-size:14px;
}

/* Gallery images: some arrive without the taq-shot class after image filters */
.elementor-20449 .taq-gallery img{width:100%;height:100%;object-fit:cover;border-radius:var(--r-img);display:block}

/* ============================ */
/* Gallery lightbox                                              */
/* Every gallery slot links to its full size file and opens in    */
/* WooCommerce's own PhotoSwipe. Cursor signals it is clickable.  */
/* ============================ */
.elementor-20449 a.taq-zoom{display:block;line-height:0;cursor:zoom-in}
.elementor-20449 a.taq-zoom img{transition:opacity .15s ease}
.elementor-20449 a.taq-zoom:hover img{opacity:.92}

/* ---------------------------- */
/* Sticky bar button, rebuilt 18 Aug 2026 */
/* It is a real button now, so the browser default */
/* border and cursor have to be cleared. is-blocked */
/* mirrors WooCommerce disabling the main button */
/* until a format is chosen. */
/* ---------------------------- */
.elementor-20449 button.taq-stickybar-btn{border:0;cursor:pointer;font-size:15px;line-height:1.2}
.elementor-20449 button.taq-stickybar-btn.is-blocked{background:transparent;color:var(--aiq-charcoal);border:1.5px solid var(--aiq-charcoal)}

/* Bundle component cards are one clickable target. Added 22 Aug 2026. */
.elementor-20449 a.taq-bundle-card{display:block;text-decoration:none;color:inherit;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}
.elementor-20449 a.taq-bundle-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(51,49,46,.13)}
.elementor-20449 a.taq-bundle-card:focus-visible{outline:2px solid var(--aiq-red);outline-offset:3px}
.elementor-20449 a.taq-bundle-card .taq-card-title{color:inherit}
.elementor-20449 a.taq-bundle-card .taq-card-price{color:inherit}
.elementor-20449 a.taq-bundle-card:hover .taq-card-title{color:var(--aiq-red)}

/* Per-product hero crop: Mrs. Banks (21181), keep the head in frame */
.postid-21181 img.taq-shot-hero{object-position:50% 0}


/* Comparison table in long descriptions (Speedy vs. a real hummingbird) */
table.taq-vs th{text-align:left}
table.taq-vs td:last-child{font-family:'Open Sans',sans-serif;font-weight:700;color:#2E6B4F}/* End custom CSS */