/*
 * Childfinity: single product page sections.
 * The page is a Shop Builder template in Elementor; section classes connect to these rules.
 */

/* Shared */
body .cf-p-title { font-size: clamp(1.8rem, 3.6vw, 2.8rem); line-height: 1.38; margin: 0 0 12px; }
.cf-p-title span { color: var(--cf-pink); font-weight: 400; }
.cf-p-lead { margin: 0; color: var(--cf-muted); }
.cf-p-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 24px; margin-bottom: 24px; }
body .cf-p-head .cf-p-more { padding: 9px 14px; border: 1px solid #D7E4F2; border-radius: 12px; background: var(--cf-white); color: var(--cf-navy); font-size: .92rem; font-weight: 700; white-space: nowrap; }
body .cf-p-head .cf-p-more:hover { color: var(--cf-pink); }
body .cf-text-link { display: inline-block; padding-bottom: 3px; border-bottom: 2px solid var(--cf-yellow); color: var(--cf-navy); font-weight: 700; }
body .cf-text-link:hover { color: var(--cf-pink); }
.elementor .cf-p-sec { padding-block: 56px; }
.elementor .cf-p-white { background: var(--cf-white); }
.cf-p-block { padding-block: 56px; }
.elementor .cf-p-flush { padding-block: 0; }

/* Top: gallery and buy box */
.elementor .cf-p-top { padding-block: 18px 56px; }
.elementor .cf-p-detail { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; gap: clamp(28px, 5vw, 60px); }
.elementor .cf-p-summary { display: flex; flex-direction: column; gap: 0; }
.cf-p-summary .cf-eyebrow { margin-bottom: 6px; }
body .cf-eyebrow a { color: inherit; }
.cf-product-gallery .cf-gallery-sticker { position: absolute; left: 16px; top: 16px; z-index: 3; padding: 8px 13px; border-radius: 99px; background: var(--cf-white); box-shadow: 0 8px 20px rgba(7, 59, 138, .05); color: var(--cf-pink); font-size: .82rem; font-weight: 700; }
.cf-product-gallery:has(> .onsale) .cf-gallery-sticker { top: 52px; }
.woocommerce div.product div.images .flex-viewport, .woocommerce div.product div.images .woocommerce-product-gallery__wrapper { border: 1px solid #DEEDF9; border-radius: 30px; }
.woocommerce div.product div.images .flex-control-thumbs { grid-template-columns: repeat(auto-fill, 72px); }
.woocommerce div.product div.images .flex-control-thumbs li img { border: 1px solid #E4EBF4; border-radius: 16px; }

.cf-p-summary .woocommerce-product-rating { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.cf-p-summary .woocommerce-product-rating::before, .cf-p-summary .woocommerce-product-rating::after { display: none; }
.woocommerce div.product .cf-p-summary .woocommerce-product-rating .star-rating { flex: 0 0 auto; float: none; margin: 0; }
.cf-rating__score { color: var(--cf-navy); font-size: .95rem; line-height: 1; }
body .cf-rating .woocommerce-review-link, .cf-rating__count { padding-left: 9px; border-left: 1px solid var(--cf-line); color: var(--cf-muted); font-size: .9rem; line-height: 1.2; }
body .cf-rating .woocommerce-review-link:hover { color: var(--cf-pink); }
.cf-p-summary .woocommerce-product-details__short-description { margin: 0; color: #334C70; font-size: 1.05rem; }
.cf-p-summary .woocommerce-product-details__short-description p { margin: 0; }
.woocommerce div.product .cf-p-summary p.price { margin: 8px 0 14px; font-size: 2rem; }

/* Quick add */
.cf-quick { margin: 16px 0 0; padding: 10px 13px; border: 1px solid var(--cf-line); border-radius: 15px; background: var(--cf-white); }
.cf-quick__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 7px; color: var(--cf-navy); font-size: .92rem; }
body .cf-quick__head a { color: var(--cf-navy); font-size: .82rem; font-weight: 600; }
.cf-quick__item { display: flex; align-items: center; gap: 10px; padding: 9px 0; border-top: 1px solid var(--cf-line); }
.cf-quick__img { flex: 0 0 52px; width: 52px; height: 52px; overflow: hidden; border-radius: 11px; background: linear-gradient(145deg, var(--cf-pale), var(--cf-blue)); }
.cf-quick__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.cf-quick__info { display: flex; flex: 1; flex-direction: column; min-width: 0; line-height: 1.35; }
body .cf-quick__info a { color: var(--cf-navy); }
.cf-quick__info strong { font-size: .86rem; font-weight: 600; }
.cf-quick__info > span { color: var(--cf-navy); font-size: .9rem; font-weight: 700; }
.cf-quick__info del { color: var(--cf-muted); font-weight: 500; }
.cf-quick__info ins { color: var(--cf-pink); text-decoration: none; }
body .cf-quick__item .cf-quick__add { flex: none; padding: 7px 12px; border-radius: 22px; background: var(--cf-navy); color: var(--cf-white); font-size: .8rem; font-weight: 700; white-space: nowrap; }
body .cf-quick__item .cf-quick__add:hover { background: var(--cf-pink); color: var(--cf-white); }
body .cf-quick__item .added_to_cart { flex: none; color: var(--cf-pink); font-size: .78rem; font-weight: 600; }
.cf-quick__item .cf-quick__add.added { display: none; }

/* Pills */
.cf-pills { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0; }
.cf-pills span { padding: 6px 11px; border: 1px solid #E7EDF5; border-radius: 99px; background: var(--cf-white); color: var(--cf-navy); font-size: .8rem; }

/* Buy box */
.cf-buy-box .woocommerce-variation-add-to-cart, .woocommerce div.product .cf-buy-box form.cart { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 0 0 18px !important; padding-top: 16px; border-top: 1px solid var(--cf-line); }
.woocommerce div.product .cf-buy-box form.cart.variations_form { display: block; }
.woocommerce div.product .cf-buy-box form.cart div.quantity { display: inline-flex; align-items: center; height: 46px; overflow: hidden; border: 1px solid #D7E4F2; border-radius: 13px; background: var(--cf-white); }
body .cf-buy-box .cf-qty-btn { width: 40px; height: 100%; min-height: 0; padding: 0; border: 0; background: none; color: var(--cf-navy); font-size: 1.2rem; font-weight: 700; line-height: 1; cursor: pointer; }
body .cf-buy-box .cf-qty-btn:hover, body .cf-buy-box .cf-qty-btn:focus { background: var(--cf-blue); color: var(--cf-navy); }
.woocommerce .cf-buy-box .quantity .qty { width: 46px; min-height: 0; height: 100%; padding: 0; border: 0; border-radius: 0; background: none; -moz-appearance: textfield; }
.cf-buy-box .quantity .qty::-webkit-outer-spin-button, .cf-buy-box .quantity .qty::-webkit-inner-spin-button { margin: 0; appearance: none; }
.cf-stock-line { flex: 1 1 calc(100% - 160px); }
.woocommerce div.product .cf-stock-line .stock { margin: 0; color: #258B3A; font-size: .88rem; font-weight: 700; }
.woocommerce div.product .cf-stock-line .stock::before { content: "● "; }
.woocommerce div.product .cf-buy-box form.cart .button { flex: 1 1 calc(50% - 6px); justify-content: center; min-height: 50px; padding: 10px 14px; }
.woocommerce div.product .cf-buy-box form.cart .button.cf-buy-now { border: 1px solid #D7E4F2; background: var(--cf-white) !important; color: var(--cf-navy) !important; }
.woocommerce div.product .cf-buy-box form.cart .button.cf-buy-now:hover { color: var(--cf-pink) !important; box-shadow: var(--cf-shadow); }

/* Delivery note */
.cf-delivery { display: flex; align-items: flex-start; gap: 14px; padding: 18px; border: 1px solid #F8E8A0; border-radius: 20px; background: #FFF9DC; }
.cf-delivery__icon { font-size: 1.5rem; line-height: 1.3; }
.cf-delivery strong { color: var(--cf-navy); }
.cf-delivery p { margin: 4px 0; font-size: .9rem; }
body .cf-delivery a { color: var(--cf-navy); font-size: .88rem; font-weight: 700; }
body .cf-delivery a:hover { color: var(--cf-pink); }

/* Story */
.cf-story { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 60px; }
.cf-story__copy p { color: var(--cf-muted); }
.cf-story__art { position: relative; display: grid; place-items: center; min-height: 340px; overflow: hidden; border-radius: 32px; background: var(--cf-pale); }
.cf-story__art img { position: relative; z-index: 1; width: min(72%, 300px); border-radius: 24px; box-shadow: 0 18px 40px rgba(7, 59, 138, .1); }
.cf-story__shape { position: absolute; border-radius: 50%; }
.cf-story__shape--a { left: -40px; top: -60px; width: 260px; height: 260px; background: var(--cf-blue); }
.cf-story__shape--b { right: -25px; bottom: -25px; width: 130px; height: 130px; background: rgba(250, 203, 16, .4); }

/* Features */
.cf-features { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.cf-feature { padding: 22px; border: 1px solid #E8EDF4; border-radius: 22px; background: var(--cf-white); box-shadow: 0 7px 22px rgba(7, 59, 138, .03); }
.cf-feature > span { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 15px; background: var(--cf-blue); color: var(--cf-sky); font-size: 1.4rem; }
.cf-feature--1 > span { background: var(--cf-pale); color: var(--cf-pink); }
.cf-feature--2 > span { background: #EAF8EB; color: #258B3A; }
.cf-feature--3 > span { background: #FFF9DC; color: #8A6900; }
body .cf-feature h3 { margin: 16px 0 6px; font-size: 1.02rem; }
.cf-feature p { margin: 0; color: var(--cf-muted); font-size: .9rem; }
.cf-specs { display: grid; grid-template-columns: .6fr 1.4fr; gap: 26px; margin-top: 24px; padding: 28px; border-radius: 24px; background: var(--cf-blue); }
.cf-specs h3 { margin: 4px 0 0; font-size: 1.4rem; }
.cf-specs dl { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 0; }
.cf-specs dl div { padding: 13px 15px; border-radius: 14px; background: var(--cf-white); }
.cf-specs dt { color: var(--cf-muted); font-size: .78rem; }
.cf-specs dd { margin: 3px 0 0; color: var(--cf-navy); font-weight: 700; }

/* Video */
.cf-video { display: grid; grid-template-columns: .7fr 1.3fr; align-items: center; gap: 40px; padding: clamp(24px, 4vw, 44px); border-radius: 30px; background: #F1EDFF; }
.cf-video__copy p { color: var(--cf-muted); }
.cf-video__player { overflow: hidden; border-radius: 22px; background: var(--cf-blue); aspect-ratio: 16 / 9; }
.cf-video__player iframe, .cf-video__player video { display: block; width: 100%; height: 100%; }

/* Tabs: one white card with an underlined tab row */
.elementor .cf-p-tabs { padding-block: 56px; }
.woocommerce div.product .cf-p-tabs .woocommerce-tabs { overflow: hidden; margin-top: 4px; border: 1px solid #E8EDF4; border-radius: 24px; background: var(--cf-white); }
.woocommerce div.product .cf-p-tabs .woocommerce-tabs ul.tabs { gap: 6px; margin: 0 !important; padding: 8px 18px 0 !important; border-bottom: 1px solid var(--cf-line); }
.woocommerce div.product .cf-p-tabs .woocommerce-tabs ul.tabs li, .woocommerce div.product .cf-p-tabs .woocommerce-tabs ul.tabs li.active { border: 0 !important; border-bottom: 3px solid transparent !important; border-radius: 0 !important; background: none !important; }
.woocommerce div.product .cf-p-tabs .woocommerce-tabs ul.tabs li.active { border-bottom-color: var(--cf-pink) !important; }
.woocommerce div.product .cf-p-tabs .woocommerce-tabs ul.tabs li a { padding: 11px 10px !important; }
.woocommerce div.product .cf-p-tabs .woocommerce-tabs ul.tabs li.active a { color: var(--cf-pink) !important; }
.woocommerce div.product .cf-p-tabs .woocommerce-tabs .panel { min-height: 130px; padding: 24px 26px; border: 0; border-radius: 0; background: none; }
.cf-tab-list { margin: 0; padding-left: 1.2em; }
body .cf-p-tabs .panel a:not(.button) { color: var(--cf-pink); text-decoration: underline; }

/* Reviews */
.cf-reviews__top { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.cf-score { flex: 0 0 auto; min-width: 180px; padding: 18px; border-radius: 22px; background: #FFF9DC; text-align: center; }
.cf-score strong, .cf-score span, .cf-score small { display: block; }
.cf-score strong { color: var(--cf-navy); font-size: 1.7rem; line-height: 1.3; }
.cf-score strong i { color: #E7A800; font-style: normal; }
.cf-score span { color: var(--cf-navy); font-weight: 700; }
.cf-score small { color: var(--cf-muted); font-size: .78rem; }
.cf-reviews { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 10px; }
.cf-reviews--empty { grid-template-columns: minmax(0, 1fr); }
.cf-review { padding: 24px; border: 1px solid #EDF0F6; border-radius: 24px; background: var(--cf-white); box-shadow: 0 8px 26px rgba(7, 59, 138, .03); }
.cf-review__stars { margin-bottom: 8px; color: #E7A800; letter-spacing: .1em; }
.cf-review p { margin: 0; }
.cf-review__who { display: flex; align-items: center; gap: 10px; margin-top: 18px; color: var(--cf-navy); font-size: .9rem; }
.cf-review__who span { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--cf-pale); color: var(--cf-pink); }
.cf-review--ask { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 8px; background: var(--cf-blue); }
.cf-review--ask h3 { margin: 4px 0 0; }
.cf-review--ask .cf-btn { margin-top: 6px; }
.cf-review__plus { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--cf-white); color: var(--cf-pink); font-size: 1.2rem; }

/* FAQ */
.cf-pfaq { display: grid; grid-template-columns: .7fr 1.3fr; align-items: start; gap: clamp(28px, 6vw, 80px); }
.cf-pfaq__lead p { color: var(--cf-muted); }
.cf-pfaq .cf-faq { width: 100%; max-width: none; }
.cf-pfaq__shape { display: grid; place-items: center; width: 80px; height: 80px; margin-top: 25px; border-radius: 30% 70% 60% 40%; background: var(--cf-pale); color: var(--cf-pink); font-family: var(--cf-font-heading); font-size: 3rem; transform: rotate(-8deg); }

/* Final banner */
.elementor .cf-p-final { padding-block: 30px 64px; }
.cf-cta { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 30px; overflow: hidden; padding: clamp(30px, 5vw, 60px); border-radius: 32px; background: var(--cf-navy); color: var(--cf-white); isolation: isolate; }
.cf-cta__copy { position: relative; z-index: 2; }
.cf-cta .cf-eyebrow { color: var(--cf-yellow); }
body .cf-cta .cf-p-title { color: var(--cf-white); }
.cf-cta p { color: #E1ECFB; }
body .cf-cta .cf-cta__link { display: inline-block; margin-left: 14px; color: var(--cf-white); font-weight: 700; }
body .cf-cta .cf-cta__link:hover { color: var(--cf-yellow); }
.cf-cta__art { position: relative; z-index: 1; flex: 0 0 220px; width: 220px; height: 220px; padding: 26px; border-radius: 40% 60% 56% 44%; background: rgba(255, 255, 255, .08); transform: rotate(7deg); }
.cf-cta__art img { display: block; width: 100%; height: 100%; border-radius: 22px; object-fit: cover; }
.cf-cta__art span { position: absolute; right: 2px; top: 4px; color: var(--cf-yellow); font-size: 2.6rem; line-height: 1; }
.cf-cta__ring { position: absolute; z-index: -1; border: 25px solid rgba(255, 255, 255, .04); border-radius: 50%; }
.cf-cta__ring--a { right: 18%; top: -140px; width: 260px; height: 260px; }
.cf-cta__ring--b { right: -70px; bottom: -100px; width: 180px; height: 180px; border-color: rgba(238, 42, 107, .22); }

/* Sticky buy bar: phones only */
.cf-sticky-buy { display: none; }

@media (max-width: 1024px) {
	.cf-features { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cf-story { gap: 30px; }
	.cf-video { gap: 25px; }
	.cf-cta__art { flex-basis: 170px; width: 170px; height: 170px; }
}
@media (max-width: 860px) {
	.elementor .cf-p-detail { grid-template-columns: minmax(0, 1fr); }
	.cf-story, .cf-video, .cf-pfaq { grid-template-columns: minmax(0, 1fr); }
	.cf-pfaq { gap: 20px; }
	.cf-pfaq__shape { display: none; }
	.cf-reviews { grid-template-columns: minmax(0, 1fr); }
	.cf-specs { grid-template-columns: minmax(0, 1fr); gap: 15px; padding: 18px; }
	.cf-reviews__top { display: block; }
	.cf-score { margin-bottom: 22px; }
}
@media (max-width: 767px) {
	.elementor .cf-p-sec, .cf-p-block, .elementor .cf-p-tabs { padding-block: 40px; }
	.cf-features { gap: 10px; }
	.cf-feature { padding: 15px; }
	.cf-specs dl { gap: 8px; }
	.cf-specs dl div { padding: 11px; }
	.cf-story__art { min-height: 260px; }
	.cf-cta { display: block; padding: 28px 20px; border-radius: 24px; }
	.cf-cta__art { display: none; }
	body .cf-cta .cf-cta__link { display: block; margin: 14px 0 0; }
	.woocommerce div.product .cf-buy-box form.cart .button { flex-basis: 100%; }
	.woocommerce div.product .cf-p-tabs .woocommerce-tabs ul.tabs { flex-wrap: nowrap; overflow-x: auto; }
	.woocommerce div.product .cf-p-tabs .woocommerce-tabs ul.tabs li a { white-space: nowrap; }
	.woocommerce div.product .cf-p-tabs .woocommerce-tabs .panel { padding: 18px; }

	.cf-sticky-buy { position: fixed; left: 0; right: 0; bottom: 0; z-index: 55; display: flex; align-items: center; gap: 10px; padding: 8px 12px; border-top: 1px solid var(--cf-line); background: var(--cf-white); box-shadow: 0 -10px 35px rgba(7, 59, 138, .08); }
	.cf-sticky-buy > div { flex: 1; min-width: 0; }
	.cf-sticky-buy strong { display: block; overflow: hidden; color: var(--cf-navy); font-size: .82rem; text-overflow: ellipsis; white-space: nowrap; }
	.cf-sticky-buy > div > span { color: var(--cf-navy); font-size: .92rem; font-weight: 700; }
	.cf-sticky-buy del { color: var(--cf-muted); font-weight: 500; }
	.cf-sticky-buy ins { color: var(--cf-pink); text-decoration: none; }
	.single-product .cf-footer { padding-bottom: 68px; }
	.single-product .cf-float-chat { bottom: 78px; }
}

/* Product cards on the product page keep the shop's price style. */
.woocommerce div.product ul.products li.product .price { font-family: var(--cf-font-body); font-size: 1.08rem !important; }

/* Card buttons: centred text. */
.elementor .cf-h-products .woocommerce ul.products li.product a.button { display: flex; align-items: center; justify-content: center; text-align: center; }
