/* ---- ic-front.css ---- */
:root{
  --ic-pink:#e00189;--ic-pink-dark:#b30070;--ic-pink-bg:#fff7fa;--ic-pink-bg2:#fff0f5;
  --ic-border:#f8c8d8;--ic-border-med:#f3c9d6;--ic-text:#333;--ic-text-mid:#555;--ic-muted:#888;
}
.ic-dl-wrap,.ic-resend,.ic-thankyou-downloads,.ic-dl-empty{font-family:'Nunito',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--ic-text);max-width:840px;margin:0 auto;padding:8px 0 32px}
.ic-dl-title{font-family:'Concert One',Georgia,serif;font-size:clamp(24px,4vw,34px);line-height:1.15;margin:0 0 10px;color:var(--ic-text)}
.ic-dl-lede{font-size:15px;line-height:1.7;color:var(--ic-text-mid);margin:0 0 22px}

.ic-btn{display:inline-block;background:var(--ic-pink);color:#fff!important;font-size:13px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:11px 22px;border-radius:7px;border:none;cursor:pointer;text-decoration:none;line-height:1.2;white-space:nowrap;transition:background .18s,transform .15s}
.ic-btn:hover{background:var(--ic-pink-dark);transform:translateY(-1px);color:#fff!important}
.ic-btn-sm{padding:8px 15px;font-size:11.5px}
.ic-btn-ghost{background:#fff;color:var(--ic-pink)!important;border:1.5px solid var(--ic-border)}
.ic-btn-ghost:hover{background:var(--ic-pink-bg2);border-color:var(--ic-pink);color:var(--ic-pink-dark)!important}

.ic-dl-drive{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;background:var(--ic-pink-bg);border:1px dashed var(--ic-pink);border-radius:12px;padding:16px 20px;margin:0 0 26px}
.ic-dl-drive-txt{display:flex;flex-direction:column;gap:2px;font-size:14.5px}
.ic-dl-drive-txt span{color:var(--ic-muted);font-size:13.5px}

.ic-dl-col{margin:0 0 28px}
.ic-dl-colhead{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:0 0 12px;border-bottom:2px solid var(--ic-border)}
.ic-dl-colhead h2{font-family:'Concert One',Georgia,serif;font-size:21px;margin:0;flex:1 1 auto;color:var(--ic-text)}
.ic-dl-count{background:var(--ic-pink-bg2);border:1px solid var(--ic-border);color:var(--ic-pink);font-size:11.5px;font-weight:800;padding:4px 11px;border-radius:20px;text-transform:uppercase;letter-spacing:.05em}

.ic-dl-list{list-style:none;margin:0;padding:0}
.ic-dl-item{display:flex;align-items:center;gap:14px;padding:12px 14px;border-bottom:1px solid var(--ic-border);background:#fff;transition:background .15s}
.ic-dl-item:hover{background:var(--ic-pink-bg)}
.ic-dl-item:last-child{border-bottom:none}
.ic-dl-thumb{width:54px;height:54px;object-fit:cover;border-radius:8px;border:1px solid var(--ic-border);flex:0 0 54px;background:var(--ic-pink-bg2)}
.ic-dl-thumb-ph{display:flex;align-items:center;justify-content:center;font-size:10.5px;font-weight:800;color:var(--ic-pink);letter-spacing:.06em}
.ic-dl-meta{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}
.ic-dl-name{font-size:15px;font-weight:700;line-height:1.35;word-break:break-word}
.ic-dl-size{font-size:12.5px;color:var(--ic-muted)}
.ic-dl-help{margin-top:22px;font-size:14px;color:var(--ic-text-mid);text-align:center}
.ic-dl-note{background:var(--ic-pink-bg);border:1px solid var(--ic-border);border-radius:10px;padding:16px;font-size:14.5px}

.ic-dl-empty{text-align:center;background:var(--ic-pink-bg);border:1px solid var(--ic-border);border-radius:14px;padding:34px 24px}
.ic-dl-empty h2{font-family:'Concert One',Georgia,serif;margin:0 0 10px;font-size:24px}

.ic-resend-form{display:flex;flex-direction:column;gap:8px;max-width:420px;margin:18px 0}
.ic-resend-form label{font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--ic-muted)}
.ic-resend-form input[type=email]{padding:13px 15px;border:1.5px solid var(--ic-border);border-radius:8px;font-size:16px;font-family:inherit}
.ic-resend-form input[type=email]:focus{outline:none;border-color:var(--ic-pink)}
.ic-resend-form button{align-self:flex-start;margin-top:4px}
.ic-msg{padding:14px 18px;border-radius:10px;margin:0 0 20px;font-size:14.5px;line-height:1.6}
.ic-msg-good{background:#e9f7ef;border:1px solid #a8dbbd;color:#1c6f4c}
.ic-msg-warn{background:#fdf3e2;border:1px solid #f0cf9a;color:#8a5300}

.ic-thankyou-downloads{margin-top:28px;padding-top:26px;border-top:2px dashed var(--ic-border)}

/* ---- checkout ---- */
.ic-email-hint{display:block;margin-top:6px;font-size:13.5px;line-height:1.5;background:#fdf3e2;border:1px solid #f0cf9a;color:#8a5300;padding:9px 12px;border-radius:8px}
.ic-email-hint button{background:none;border:none;color:var(--ic-pink);font-weight:800;cursor:pointer;text-decoration:underline;padding:0;font-size:13.5px;font-family:inherit}
.ic-match-ok{display:block;margin-top:6px;font-size:13px;color:#1c6f4c;font-weight:700}
.woocommerce-checkout .ic-field .description{font-size:13px;color:var(--ic-muted);margin-top:5px}

@media (max-width:600px){
  .ic-dl-item{flex-wrap:wrap;gap:10px}
  .ic-dl-item .ic-btn{width:100%;text-align:center}
  .ic-dl-drive{flex-direction:column;align-items:stretch}
  .ic-dl-drive .ic-btn{text-align:center}
}

/* ---- download feedback ---- */
.ic-dl-hint{font-size:14px;line-height:1.6;color:var(--ic-text-mid);margin:0 0 18px}
.ic-dl-inapp{font-size:14px;line-height:1.6;background:#fdf3e2;border:1px solid #f0cf9a;color:#8a5300;padding:11px 14px;border-radius:9px;margin:0 0 14px}
.ic-dl-toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%) translateY(8px);z-index:9999;max-width:calc(100vw - 32px);background:var(--ic-text);color:#fff;font-family:'Nunito',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:14.5px;font-weight:700;line-height:1.45;padding:12px 20px;border-radius:10px;box-shadow:0 6px 22px rgba(0,0,0,.22);text-align:center;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s,transform .2s}
.ic-dl-toast.is-on{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
@media (prefers-reduced-motion:reduce){.ic-dl-toast{transition:none}}

/* ---- iOS in-app share flow: the two button states ---- */
.ic-btn.ic-dl-working{background:#8a8a8a;border-color:#8a8a8a;cursor:progress;font-variant-numeric:tabular-nums}
.ic-btn.ic-dl-ready{background:#0a7d41;border-color:#0a7d41;animation:icDlReady .9s ease-out 1}
@keyframes icDlReady{from{transform:scale(.97)}to{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.ic-btn.ic-dl-ready{animation:none}}

/* Elementor's global typography defaults to Roboto and Roboto Slab. Nothing on
   the site uses them except one image caption, but they cost two render-blocking
   Google Font requests. Pointing the globals at the brand font removes that need
   and keeps every element in Nunito. The body. prefix outranks Elementor's own
   .elementor-kit-12 rule, so this wins whatever order the stylesheets load in. */
body.elementor-kit-12{--e-global-typography-primary-font-family:"Nunito";--e-global-typography-secondary-font-family:"Nunito";--e-global-typography-text-font-family:"Nunito";--e-global-typography-accent-font-family:"Nunito"}
/* ---- ic-store.css ---- */
/* ICANCROCHET storefront chrome */
.ic-landing{margin-top:26px}
.ic-landing .elementor-widget-container>p:last-child{margin-bottom:0}

/* Accordion styled to match the brand (Elementor's own controls do not cover the frame) */
.ic-landing .elementor-accordion .elementor-accordion-item{border:1.5px solid var(--ic-border,#f8c8d8);border-radius:10px;overflow:hidden;margin-bottom:10px;background:var(--ic-pink-bg,#fff7fa);transition:border-color .22s,box-shadow .22s,transform .22s}
.ic-landing .elementor-accordion .elementor-accordion-item:hover{border-color:#e00189;box-shadow:0 4px 14px rgba(224,1,137,.11);transform:translateY(-2px)}
.ic-landing .elementor-accordion .elementor-tab-title{padding:16px 20px;font-weight:700}
.ic-landing .elementor-accordion .elementor-tab-title.elementor-active{border-bottom:1px dashed var(--ic-border,#f8c8d8)}
.ic-landing .elementor-accordion .elementor-tab-content{border:none;padding:14px 20px 20px;background:#fff}
.ic-landing .elementor-accordion .elementor-tab-content a{color:#e00189;font-weight:700}
.ic-landing .elementor-accordion .elementor-tab-content img{max-width:380px;width:100%;border-radius:10px;margin:10px 0;border:2px solid #f8c8d8}

/* Etsy screenshot caption */
.ic-landing .elementor-image figcaption{font-size:12.5px;color:#888;text-align:center;margin-top:8px;font-style:italic}

/* ---------------- sticky add to cart ---------------- */
.ic-sticky{position:fixed;left:0;right:0;bottom:0;z-index:9990;background:#fff;border-top:1px solid #f3c9d6;box-shadow:0 -4px 20px rgba(0,0,0,.10);transform:translateY(110%);transition:transform .28s ease;padding:10px 0;padding-bottom:calc(10px + env(safe-area-inset-bottom))}
.ic-sticky.is-on{transform:translateY(0)}
.ic-sticky[hidden]{display:block}
.ic-sticky-in{max-width:1100px;margin:0 auto;padding:0 16px;display:flex;align-items:center;gap:14px;justify-content:space-between}
.ic-sticky-info{display:flex;align-items:center;gap:12px;min-width:0;flex:1 1 auto}
.ic-sticky-thumb{width:52px;height:52px;object-fit:cover;border-radius:8px;border:1px solid #f8c8d8;flex:0 0 52px}
.ic-sticky-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.ic-sticky-name{font-family:'Nunito',sans-serif;font-size:14px;font-weight:700;color:#333;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:46vw}
.ic-sticky-price{font-family:'Nunito',sans-serif;font-size:16px;font-weight:800;color:#e00189;line-height:1.2}
.ic-sticky-price del{color:#aaa;font-weight:600;font-size:13.5px;margin-left:4px}
.ic-sticky-price del .woocommerce-Price-amount{color:#aaa}
.ic-sticky-btn{display:inline-block;background:#e00189;color:#fff!important;font-family:'Nunito',sans-serif;font-size:13.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:14px 30px;border-radius:8px;text-decoration:none;white-space:nowrap;transition:background .18s,transform .15s}
.ic-sticky-btn:hover{background:#b30070;transform:translateY(-1px);color:#fff!important}

@media (max-width:600px){
  .ic-sticky-in{gap:10px;padding:0 12px}
  .ic-sticky-thumb{width:44px;height:44px;flex:0 0 44px}
  .ic-sticky-name{font-size:12.5px;max-width:38vw}
  .ic-sticky-price{font-size:14.5px}
  .ic-sticky-btn{padding:12px 16px;font-size:12px;letter-spacing:.03em}
}
@media (max-width:360px){
  .ic-sticky-name{display:none}
}

@media (prefers-reduced-motion:reduce){
  .ic-sticky,.ic-top{transition:none}
}

/* ---------------- back to top (Astra's button, branded) ---------------- */
#ast-scroll-top{background:#e00189!important;color:#fff!important;border-radius:50%!important;width:44px!important;height:44px!important;line-height:44px!important;box-shadow:0 4px 14px rgba(224,1,137,.35)!important;bottom:84px!important;right:16px!important;display:flex!important;align-items:center;justify-content:center;transition:background .18s,transform .18s}
#ast-scroll-top:hover{background:#b30070!important;transform:translateY(-2px)}
#ast-scroll-top:focus-visible{outline:3px solid #f8c8d8;outline-offset:2px}
#ast-scroll-top .ast-arrow-svg{fill:#fff!important;width:17px!important;height:auto}
@media (max-width:600px){#ast-scroll-top{bottom:80px!important;right:12px!important;width:40px!important;height:40px!important;line-height:40px!important}}

/* ---------------- product gallery safety ---------------- */
/* WooCommerce ships the gallery at opacity:0 and fades it in with JS.
   If that script is slow or blocked the main image never shows, so we
   make visibility the default and let the JS do the rest. */
.woocommerce div.product div.images.woocommerce-product-gallery{opacity:1!important}
.woocommerce-product-gallery__image img{width:100%;height:auto;border-radius:10px}

/* ---------------- header identity ---------------- */
/* The logo image already contains the wordmark, so the text title is a
   visual duplicate. Keep it for screen readers and search engines. */
.ast-site-identity .ast-site-title-wrap{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}
.site-header .custom-logo-link img{max-width:190px;height:auto}
@media (max-width:768px){.site-header .custom-logo-link img{max-width:140px}}

/* ---------------- gallery thumbnails ---------------- */
/* WooCommerce lays the flexslider thumbnails out as a 4-column grid. With
   62 images that is a wall of thumbnails on a phone, so make it a single
   swipeable strip -- the same shape the old Shopify gallery had. */
.woocommerce div.product .flex-control-thumbs{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto;gap:8px;margin:14px 0 0!important;padding:0 0 8px!important;list-style:none;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#f8c8d8 transparent}
.woocommerce div.product .flex-control-thumbs::-webkit-scrollbar{height:6px}
.woocommerce div.product .flex-control-thumbs::-webkit-scrollbar-thumb{background:#f8c8d8;border-radius:4px}
.woocommerce div.product .flex-control-thumbs li{flex:0 0 76px!important;width:76px!important;margin:0!important;padding:0!important;float:none!important;list-style:none;scroll-snap-align:start}
.woocommerce div.product .flex-control-thumbs li img{width:76px;height:76px;object-fit:cover;border-radius:8px;border:2px solid transparent;opacity:.75;transition:opacity .18s,border-color .18s;cursor:pointer}
.woocommerce div.product .flex-control-thumbs li img:hover{opacity:1}
.woocommerce div.product .flex-control-thumbs li img.flex-active{opacity:1;border-color:#e00189}
@media (max-width:600px){.woocommerce div.product .flex-control-thumbs li{flex:0 0 64px!important;width:64px!important}.woocommerce div.product .flex-control-thumbs li img{width:64px;height:64px}}

/* the gallery box is the positioning context for the thumbnail nav */
.woocommerce-product-gallery,
.woocommerce-product-gallery .flex-viewport{position:relative}

/* the thumbnail strip has to be able to scroll, on touch as well as click */
.flex-control-thumbs{overflow-x:auto!important;-webkit-overflow-scrolling:touch}


/* ic-gal-touch: FlexSlider never set touch-action here, so on a phone the
   browser panned the page at the same time as the slider dragged the
   strip -- the two fought each other and a swipe landed several photos
   away. pan-y hands horizontal gestures to the slider and keeps vertical
   scrolling with the page. */
.woocommerce-product-gallery .flex-viewport,
.woocommerce-product-gallery .woocommerce-product-gallery__wrapper{touch-action:pan-y}
.woocommerce-product-gallery__image img{-webkit-user-drag:none;user-select:none;-webkit-touch-callout:none}

/* ic-thumb-nav: the thumbnail strip gets its own pair of arrows, so it can
   be walked with a mouse as well as a finger, and so it is obvious on a
   phone that there are more patterns further along. */
.ic-thumbs{position:relative}
.ic-thumb-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:4;width:30px;height:30px;display:flex;align-items:center;justify-content:center;padding:0;font:inherit;font-size:13px;line-height:1;background:#fff;color:#ad1457;border:1.5px solid #f8c8d8;border-radius:50%;box-shadow:0 3px 10px rgba(0,0,0,.16);cursor:pointer;transition:background .15s ease,color .15s ease}
.ic-thumb-arrow:hover,.ic-thumb-arrow:focus-visible{background:#fff0f7;color:#e00189;outline:none}
.ic-thumb-arrow[hidden]{display:none}
.ic-thumb-prev{left:0}
.ic-thumb-next{right:0}
/* keep the first and last thumbnail clear of the buttons */
.ic-thumbs.has-nav .flex-control-thumbs{scroll-padding-left:36px;scroll-padding-right:36px}
.ic-thumbs.has-nav .flex-control-thumbs::before,
.ic-thumbs.has-nav .flex-control-thumbs::after{content:'';flex:0 0 26px}
@media (max-width:600px){.ic-thumb-arrow{width:28px;height:28px;font-size:12px}}

/* ============================ gallery: INITIALIZING ======================
   The server prints .ic-gal-init on the gallery, so this state is in force
   from the first byte of HTML -- no script has to run for it to hold, and
   no amount of delay can defeat it. While it is on:
     - the gallery is a fixed square box, the size of one product image
     - the wrapper cannot be widened by FlexSlider's inline width
     - slides two to sixty-two cannot paint at all
     - the first slide fills the box, at full opacity, not lazy-loaded
   ic-gallery.js removes the class once the slider has actually sized its
   slides, and every rule below switches off together at that moment. */
.woocommerce-product-gallery.ic-gal-init{position:relative;aspect-ratio:1/1;overflow:hidden}
.woocommerce-product-gallery.ic-gal-init .flex-viewport{width:100%!important;max-width:100%!important;height:auto!important;overflow:hidden}
.woocommerce-product-gallery.ic-gal-init .woocommerce-product-gallery__wrapper{width:100%!important;max-width:100%!important;margin:0!important;transform:none!important}
.woocommerce-product-gallery.ic-gal-init .woocommerce-product-gallery__image{display:none!important}
.woocommerce-product-gallery.ic-gal-init .woocommerce-product-gallery__image:first-child{display:block!important;position:static!important;float:none!important;width:100%!important;max-width:100%!important;margin:0!important}
.woocommerce-product-gallery.ic-gal-init .woocommerce-product-gallery__image:first-child img{display:block!important;width:100%!important;max-width:100%!important;height:auto!important}
.woocommerce-product-gallery.ic-gal-init .flex-control-nav{display:none!important}
.woocommerce-product-gallery.ic-gal-init .ic-thumb-arrow{display:none!important}

/* One thumbnail per flick. Snap points alone only decide where a scroll may
   come to rest; a fast swipe on a phone sails past four or five of them
   before momentum runs out. scroll-snap-stop makes each thumbnail a hard
   stop, so a swipe moves one image whether it is slow or quick, in both
   directions. */
.flex-control-thumbs li{scroll-snap-align:start;scroll-snap-stop:always}
/* ---- ic-shop.css ---- */
/* ICANCROCHET storefront — product summary, announcement bar, page rhythm */

:root{
  --icp:#e00189; --icp-dark:#b30070; --icp-bg:#fff7fa; --icp-bg2:#fff0f5;
  --icb:#f8c8d8; --icb2:#f3c9d6; --ict:#333130; --ict2:#5c5048; --icm:#888;
}

/* ---------------- page ground ---------------- */
body.ic-shop-page{background:var(--icp-bg)}
body.ic-shop-page #content,
body.ic-shop-page .site-content{background:transparent}
body.ic-shop-page .ast-container{max-width:1140px}

/* Astra prints a plain breadcrumb above the product; quieten it */
body.ic-shop-page .woocommerce-breadcrumb{font-size:12.5px;color:#a99;margin:0 0 14px}
body.ic-shop-page .woocommerce-breadcrumb a{color:#b98a99}

/* ---------------- announcement bar ---------------- */
.ic-announce{background:var(--icp);color:#fff;text-align:center;padding:9px 16px;font-family:'Nunito',sans-serif;font-size:13px;font-weight:800;letter-spacing:.03em;line-height:1.4}
.ic-announce a{color:#fff;text-decoration:underline;text-underline-offset:2px}
@media (max-width:600px){.ic-announce{font-size:11.5px;padding:8px 12px}}

/* ---------------- product summary ---------------- */
.woocommerce div.product .summary.entry-summary{font-family:'Nunito',sans-serif}

.ic-p-title{
  font-family:'Nunito',sans-serif;font-size:clamp(21px,2.4vw,27px);font-weight:800;
  line-height:1.25;color:var(--ict);margin:0 0 12px;letter-spacing:-.01em;
}

.ic-rating-row{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin:0 0 12px}
.ic-stars{color:#ffb400;font-size:16px;letter-spacing:2px;line-height:1}
.ic-rating-txt{font-size:13px;color:var(--icm);font-weight:600}
.ic-badge-off{
  background:var(--icp);color:#fff;font-size:10.5px;font-weight:800;letter-spacing:.07em;
  text-transform:uppercase;padding:5px 11px;border-radius:20px;white-space:nowrap;
}

.ic-price{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:0 0 4px}
.ic-price-now{font-size:clamp(28px,3.4vw,36px);font-weight:800;color:var(--icp);line-height:1}
.ic-price-now .woocommerce-Price-amount{color:var(--icp)}
.ic-price-was{font-size:18px;color:#b3a7ab;text-decoration:line-through}
.ic-price-was .woocommerce-Price-amount{color:#b3a7ab}
.ic-price-note{font-size:13px;color:var(--icm);margin:0 0 14px;line-height:1.5}

.ic-countdown{
  display:flex;align-items:center;gap:8px;justify-content:center;
  background:var(--icp-bg2);border:1px dashed var(--icb);border-radius:10px;
  padding:9px 14px;margin:0 0 16px;font-size:13.5px;color:var(--ict2);font-weight:700;
}
.ic-cd-clock{font-variant-numeric:tabular-nums;font-weight:800;color:var(--icp);letter-spacing:.5px}

/* the real add-to-cart button */
.woocommerce div.product form.cart{margin:0 0 16px!important;display:block}
.woocommerce div.product form.cart .quantity{display:none}
.woocommerce div.product .single_add_to_cart_button,
.woocommerce div.product form.cart button.button{
  width:100%!important;display:block!important;text-align:center;
  background:var(--icp)!important;color:#fff!important;
  font-family:'Nunito',sans-serif!important;font-size:16px!important;font-weight:800!important;
  letter-spacing:.03em;text-transform:none!important;
  padding:17px 24px!important;border-radius:10px!important;border:none!important;
  box-shadow:0 6px 18px rgba(224,1,137,.28);
  transition:background .18s,transform .15s,box-shadow .18s;
}
.woocommerce div.product .single_add_to_cart_button:hover{
  background:var(--icp-dark)!important;transform:translateY(-2px);
  box-shadow:0 10px 24px rgba(224,1,137,.34);
}

/* Express wallet buttons crowd the one clear action; keep them for checkout */
body.ic-shop-page .wc-stripe-express-checkout-element,
body.ic-shop-page #wc-stripe-express-checkout-element,
body.ic-shop-page wc-order-attribution-inputs,
body.ic-shop-page .wc-stripe-payment-request-wrapper,
body.ic-shop-page #wc-stripe-payment-request-wrapper,
body.ic-shop-page .ppc-button-wrapper,
body.ic-shop-page #ppc-button-ppcp-gateway,
body.ic-shop-page .ppcp-messages{display:none!important}

.ic-testi{
  background:var(--icp-bg);border:1px solid var(--icb2);border-radius:12px;
  padding:14px 16px;margin:0 0 14px;
}
.ic-testi-stars{color:#ffb400;font-size:13px;letter-spacing:2px;display:block;margin-bottom:5px}
.ic-testi-text{margin:0 0 6px;font-size:13.5px;line-height:1.6;color:var(--ict2);font-style:italic}
.ic-testi-who{margin:0;font-size:11.5px;font-weight:800;color:var(--icp);text-transform:uppercase;letter-spacing:.05em}

.ic-pay{text-align:center;margin:0}
.ic-pay-note{margin:0 0 8px;font-size:12.5px;color:var(--icm)}
.ic-pay-icons{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center}
.ic-pay-icons img{height:24px;width:auto;max-width:52px;opacity:.9}

/* ---------------- landing section rhythm ---------------- */
/* The 34px top margin here collapsed out of the whole content column and
   sat above the header gap instead of below the product summary. Padding
   keeps exactly the same breathing room without escaping. */
.ic-landing{max-width:1000px;margin:0 auto;padding-top:18px}
.ic-landing .elementor-heading-title em{font-style:italic;color:var(--icp)}
.ic-landing .elementor-widget-heading{margin-bottom:0}

@media (max-width:768px){
  .ic-landing{margin-top:10px}
  .ic-p-title{font-size:20px}
}

/* ---------------- display face ---------------- */
/* Elementor's own font control was losing to the theme's global typography,
   so the section headings rendered in the body font. Section headings are
   h2/h3; the small uppercase eyebrows are divs and stay in Nunito. */
.ic-landing h2.elementor-heading-title,
.ic-landing h3.elementor-heading-title{font-family:'Concert One',cursive!important;font-weight:400!important;letter-spacing:.3px}
.ic-landing h2.elementor-heading-title em,
.ic-landing h3.elementor-heading-title em{font-family:'Concert One',cursive!important}

/* hide breadcrumb on the sales page */
body.ic-shop-page .woocommerce-breadcrumb,
body.ic-shop-page .ast-breadcrumbs-wrapper{display:none!important}

/* ---- rating row is a shortcut to the reviews wall ---- */
.ic-rating-link{display:inline-flex;align-items:center;gap:9px;text-decoration:none;color:inherit;cursor:pointer;border-bottom:1px solid transparent;transition:border-color .15s,transform .15s}
.ic-rating-link:hover{border-bottom-color:var(--icp);transform:translateY(-1px)}
.ic-rating-link:hover .ic-rating-txt{color:var(--icp)}
.ic-rating-link:focus-visible{outline:2px solid var(--icp);outline-offset:3px;border-radius:4px}

/* ---- payment reassurance under the buy button ---- */
.ic-pay{text-align:center;margin:16px 0 0;padding:15px 14px;background:var(--icp-bg);border:1px solid var(--icb2);border-radius:14px}
.ic-pay-note{margin:0 0 11px;font-size:13px;font-weight:600;color:var(--ict2);display:flex;align-items:center;justify-content:center;gap:7px;line-height:1.35}
.ic-pay-lock{color:var(--icp);flex:0 0 auto}
.ic-pay-icons{list-style:none;display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center;margin:0;padding:0}
.ic-pay-mark{display:flex;align-items:center;justify-content:center;width:52px;height:34px;background:#fff;border:1px solid #f0dde6;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.05);transition:transform .15s,box-shadow .15s}
.ic-pay-mark:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(224,1,137,.14)}
.ic-pay-mark img{height:22px;width:auto;max-width:38px;display:block;opacity:1}
.ic-pay-secure{margin:11px 0 0;font-size:11.5px;color:var(--icm);letter-spacing:.01em}
@media (max-width:600px){
  .ic-pay{padding:13px 10px;border-radius:12px}
  .ic-pay-note{font-size:12.5px}
  .ic-pay-icons{gap:6px}
  .ic-pay-mark{width:46px;height:30px;border-radius:7px}
  .ic-pay-mark img{height:19px;max-width:34px}
}

/* ic-cta-centre: the buy button was pulled 16px left of its column, which
   read as off-centre and nearly touched the screen edge on a phone. Sit it
   squarely inside the column instead. Size, colour and type are unchanged. */
@media (max-width: 921px) {
	.woocommerce div.product form.cart button.single_add_to_cart_button,
	.woocommerce div.product form.cart .single_add_to_cart_button {
		display: block;
		width: 100%;
		max-width: 100%;
		margin-left: auto !important;
		margin-right: auto !important;
		float: none;
	}
}

/* ic-header-gap: the sales page starts right under the header, not a
   screenful below it. Astra's default is 60px. */
/* Astra sets this from an inline rule with two classes plus the id, and only
   above 1200px -- below that it is already zero -- so the override has to
   match that weight and that breakpoint. */
@media (min-width:1200px){
	body.single-product.ast-plain-container.ast-no-sidebar #primary{margin-top:28px}
}
/* Below 1200px Astra zeroes this margin, and the 34px that used to leak out
   of .ic-landing was filling the space by accident. Now that the leak is
   fixed, give the phone and tablet an intentional gap of their own. */
@media (max-width:1199px){
	body.single-product.ast-plain-container.ast-no-sidebar #primary{margin-top:24px}
}
