/*
 Theme Name:   Fastballoons Astra Child
 Description:  Astra Child Theme for Fastballoons.com - Migrated from WoodMart Child with all custom functionality preserved + client feedback fixes v1.2.0
 Author:       Fastballoons
 Template:     astra
 Version:      1.2.0
 Text Domain:  astra-child
*/

/* ============================================================
   FASTBALLOONS - ASTRA CHILD THEME  v1.2.0
   Changes in this version:
   - White background enforced site-wide (client feedback)
   - Checkout layout fixed: shipping section alignment (client feedback)
   - Header phone/search/cart CSS helpers added (client feedback)
   - Homepage section helpers (client feedback)
   ============================================================ */

/* ------------------------------------------------------------
   1. GLOBAL / TYPOGRAPHY
   ------------------------------------------------------------ */
body,
.site,
.site-content,
.ast-container,
.entry-content,
#page {
	background-color: #ffffff !important;
}

body {
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	color: #333333;
}

/* ------------------------------------------------------------
   2. WOOCOMMERCE - PRODUCT PAGE
   ------------------------------------------------------------ */

/* Price display */
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	color: #0e7dbc;
	font-size: 1.6em;
	font-weight: 700;
}

/* Hide default price when NBO dropdowns are present (JS controlled) */
.nbo-price-hidden .summary .price {
	display: none !important;
}

/* Product summary layout */
.woocommerce div.product .summary {
	padding: 0 0 0 30px;
}

/* ------------------------------------------------------------
   3. NBD OPTION BUILDER / PRODUCT OPTIONS
   ------------------------------------------------------------ */

/* Option wrapper spacing */
.nbo-wrapper {
	margin-bottom: 20px;
}

/* Option field rows */
.nbd-option-wrapper .nbd-option-field,
.nbo-wrapper .nbd-field-row {
	margin-bottom: 15px;
}

/* Dropdown selects */
.nbo-wrapper select.nbo-dropdown,
.nbo-wrapper .nbo-dropdown {
	width: 100%;
	padding: 10px 14px;
	border: 1px solid #ddd;
	border-radius: 4px;
	background-color: #fff;
	font-size: 14px;
	appearance: auto;
}

/* START DESIGN button */
#triggerDesign,
.nbdesigner_frontend_container #triggerDesign {
	display: inline-block;
	background-color: #0e7dbc;
	color: #fff !important;
	padding: 14px 30px;
	font-size: 16px;
	font-weight: 600;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	width: 100%;
	text-align: center;
	margin-top: 10px;
}

#triggerDesign:hover {
	background-color: #0a5f91;
}

/* CLEAR SELECTION button */
.nbo-clear-option-wrap a.nbd-button,
.nbo-clear-option-wrap {
	display: block;
	text-align: center;
	margin-bottom: 10px;
}

.nbo-clear-option-wrap a.nbd-button {
	color: #666;
	font-size: 13px;
	text-decoration: underline;
	cursor: pointer;
}

/* Quantity field */
.nbo-wrapper .nbo-quantity-wrap input,
.woocommerce div.product form.cart .quantity input {
	border: 1px solid #ddd;
	border-radius: 4px;
	padding: 10px;
	font-size: 14px;
}

/* Price table */
.nbo-summary-wrapper,
.nbd-price-table {
	width: 100%;
	margin-bottom: 20px;
}

.nbo-summary-wrapper table,
.nbd-price-table table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
}

.nbo-summary-wrapper table th,
.nbd-price-table table th {
	background-color: #0e7dbc;
	color: #fff;
	padding: 10px 12px;
	text-align: left;
	font-weight: 600;
}

.nbo-summary-wrapper table td,
.nbd-price-table table td {
	padding: 9px 12px;
	border-bottom: 1px solid #eee;
}

.nbo-summary-wrapper table tr:nth-child(even),
.nbd-price-table table tr:nth-child(even) {
	background-color: #f9f9f9;
}

/* ------------------------------------------------------------
   4. "WITHOUT DESIGN" / PERSONALIZATION FORM
   ------------------------------------------------------------ */

#without_design_container,
#without_design_container1 {
	background: #f8f8f8;
	border: 1px solid #e0e0e0;
	border-radius: 6px;
	padding: 20px;
	margin: 15px 0;
}

#without_design_container h4,
#without_design_container1 h4 {
	margin-top: 0;
	margin-bottom: 15px;
	font-size: 16px;
	font-weight: 700;
	color: #333;
	border-bottom: 2px solid #0e7dbc;
	padding-bottom: 8px;
}

.nbd-option-field {
	margin-bottom: 15px;
}

.nbd-field-header label {
	display: block;
	font-weight: 600;
	font-size: 13px;
	color: #444;
	margin-bottom: 6px;
}

.nbd-field-content select,
.nbd-field-content textarea,
.nbd-field-content input[type="text"],
.nbd-field-content input[type="file"] {
	width: 100%;
	padding: 9px 12px;
	border: 1px solid #ccc;
	border-radius: 4px;
	font-size: 14px;
	background: #fff;
	box-sizing: border-box;
}

.nbd-field-content textarea {
	min-height: 80px;
	resize: vertical;
}

#without_design_file_error,
#without_design_file_error1,
#without_design_file_error2 {
	color: #c0392b;
	font-size: 12px;
	display: block;
	margin-top: 4px;
}

/* Continue Without Design button */
.without_design_wrapper {
	display: block;
	margin-top: 10px;
	text-align: center;
}

.without_design_wrapper a#without_design {
	display: inline-block;
	background-color: #fff;
	color: #0e7dbc !important;
	border: 2px solid #0e7dbc;
	padding: 10px 24px;
	font-size: 14px;
	font-weight: 600;
	border-radius: 4px;
	cursor: pointer;
	text-decoration: none;
}

.without_design_wrapper a#without_design:hover {
	background-color: #0e7dbc;
	color: #fff !important;
}

.without_design_wrapper span {
	display: block;
	font-size: 12px;
	color: #888;
	margin-top: 5px;
}

/* Two-column layout for side 1 / side 2 */
#without_design_container1 .row {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
}

#without_design_container1 .col-sm-6 {
	flex: 1 1 calc(50% - 10px);
	min-width: 200px;
}

/* ------------------------------------------------------------
   5. CART PAGE — FULL-WIDTH LAYOUT
   ------------------------------------------------------------ */

/* Outer wrapper from cart.php template */
.cart-content-wrapper {
	width: 100%;
	box-sizing: border-box;
}

/* Discount price column header/cell alignment */
.woocommerce-cart table.cart th.product-discount-price,
.woocommerce-cart table.cart td.product-discount {
	text-align: center;
}

/* Cart table: full width, blue headers */
.woocommerce table.shop_table {
	border-collapse: collapse;
	width: 100%;
	table-layout: auto;
}

.woocommerce table.shop_table th {
	background: #0e7dbc;
	color: #fff;
	padding: 12px 15px;
	font-weight: 600;
	text-align: left;
}

.woocommerce table.shop_table td {
	padding: 12px 15px;
	border-bottom: 1px solid #eee;
	vertical-align: middle;
}

/* CART TOTALS: full-page-width fix
   WooCommerce default floats .cart-collaterals to the right at
   ~48% width, leaving a blank left half. Override to full width. */

.woocommerce-cart .cart-collaterals,
.woocommerce .cart-collaterals {
	width: 100% !important;
	float: none !important;
	clear: both;
}

.woocommerce-cart .cart_totals,
.woocommerce .cart_totals {
	width: 100% !important;
	float: none !important;
}

.woocommerce-cart .cart_totals table,
.woocommerce .cart_totals table {
	width: 100%;
}

.woocommerce .cart_totals table th {
	background: #0e7dbc;
	color: #fff;
	padding: 12px 15px;
	font-weight: 600;
	text-align: left;
	width: 30%;
}

.woocommerce .cart_totals table td {
	padding: 12px 15px;
	vertical-align: top;
}

/* Shipping options inside cart totals */
.woocommerce .cart_totals .woocommerce-shipping-methods {
	list-style: none;
	margin: 0;
	padding: 0;
}

.woocommerce .cart_totals .woocommerce-shipping-methods li {
	display: block;
	padding: 5px 0;
}

/* Proceed to checkout button — full width */
.woocommerce-cart .wc-proceed-to-checkout,
.woocommerce .wc-proceed-to-checkout {
	width: 100%;
	padding: 0;
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.woocommerce .wc-proceed-to-checkout a.checkout-button {
	display: block;
	width: 100%;
	text-align: center;
	box-sizing: border-box;
	background-color: #0e7dbc;
	color: #fff;
	font-size: 16px;
	font-weight: 700;
	padding: 16px;
	border-radius: 4px;
	text-decoration: none;
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce .wc-proceed-to-checkout a.checkout-button:hover {
	background-color: #0a5f91;
}

/* ------------------------------------------------------------
   6. CHECKOUT — FULL-WIDTH LAYOUT
   ------------------------------------------------------------ */

/* Review order table header cells */
.woocommerce-checkout-review-order-table th {
	background: #0e7dbc;
	color: #fff;
	padding: 12px 15px;
}

.woocommerce-checkout-review-order-table td {
	padding: 10px 15px;
}

/* CHECKOUT: all sections full page width
   WooCommerce default floats billing ~48% left, order-review
   ~48% right. Client wants everything stacked full-width. */

.woocommerce-checkout form.checkout,
.woocommerce form.checkout {
	width: 100%;
}

/* Billing + Shipping columns — full width, stacked */
.woocommerce-checkout .col2-set {
	width: 100% !important;
	float: none !important;
	display: block;
	clear: both;
}

.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 {
	width: 100% !important;
	float: none !important;
	clear: both;
	margin-bottom: 20px;
}

/* Order review heading + block — full width */
#order_review_heading,
.woocommerce-checkout #order_review_heading {
	width: 100% !important;
	float: none !important;
	clear: both;
	margin-top: 30px;
}

.woocommerce-checkout #order_review,
#order_review {
	width: 100% !important;
	float: none !important;
	clear: both;
}

/* Order review table — full width */
.woocommerce-checkout-review-order-table,
.woocommerce table.woocommerce-checkout-review-order-table {
	width: 100% !important;
	table-layout: auto;
}

/* Payment block — full width */
.woocommerce-checkout #payment,
#payment {
	width: 100% !important;
	float: none !important;
	background: #f9f9f9;
	border-radius: 6px;
	clear: both;
}

/* Shipping methods inside checkout — block layout */
.woocommerce-shipping-methods {
	width: 100%;
	text-align: left;
	list-style: none;
	margin: 0;
	padding: 0;
}

.woocommerce-shipping-methods li {
	display: block;
	padding: 6px 0;
}

.woocommerce-shipping-methods label {
	font-size: 14px;
	display: inline;
}

/* Form rows — no unexpected floats */
.woocommerce-checkout form .form-row {
	clear: none;
}

/* Place order button — full width */
#place_order,
.woocommerce #place_order {
	width: 100%;
	display: block;
	box-sizing: border-box;
}

/* ------------------------------------------------------------
   7. HEADER — PHONE, SEARCH, CART, ACCOUNT
      (Astra Header Builder element targeting)
   ------------------------------------------------------------ */

/* Phone number element */
.ast-header-custom-item .fb-support-phone,
.ast-header-html .fb-support-phone {
	font-size: 14px;
	font-weight: 600;
	color: #0e7dbc;
	white-space: nowrap;
}

.ast-header-custom-item .fb-support-phone a,
.ast-header-html .fb-support-phone a {
	color: inherit;
	text-decoration: none;
}

.ast-header-custom-item .fb-support-phone a:hover,
.ast-header-html .fb-support-phone a:hover {
	color: #0a5f91;
}

/* WooCommerce cart icon badge */
.ast-header-woo-cart .count,
.ast-cart-menu-wrap .count {
	background-color: #0e7dbc !important;
	color: #fff !important;
}

/* Search icon colour */
.ast-search-icon,
.ast-header-search-wrap .ast-search-icon {
	color: #0e7dbc;
}

/* Account icon */
.ast-header-account-wrap .ast-account-icon {
	color: #0e7dbc;
}

/* Ensure header items don't overflow on mid-size screens */
.ast-primary-header-bar .ast-primary-header {
	flex-wrap: wrap;
}

/* ------------------------------------------------------------
   8. HOMEPAGE — CATEGORY IMAGE GRID
      (helpers for the 4-image section: Latex / Foil / Napkins /
       Promotional Products)
   ------------------------------------------------------------ */

/* If built with a custom HTML block or shortcode wrapper */
.fb-category-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
	margin: 30px 0;
}

.fb-category-grid .fb-cat-item {
	position: relative;
	overflow: hidden;
	border-radius: 6px;
	text-align: center;
	text-decoration: none;
	display: block;
	background: #f5f5f5;
}

.fb-category-grid .fb-cat-item img {
	width: 100%;
	height: 220px;
	object-fit: cover;
	display: block;
	transition: transform 0.3s ease;
}

.fb-category-grid .fb-cat-item:hover img {
	transform: scale(1.04);
}

.fb-category-grid .fb-cat-label {
	display: block;
	padding: 12px 8px;
	font-size: 15px;
	font-weight: 700;
	color: #333;
	background: #fff;
	letter-spacing: 0.3px;
}

/* Responsive — collapse to 2 cols on tablet */
@media (max-width: 900px) {
	.fb-category-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 480px) {
	.fb-category-grid {
		grid-template-columns: 1fr 1fr;
		gap: 12px;
	}
	.fb-category-grid .fb-cat-item img {
		height: 140px;
	}
}

/* ------------------------------------------------------------
   9. BUTTONS - GLOBAL WOO STYLE
   ------------------------------------------------------------ */

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	background-color: #0e7dbc;
	color: #fff;
	border: none;
	border-radius: 4px;
	padding: 12px 24px;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
	background-color: #0a5f91;
	color: #fff;
}

/* Add to cart / single product button */
.woocommerce div.product form.cart .single_add_to_cart_button {
	background-color: #0e7dbc;
	color: #fff;
	width: 100%;
	padding: 14px;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.5px;
	text-transform: uppercase;
}

.woocommerce div.product form.cart .single_add_to_cart_button:hover {
	background-color: #0a5f91;
}

/* ------------------------------------------------------------
   10. PRODUCT BADGES
   ------------------------------------------------------------ */

/* HOT badge */
.woocommerce span.onsale,
.product-badge.hot {
	background-color: #e74c3c;
	color: #fff;
	border-radius: 50%;
	font-size: 11px;
	font-weight: 700;
	padding: 5px 8px;
}

/* ------------------------------------------------------------
/* ================================================
   STAGING FOOTER FIX — Match Live Site
   Add to: Appearance > Customize > Additional CSS
   or child theme style.css
   ================================================ */

/* ── Column 1: Left-align description text ── */
/*.elementor-16796 .elementor-element-782c2199 > .e-con-inner > .e-con:nth-child(1) p,*/
/*.elementor-16796 .elementor-element-782c2199 > .e-con-inner > .e-con:nth-child(1) .textwidget,*/
/*.elementor-16796 .elementor-element-782c2199 > .e-con-inner > .e-con:nth-child(1) .elementor-widget-container,*/
/*.elementor-16796 .elementor-element-172a616 .elementor-widget-container,*/
/*.elementor-16796 .elementor-element-172a616 p {*/
/*    text-align: left !important;*/
/*    color: #999999 !important;*/
/*    font-size: 13px !important;*/
/*    line-height: 1.7 !important;*/
/*}*/

/* ── Column 1: Logo left-align ── */
/*.elementor-16796 .elementor-element-6b0e1b64 .elementor-widget-container {*/
/*    text-align: left !important;*/
/*}*/

/* ── Column 2: Contact Us — left-align ── */
/*.elementor-16796 .elementor-element-38b33a64 .elementor-widget-container,*/
/*.elementor-16796 .elementor-element-38b33a64 ul,*/
/*.elementor-16796 .elementor-element-38b33a64 li {*/
/*    text-align: left !important;*/
/*}*/

/*.elementor-16796 .elementor-element-790e0411 .elementor-widget-container {*/
/*    text-align: left !important;*/
/*}*/

/*.elementor-16796 .elementor-element-790e0411 h2 {*/
/*    text-align: left !important;*/
/*    color: #ffffff !important;*/
/*    font-size: 15px !important;*/
/*    font-weight: 600 !important;*/
/*}*/

/* ── Column 3: Main Categories heading left-align ── */
/*.elementor-16796 .elementor-element-525ef2cf h2,*/
/*.elementor-16796 .elementor-element-bb63b9e h2 {*/
/*    text-align: left !important;*/
/*    color: #ffffff !important;*/
/*    font-size: 15px !important;*/
/*    font-weight: 600 !important;*/
/*}*/

/* ── Column 3: Category links left-align ── */
/*.elementor-16796 .elementor-element-499802d6 .footer-categories,*/
/*.elementor-16796 .elementor-element-499802d6 .footer-categories li,*/
/*.elementor-16796 .elementor-element-499802d6 .footer-categories a {*/
/*    text-align: left !important;*/
/*}*/

/*.elementor-16796 .footer-categories {*/
/*    list-style: none !important;*/
/*    padding: 0 !important;*/
/*    margin: 0 !important;*/
/*}*/

/*.elementor-16796 .footer-categories > li > a {*/
/*    color: #cccccc !important;*/
/*    font-size: 13px !important;*/
/*    font-weight: 500 !important;*/
/*    text-decoration: none !important;*/
/*    display: block !important;*/
/*    padding: 3px 0 !important;*/
/*}*/

/*.elementor-16796 .footer-categories > li > a:hover {*/
/*    color: #ffffff !important;*/
/*}*/

/*.elementor-16796 .footer-categories ul {*/
/*    list-style: none !important;*/
/*    margin: 0 0 4px 12px !important;*/
/*    padding: 0 !important;*/
/*}*/

/*.elementor-16796 .footer-categories ul li a {*/
/*    color: #888888 !important;*/
/*    font-size: 12px !important;*/
/*    text-decoration: none !important;*/
/*    display: block !important;*/
/*    padding: 2px 0 !important;*/
/*}*/

/*.elementor-16796 .footer-categories ul li a:hover {*/
/*    color: #cccccc !important;*/
/*}*/

/* ── Column 4: Support heading ── */
/*.elementor-16796 .elementor-element-16fe5efc h2,*/
/*.elementor-16796 .elementor-element-245341de h2 {*/
/*    text-align: left !important;*/
/*    color: #ffffff !important;*/
/*    font-size: 15px !important;*/
/*    font-weight: 700 !important;*/
/*    text-transform: uppercase !important;*/
/*    letter-spacing: 1px !important;*/
/*}*/

/* ── Column 4: Support links ── */
/*.elementor-16796 .footer-support {*/
/*    list-style: none !important;*/
/*    padding: 0 !important;*/
/*    margin: 0 !important;*/
/*    display: grid !important;*/
/*    grid-template-columns: 1fr 1fr !important;*/
/*    gap: 5px 12px !important;*/
/*}*/

/*.elementor-16796 .footer-support li a {*/
/*    color: #999999 !important;*/
/*    font-size: 13px !important;*/
/*    text-decoration: none !important;*/
/*    display: block !important;*/
/*    padding: 2px 0 !important;*/
/*    text-align: left !important;*/
/*}*/

/*.elementor-16796 .footer-support li a:hover {*/
/*    color: #ffffff !important;*/
/*}*/

/* ── Overall container: ensure left-aligned items ── */
/*.elementor-16796 .elementor-element-2ca3a734,*/
/*.elementor-16796 .elementor-element-a2a215b,*/
/*.elementor-16796 .elementor-element-bb63b9e,*/
/*.elementor-16796 .elementor-element-245341de {*/
/*    text-align: left !important;*/
/*    align-items: flex-start !important;*/
/*    justify-content: flex-start !important;*/
/*}*/

/* ── Bottom bar: blue background ── */
/*.elementor-16796 .elementor-element-387e38de {*/
/*    background-color: #1255a1 !important;*/
/*    padding: 12px 0 !important;*/
/*}*/

/*.elementor-16796 .elementor-element-387e38de .e-con-inner {*/
/*    display: flex !important;*/
/*    flex-direction: row !important;*/
/*    align-items: center !important;*/
/*    justify-content: space-between !important;*/
/*    max-width: 1200px !important;*/
/*    margin: 0 auto !important;*/
/*    padding: 0 30px !important;*/
/*    box-sizing: border-box !important;*/
/*}*/

/*.elementor-16796 .elementor-element-387e38de p,*/
/*.elementor-16796 .elementor-element-387e38de a,*/
/*.elementor-16796 .elementor-element-64034646 p,*/
/*.elementor-16796 .elementor-element-64034646 a {*/
/*    color: #ffffff !important;*/
/*    font-size: 13px !important;*/
/*    text-decoration: none !important;*/
/*    margin: 0 !important;*/
/*}*/

/*.elementor-16796 .elementor-element-5216cae5 img {*/
/*    height: 28px !important;*/
/*    width: auto !important;*/
/*}*/
