/*
Theme Name: A Bold Beauty (Elementor)
Template: hello-elementor
Description: Hello Elementor child theme for A Bold Beauty Cosmetic Clinic. Page layouts, colours and fonts live in Elementor (Site Settings); this file only holds what Elementor's free widgets can't style: WooCommerce grids, the contact form, price tables and the FAQ accordion.
Version: 1.0.0
Text Domain: abold
*/

:root {
	--ab-gold: var(--e-global-color-primary, #A78156);
	--ab-gold-dark: var(--e-global-color-accent, #8A6A45);
	--ab-cream: #F7F2EC;
	--ab-sand: #EEE5DA;
	--ab-grey: #666666;
}

html { overflow-x: clip; }
strong, b { font-weight: 600; }

/* ---------- Header (Ultimate Addons template) ---------- */
.ab-header { position: sticky; top: 0; z-index: 50; }
.admin-bar .ab-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .ab-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .ab-header { top: 0; } }
.ab-header .hfe-nav-menu__layout-horizontal .menu-item a.hfe-menu-item { white-space: nowrap; }
.ab-header .hfe-nav-menu__toggle { margin-left: auto; }

/* ---------- Footer ---------- */
.ab-footer a { text-decoration: none; }
.ab-footer .ab-footer-text a { color: inherit; overflow-wrap: anywhere; }
.ab-footer .ab-footer-text a:hover { color: var(--ab-gold); }
.ab-footer .hfe-nav-menu__layout-vertical .menu-item a.hfe-menu-item { padding-left: 0; }

/* ---------- Cards ---------- */
.ab-card { overflow-wrap: anywhere; }
.ab-card > .e-con-inner > :first-child, .ab-card > :first-child { margin-top: 0; }
.ab-card .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.ab-card-img img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.ab-split-img img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; }
.ab-quote { font-style: italic; }

/* ---------- Galleries ---------- */
.ab-gallery .gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin: 0; }
.ab-gallery .gallery .gallery-item { width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
.ab-gallery .gallery br { display: none; }
.ab-gallery .gallery img { width: 100%; height: 100%; aspect-ratio: 3 / 2; object-fit: cover; border: 0 !important; }
@media (max-width: 767px) { .ab-gallery .gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ab-sec .ab-dots--lg button {
	width: 10px;
	height: 10px;
	background: #aaa;
}
.ab-reviews {
	padding: 60px 0 60px;
}
.ab-steps__num {
	font-size: 40px;
}
.ab-ba__img {
	position: unset; 
	inset: 0;
	width: 100%;
	height: 100% !important;
	object-fit: cover;
}
}

/* ---------- Pricing tables ---------- */
.ab-price-table table { width: 100%; border-collapse: collapse; margin: 0; }
.ab-price-table td { border: 0; border-bottom: 1px dotted #cbb79f; padding: .7rem .25rem; background: none !important; }
.ab-price-table td:last-child { text-align: right; white-space: nowrap; font-weight: 600; color: var(--ab-gold); }
.ab-price-table figure { margin: 0; }

/* ---------- FAQ accordion ---------- */
.ab-faq-list { max-width: 52rem; margin-inline: auto; width: 100%; }
.ab-faq-list .e-n-accordion-item { border: 1px solid var(--ab-sand); background: #fff; margin-bottom: .75rem; }
.ab-faq-list .e-n-accordion-item-title { padding: 1rem 1.25rem; text-align: left; }
.ab-faq-list .e-n-accordion-item-title-text { font-weight: 600; font-size: 1rem; }
.ab-faq-list .e-n-accordion-item[open] .e-n-accordion-item-title-text { color: var(--ab-gold); }
.ab-faq-list .e-n-accordion-item > .e-con { padding: 0 1.25rem 1rem; text-align: left; }
.ab-faq-list .e-n-accordion-item > .e-con p:last-child { margin-bottom: 0; }

/* ---------- Child page list ([ab_child_pages]) ---------- */
.ab-child-pages { columns: 2 14rem; padding-left: 1.2rem; }

/* ---------- Product grids ([products] shortcode, shop archive) ---------- */
.woocommerce ul.products { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; margin: 1.5rem 0; padding: 0; }
.woocommerce ul.products.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.woocommerce ul.products::before, .woocommerce ul.products::after { content: none; display: none; }
.woocommerce ul.products li.product { float: none; width: auto !important; margin: 0 !important; background: #fff; border: 1px solid var(--ab-sand); padding: 0 0 1.25rem; text-align: left; display: flex; flex-direction: column; transition: box-shadow .2s; }
.woocommerce ul.products li.product:hover { box-shadow: 0 8px 24px rgba(0, 0, 0, .07); }
.woocommerce ul.products li.product > a:first-child { display: flex; flex-direction: column; flex: 1; text-decoration: none; }
.woocommerce ul.products li.product a img { aspect-ratio: 1; object-fit: cover; width: 100%; margin: 0 0 1rem; }
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .ab-card-excerpt,
.woocommerce ul.products li.product .price { padding-inline: 1.25rem; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 1.1rem; font-weight: 500; color: #000; padding-top: 0; margin: 0 0 .5rem; }
.ab-card-excerpt { font-size: .85rem; line-height: 1.55; color: var(--ab-grey); flex: 1; margin: 0 0 .75rem; }
.woocommerce ul.products li.product .price { color: var(--ab-gold); font-weight: 700; font-size: 1.05rem; margin: 0; }
.woocommerce ul.products li.product .button { margin: .9rem 1.25rem 0; display: block; text-align: center; white-space: nowrap; }
@media (max-width: 900px) {
	.woocommerce ul.products, .woocommerce ul.products.columns-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
	.woocommerce ul.products, .woocommerce ul.products.columns-4 { grid-template-columns: minmax(0, 1fr); }
	.woocommerce ul.products li.product a img { aspect-ratio: 4 / 3; }
}

/* ---------- WooCommerce buttons (Elementor styles its own buttons from Site Settings) ---------- */
.woocommerce .button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce button.button.alt, .woocommerce a.button.alt {
	background: var(--ab-gold); color: #fff; border-radius: 0; text-transform: uppercase; letter-spacing: .06em; font-size: .85rem; font-weight: 500; text-decoration: none; border: 0;
}
.woocommerce .button:hover, .woocommerce button.button:hover, .woocommerce a.button:hover,
.woocommerce button.button.alt:hover, .woocommerce a.button.alt:hover { background: var(--ab-gold-dark); color: #fff; }
.woocommerce span.onsale { background: var(--ab-gold); }

/* ---------- Single service (booking) ---------- */
.ab-booking input, .ab-booking select { box-sizing: border-box; }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--ab-grey); }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--ab-gold); }

/* ---------- Sticky header (Ultimate Addons header template) ---------- */
#masthead { position: sticky; top: 0; z-index: 100; }
.admin-bar #masthead { top: 32px; }
@media (max-width: 782px) { .admin-bar #masthead { top: 46px; } }
@media (max-width: 600px) { .admin-bar #masthead { top: 0; } }

/* ---------- Service (product) page, Shopify layout ---------- */
body.single-product .site-main { max-width: none !important; width: 100%; margin: 0; padding: 0; }
.single-product .woocommerce-notices-wrapper:not(:empty) { max-width: 1400px; margin: 20px auto; padding: 0 40px; }
.woocommerce.single-product div.product { display: grid; grid-template-columns: 1fr 1fr; align-items: start; margin: 0; }
.woocommerce.single-product div.product div.images,
.woocommerce.single-product div.product div.summary { float: none; width: auto; margin: 0; }
.single-product div.product .woocommerce-product-gallery { opacity: 1 !important; }
.single-product div.product .woocommerce-product-gallery__image img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; }
.single-product div.product .woocommerce-product-gallery__image a { pointer-events: none; }
.woocommerce.single-product div.product div.images { position: sticky; top: var(--ab-hdr-h, 110px); }
.woocommerce.single-product div.product div.summary { max-width: 620px; padding: 64px 64px 72px 56px; font-family: "Work Sans", sans-serif; color: #000; }
.single-product div.product .product_title { margin: 0 0 12px; color: var(--ab-gold); font-size: 36px; font-weight: 700; line-height: 1.15; }
.woocommerce.single-product div.product p.price { margin: 0 0 28px; padding-bottom: 24px; border-bottom: 1px solid var(--ab-sand); color: #000; font-size: 24px; font-weight: 400; }
.woocommerce.single-product div.product p.price::after { content: " AUD"; color: var(--ab-grey); font-size: 14px; letter-spacing: .04em; }
.ab-product__desc { color: #333; font-size: 15px; line-height: 1.65; }
.ab-product__desc p { margin: 0 0 1em; }
.ab-product__desc p:last-child { margin-bottom: 0; }

/* Book Now (opens the Amelia popup) + how payment works */
.ab-product__book { margin: 32px 0 40px; }
.ab-product__book-btn {
	display: block; width: 100%; min-height: 56px; padding: 16px 24px; border: 0; border-radius: 0;
	background: var(--ab-gold); color: #fff; font-family: inherit; font-size: 15px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
	cursor: pointer; transition: background-color .2s;
}
.ab-product__book-btn:hover, .ab-product__book-btn:focus-visible { background: var(--ab-gold-dark); color: #fff; }
.ab-product__book-btn:focus-visible { outline: 2px solid var(--ab-gold-dark); outline-offset: 3px; }
.ab-product__pay { margin: 14px 0 0; padding: 12px 16px; background: var(--ab-cream); color: #333; font-size: 13px; line-height: 1.55; }
.ab-product__pay .woocommerce-Price-amount { color: inherit; font-weight: 700; }
.single-product div.product .summary .ppc-button-wrapper { display: none; }
.woocommerce.single-product div.product form.cart { margin: 36px 0 36px; }
.woocommerce.single-product div.product form.cart .button {
	float: none; width: 100%; max-width: 330px; min-height: 52px; padding: 14px 24px; border-radius: 0;
	background: var(--ab-gold); font-size: 14px; font-weight: 400; letter-spacing: .02em; text-transform: uppercase;
}
.ab-product__acc { border-top: 1px solid #d4d4d4; }
.ab-product__acc details { border-bottom: 1px solid #d4d4d4; }
.ab-product__acc summary { position: relative; padding: 18px 30px 18px 0; font-size: 15px; font-weight: 500; letter-spacing: .02em; cursor: pointer; list-style: none; }
.ab-product__acc summary::-webkit-details-marker { display: none; }
.ab-product__acc summary span::before, .ab-product__acc summary span::after { content: ""; position: absolute; top: 50%; right: 4px; width: 11px; height: 1px; background: #000; transition: transform .2s; }
.ab-product__acc summary span::after { transform: rotate(90deg); }
.ab-product__acc details[open] summary span::after { transform: rotate(0); }
.ab-product__acc-body { padding: 0 0 18px; font-size: 14px; line-height: 1.5; }
.ab-product__acc-body h3, .ab-product__acc-body h4 { margin: .6em 0 .4em; font-size: 15px; font-weight: 700; }
.ab-product__acc-body p { margin: 0 0 .7em; }
.ab-product__acc-body ul { margin: 0 0 .8em; padding-left: 1.2em; }
@media (max-width: 767px) {
	.woocommerce.single-product div.product { grid-template-columns: minmax(0, 1fr); }
	.woocommerce.single-product div.product div.images { position: static; }
	.single-product div.product .woocommerce-product-gallery__image img { aspect-ratio: 4 / 3; }
	.woocommerce.single-product div.product div.summary { max-width: none; padding: 28px 16px 40px; }
	.single-product div.product .product_title { font-size: 28px; }
	.woocommerce.single-product div.product p.price { margin-bottom: 20px; padding-bottom: 18px; font-size: 22px; }
	.ab-product__book { margin: 24px 0 32px; }
	.woocommerce.single-product div.product form.cart .button { max-width: none; }
}

/* ---------- Collection & shop pages, Shopify layout ---------- */
body.woocommerce-shop .site-main, body.tax-product_cat .site-main { max-width: none !important; width: 100%; margin: 0; padding: 0; }
.woocommerce-shop .woocommerce-products-header, .tax-product_cat .woocommerce-products-header { padding: 80px 20px 60px; text-align: center; }
.woocommerce-shop .woocommerce-products-header__title, .tax-product_cat .woocommerce-products-header__title { margin: 0; font-size: clamp(2.5rem, 5vw, 4.5rem); font-weight: 400; line-height: 1.1; letter-spacing: .02em; }
.woocommerce-shop .term-description, .tax-product_cat .term-description { max-width: 760px; margin: 16px auto 0; }
.woocommerce-shop .woocommerce-result-count, .tax-product_cat .woocommerce-result-count { margin: 0 0 22px; padding: 0 0 0 80px; float: left; font-size: 14px; line-height: 40px; }
.woocommerce-shop .woocommerce-ordering, .tax-product_cat .woocommerce-ordering { margin: 0 80px 22px 0; }
.woocommerce-shop .woocommerce-ordering select, .tax-product_cat .woocommerce-ordering select { height: 40px; padding: 0 10px; border: 0; background: transparent; font: inherit; font-size: 14px; }
.woocommerce-shop ul.products, .tax-product_cat ul.products,
.woocommerce-shop ul.products.columns-4, .tax-product_cat ul.products.columns-4 { clear: both; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; margin: 0; }
.woocommerce-shop ul.products li.product, .tax-product_cat ul.products li.product { padding: 0 0 20px; border: 0; background: none; }
.woocommerce-shop ul.products li.product:hover, .tax-product_cat ul.products li.product:hover { box-shadow: none; }
.woocommerce-shop ul.products li.product a img, .tax-product_cat ul.products li.product a img { aspect-ratio: 4 / 5; margin: 0 0 12px; }
.woocommerce-shop ul.products li.product .woocommerce-loop-product__title, .tax-product_cat ul.products li.product .woocommerce-loop-product__title { padding: 0 16px; margin: 0 0 4px; font-size: 14px; font-weight: 400; }
.woocommerce-shop ul.products li.product .price, .tax-product_cat ul.products li.product .price { padding: 0 16px; color: #000; font-size: 14px; font-weight: 400; }
.woocommerce-shop ul.products li.product .price::after, .tax-product_cat ul.products li.product .price::after { content: " AUD"; }
.woocommerce-shop .ab-card-excerpt, .tax-product_cat .ab-card-excerpt { display: none; }
.woocommerce-shop .woocommerce-pagination, .tax-product_cat .woocommerce-pagination { padding: 40px 0 60px; }
@media (max-width: 1100px) { .woocommerce-shop ul.products, .tax-product_cat ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } }
@media (max-width: 767px) {
	.woocommerce-shop ul.products, .tax-product_cat ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.woocommerce-shop .woocommerce-result-count, .tax-product_cat .woocommerce-result-count { padding-left: 20px; }
	.woocommerce-shop .woocommerce-ordering, .tax-product_cat .woocommerce-ordering { margin-right: 20px; }
	.woocommerce-shop .woocommerce-products-header, .tax-product_cat .woocommerce-products-header { padding: 50px 20px 40px; }
}

/* ---------- Contact form ([ab_contact_form]) ---------- */
.ab-contact-form { max-width: 40rem; margin-inline: auto; }
.ab-contact-form label { display: block; font-weight: 500; margin-bottom: .25rem; }
.ab-contact-form input, .ab-contact-form textarea { width: 100%; padding: .7rem; border: 1px solid #d8cbbb; border-radius: 0; font: inherit; background: #fff; }
.ab-contact-form input:focus, .ab-contact-form textarea:focus { outline: 2px solid var(--ab-gold); outline-offset: 1px; }
.ab-contact-form button { background: var(--ab-gold); color: #fff; border: 0; border-radius: 0; padding: .9rem 1.75rem; text-transform: uppercase; letter-spacing: .06em; font-size: .85rem; cursor: pointer; }
.ab-contact-form button:hover { background: var(--ab-gold-dark); }
.ab-form-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 0 1rem; }
.ab-hp { position: absolute; left: -9999px; }
.ab-notice { padding: .8rem 1rem; }
.ab-notice--ok { background: #eef7ee; border-left: 3px solid #3a8a3a; }
.ab-notice--err { background: #fbeeee; border-left: 3px solid #b33; }
