/* =====================================================================
   IO Theme Bridge — styles InflatableOffice output to match the theme.
   Theme sets the --iob-* variables (see Settings → IO Theme Bridge).
   Every IO element is inside .iob (added at render time), so nothing
   here touches the rest of the site.
   ===================================================================== */

.iob {
	--_acc: var(--iob-accent, #FFC92A);
	--_acc-sh: var(--iob-accent-shadow, #E5A800);
	--_acc-tx: var(--iob-accent-text, #0C2F3A);
	--_ink: var(--iob-ink, #0C2F3A);
	--_muted: var(--iob-muted, #7B8E95);
	--_price: var(--iob-price, #FF3D8B);
	--_link: var(--iob-link, #1450E0);
	--_line: var(--iob-line, #F0E6D6);
	--_card: var(--iob-card-bg, #fff);
	--_media: var(--iob-media-bg, linear-gradient(#F4F8FF, #E3ECFF));
	--_r: var(--iob-radius, 24px);
	--_sh: var(--iob-shadow, 0 22px 44px -26px rgba(13, 30, 90, .45));
	--_f: var(--iob-font, inherit);
	--_hf: var(--iob-heading-font, inherit);
	--_max: var(--iob-max, 1240px);
	--_gut: var(--iob-gutter, 32px);
	--_sticky: var(--iob-sticky-top, 130px);
	--_btn-off: var(--iob-disabled-bg, #E9EEF2);
}

/* Shared: pill button --------------------------------------------- */
.iob .io_item2_list .io_button,
.iob .io_item2_listrent .io_button,
.iob .io_product_infobox a.elementor-button,
.iob .io_product_infobox .io_button,
.iob .pageDateRangeWrapper .elementor-button {
	display: inline-flex !important; align-items: center; gap: 8px;
	width: auto !important; min-width: 0 !important; height: auto !important; margin: 0 !important;
	background: var(--_acc) !important; color: var(--_acc-tx) !important;
	border: 0 !important; border-radius: 999px !important; box-shadow: 0 5px 0 var(--_acc-sh) !important;
	font: 700 15px/1 var(--_f) !important; text-transform: none !important; letter-spacing: 0 !important;
	text-decoration: none !important; white-space: nowrap; cursor: pointer;
	padding: 11px 18px !important; transition: transform .2s, box-shadow .2s;
}
.iob .io_item2_list .io_button:hover,
.iob .io_item2_listrent .io_button:hover,
.iob .io_product_infobox a.elementor-button:hover,
.iob .pageDateRangeWrapper .elementor-button:hover { transform: translateY(-3px); box-shadow: 0 8px 0 var(--_acc-sh) !important; }
.iob .io_button i, .iob a.elementor-button * { color: inherit !important; }
.iob .io_button[disabled], .iob .io_button.disabled, .iob .io_button.io_unavailable,
.iob a.elementor-button[disabled], .iob a.elementor-button.disabled { background: var(--_btn-off) !important; box-shadow: none !important; color: var(--_muted) !important; cursor: not-allowed; transform: none; }

/* =====================================================================
   CATEGORY PAGES
   ===================================================================== */
.iob--category > .cartInfo,
.iob--category > .pageDateRangeWrapper,
.iob--category > .cat_div_wrapper,
.iob--category > .io_catdiv2,
.iob--category > .io_landingpages,
.iob--category > .io_cat_longdescription {
	width: 100% !important; max-width: var(--_max) !important;
	margin-left: auto !important; margin-right: auto !important;
	padding-left: var(--_gut) !important; padding-right: var(--_gut) !important; box-sizing: border-box !important;
}
/* IO's own heading (the page already has one) and its tile/list toggle */
.iob--category > .io_category_wrapper,
.iob--category > .io_view_toggle_container { display: none !important; }

/* Order: date bar, products, then description (non-merged pages) */
.iob--category:not(.iob--merged) { display: flex; flex-direction: column; }
.iob--category:not(.iob--merged) > .cartInfo { order: 1; }
.iob--category:not(.iob--merged) > .pageDateRangeWrapper { order: 2; }
.iob--category:not(.iob--merged) > .io_catdiv2 { order: 3; margin-bottom: 48px !important; }
.iob--category:not(.iob--merged) > .cat_div_wrapper { order: 4; margin-top: 0 !important; margin-bottom: 100px !important; }
.iob--category:not(.iob--merged) > .io_cat_longdescription { order: 5; }
.iob--category:not(.iob--merged) > .io_landingpages { order: 6; }
.iob--category:not(.iob--merged) > :not(.cartInfo):not(.pageDateRangeWrapper):not(.io_catdiv2):not(.cat_div_wrapper):not(.io_cat_longdescription):not(.io_landingpages) { order: 7; }

/* Merged landing pages: landing copy replaces IO's description */
.iob--merged > .cat_div_wrapper,
.iob--merged > .io_cat_longdescription,
.iob--merged > .io_landingpages { display: none !important; }
.iob--merged > .pageDateRangeWrapper { margin-top: 32px !important; }
.iob--merged > .io_catdiv2 { margin-bottom: 0 !important; }
.iob-landing-head { padding-bottom: 0 !important; }
.iob-anchor { scroll-margin-top: var(--_sticky); }

/* Set Event Date */
.iob--category > .pageDateRangeWrapper { margin-top: 56px !important; margin-bottom: 0 !important; display: flex; justify-content: flex-start; }
.iob .pageDateRangeWrapper .elementor-button { flex-direction: column; align-items: flex-start; gap: 4px; padding: 15px 30px !important; font-size: 17px !important; }
.iob .ioDateRangeHeader { font: 700 17px/1.1 var(--_f) !important; color: var(--_acc-tx) !important; text-transform: none !important; }
.iob .ioDateRangeHeader::before { content: "\f073"; font-family: "Font Awesome 5 Free"; font-weight: 900; margin-right: 10px; }
.iob .ioDateRange { font: 600 14px/1.2 var(--_f) !important; color: var(--_acc-tx) !important; }
.iob .ioDateRange:empty { display: none; }

/* Category description */
.iob .catDescriptionIO { background: var(--_card); border-radius: var(--_r); box-shadow: var(--_sh); padding: 48px 56px; max-width: none !important; font: 400 17px/1.75 var(--_f) !important; color: var(--_ink); }
.iob .catDescriptionIO:empty { display: none; }
.iob .catDescriptionIO > * { max-width: none !important; }
.iob .catDescriptionIO p { margin: 0 0 12px; }
.iob .catDescriptionIO p:last-child { margin-bottom: 0; }
.iob .catDescriptionIO a { color: var(--_link) !important; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.iob .catDescriptionIO .iob-h2 { margin: 0 0 18px !important; font: 400 clamp(28px, 3.2vw, 42px)/1.1 var(--_hf) !important; color: var(--_ink); }
.iob .catDescriptionIO .iob-h2 span { color: var(--_price); }
.iob--category > .io_cat_longdescription { margin-bottom: 70px !important; font: 400 16px/1.7 var(--_f); color: var(--_ink); }
.iob--category > .io_cat_longdescription:empty { display: none; }
.iob--category > .io_landingpages { margin-bottom: 40px !important; font: 400 15px/1.6 var(--_f); color: var(--_muted); }

/* Grid */
.iob--category > .io_catdiv2,
.iob--category > .io_catdiv2.tile-view {
	display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	gap: 24px !important; margin-top: 36px !important; margin-bottom: 90px;
}
.iob .io_catdiv2 > br, .iob .io_catdiv2 > p:empty { display: none; }
.iob .io_catdiv2 > h2.io_all_item_cat { grid-column: 1 / -1; margin: 36px 0 4px !important; font: 400 clamp(26px, 3vw, 36px)/1.1 var(--_hf) !important; color: var(--_ink) !important; text-align: left !important; }
.iob .io_catdiv2 > h2.io_all_item_cat:first-child { margin-top: 0 !important; }

/* Card (category tiles: .io_item2_list; All Items: .io_item2_listrent) */
.iob .io_item2_list,
.iob .io_item2_listrent {
	position: relative; display: flex !important; flex-direction: column;
	width: auto !important; max-width: none !important; min-width: 0; height: auto !important;
	margin: 0 !important; padding: 0 !important; float: none !important;
	background: var(--_card) !important; border: 0 !important; border-radius: var(--_r) !important;
	box-shadow: var(--_sh) !important; overflow: hidden; text-align: left !important; transition: transform .2s;
}
.iob .io_item2_list:hover, .iob .io_item2_listrent:hover { transform: translateY(-4px); }
.iob .io_item2_list .cat_div,
.iob .io_item2_listrent .cat_div {
	position: relative; width: 100% !important; height: auto !important; margin: 0 !important; padding: 0 !important;
	aspect-ratio: 4 / 3; overflow: hidden; background: var(--_media) !important; border: 0 !important;
}
.iob .io_item2_list .cat_div > a:not([id]),
.iob .io_item2_listrent .cat_div > a:not([id]) { position: absolute; inset: 0; display: block; }
.iob .io_item2_list .cat_div img.io_image_big,
.iob .io_item2_listrent .cat_div img.io_image_big {
	position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none !important; max-height: none !important;
	margin: 0 !important; padding: 14px; box-sizing: border-box; object-fit: contain !important; object-position: center;
	mix-blend-mode: multiply; border: 0 !important; border-radius: 0 !important;
}
.iob .io_item2_list .view-product-button,
.iob .io_item2_listrent .view-product-button { display: none !important; }
.iob .io_corner_banner { position: absolute; top: 0; left: 0; z-index: 2; }
.iob .io_promo_badges_overlay { z-index: 2; }

.iob .io_item2_list .io_item2_list_inner,
.iob .io_item2_listrent .cat_div_inner {
	display: flex !important; flex-direction: column; align-items: stretch !important; justify-content: flex-start !important;
	gap: 8px; flex: 1 1 auto; width: auto !important; height: auto !important; margin: 0 !important;
	padding: 18px 20px 22px !important; background: none !important; border: 0 !important; text-align: left !important;
}
.iob .io_item2_listrent .cat_div_inner * { text-align: left !important; }
.iob .io_item2_listrent .cat_div_inner > a { display: flex !important; flex-direction: column; align-items: flex-start !important; gap: 8px; text-decoration: none !important; }
.iob .io_item2_list .rentNameIO_price,
.iob .io_item2_listrent .rentNameIO_price { order: 1; margin: 0 !important; padding: 0 !important; font: 700 15px/1 var(--_f) !important; color: var(--_price) !important; text-transform: uppercase; letter-spacing: .06em; text-align: left !important; }
.iob .rentNameIO_price span { font: inherit !important; color: inherit !important; }
.iob .rentNameIO_price .cat_from { margin-right: 4px; }
.iob .io_item2_list .item_name,
.iob .io_item2_listrent .item_name { order: 2; margin: 0 !important; padding: 0 !important; min-height: 0 !important; font: 400 21px/1.05 var(--_hf) !important; color: var(--_ink) !important; text-align: left !important; text-transform: capitalize !important; }
.iob .item_name a { color: inherit !important; text-decoration: none !important; font: inherit !important; text-transform: inherit !important; }
.iob .item_name a:hover { color: var(--_link) !important; }
.iob .io_list_view_data { order: 3; }
.iob .io_list_view_data:empty { display: none; }
.iob .io_item2_list .io_buttons_container,
.iob .io_item2_listrent .elementor-widget-button { order: 4; margin-top: auto !important; padding-top: 8px; display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-start !important; text-align: left !important; }
.iob .io_buttons_container .elementor-widget-button { margin: 0 !important; width: auto !important; text-align: left !important; }

/* =====================================================================
   PRODUCT PAGES
   ===================================================================== */
.iob--product > .io_product_container {
	width: 100% !important; max-width: var(--_max) !important; margin: 56px auto 90px !important;
	padding: 0 var(--_gut) !important; box-sizing: border-box !important; float: none !important;
}
.iob .io_product_container .simpleCart_ioShelfItem { display: grid !important; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 48px; align-items: start; width: auto !important; margin: 0 !important; padding: 0 !important; }
.iob .io_product_picbox,
.iob .io_product_infobox { width: auto !important; max-width: none !important; min-width: 0; float: none !important; margin: 0 !important; padding: 0 !important; }
.iob .io_product_picbox { position: sticky; top: var(--_sticky); }

/* Photo + thumbnails */
.iob #io_main_media_container { position: relative; width: 100% !important; height: auto !important; aspect-ratio: 4 / 3; margin: 0 !important; overflow: hidden; background: var(--_media) !important; border-radius: var(--_r); box-shadow: var(--_sh); }
.iob #io_main_media_container a#single_image { position: absolute !important; inset: 0 !important; display: block !important; width: 100% !important; height: 100% !important; margin: 0 !important; }
.iob #io_main_media_container img.io_image_big,
.iob #io_main_media_container video.io_video_big { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none !important; max-height: none !important; margin: 0 !important; padding: 16px; box-sizing: border-box; object-fit: contain !important; border: 0 !important; border-radius: 0 !important; }
.iob video.io_video_big:has(source[src=""]) { display: none !important; }
.iob .io_product_container .io_image_thumbbox { display: flex !important; flex-wrap: wrap; gap: 10px; width: auto !important; height: auto !important; margin: 16px 0 0 !important; padding: 0 !important; }
.iob .io_image_thumbbox img.io_image_thumb { display: block !important; float: none !important; width: 78px !important; height: 78px !important; max-width: none !important; margin: 0 !important; padding: 0 !important; object-fit: cover; border-radius: 14px; border: 3px solid #fff !important; background: #fff; box-shadow: 0 8px 18px -10px rgba(13, 30, 90, .55); cursor: pointer; transition: transform .15s, border-color .15s; }
.iob .io_image_thumbbox img.io_image_thumb:hover { transform: translateY(-2px); border-color: var(--_acc) !important; }

/* Title is the page H1 in the theme hero */
.iob .io_product_infobox > .elementor-widget-heading { display: none !important; }

/* Prices (IO shows/hides each row itself — never force display here) */
.iob #io_all_prices { background: var(--_card); border-radius: var(--_r); box-shadow: var(--_sh); padding: 20px 26px !important; margin: 0 0 24px !important; width: auto !important; }
.iob .io_product_price_box { overflow: hidden; width: auto !important; margin: 0 !important; padding: 10px 0 !important; border-bottom: 1px solid var(--_line); float: none !important; }
.iob #io_all_prices .io_product_price_box:last-of-type { border-bottom: 0; }
.iob .io_product_price_box p { width: auto !important; float: left !important; margin: 0 !important; padding: 0 !important; font: 500 15px/1.3 var(--_f) !important; color: var(--_muted) !important; text-align: left !important; }
.iob .io_product_price_box p:first-child { font: 700 18px/1.2 var(--_f) !important; color: var(--_ink) !important; }
.iob .io_product_price_box p:last-child { float: right !important; text-align: right !important; }
.iob .io_product_price_box p.io_product_price_top_left { font: 400 36px/1 var(--_hf) !important; color: var(--_price) !important; }
.iob .io_product_price_box p.io_product_price_top_right { font: 700 16px/1.2 var(--_f) !important; color: var(--_ink) !important; }

/* Buttons */
.iob .io_product_infobox .elementor-widget-button { display: inline-block; width: auto !important; margin: 0 12px 14px 0 !important; text-align: left !important; }
.iob .io_product_infobox a.elementor-button { padding: 17px 30px !important; font-size: 17px !important; gap: 10px; }

/* Product information */
.iob .io_product_detailbox { background: var(--_card) !important; border-radius: var(--_r); box-shadow: var(--_sh); padding: 30px 32px !important; margin: 10px 0 20px !important; width: auto !important; font: 400 16px/1.7 var(--_f) !important; color: var(--_ink) !important; }
.iob .io_product_subtitle { margin: 0 0 14px !important; font: 400 24px/1.15 var(--_hf) !important; color: var(--_ink) !important; text-transform: none !important; }
.iob .io_product_desc, .iob .io_product_desc * { font-family: var(--_f) !important; color: var(--_ink); }
.iob .io_product_desc { font-size: 16px !important; line-height: 1.7 !important; }
.iob .io_product_desc p { margin: 0 0 12px !important; }
.iob .io_product_desc ul, .iob .io_product_desc ol { list-style: disc outside !important; margin: 0 0 14px !important; padding: 0 0 0 22px !important; }
.iob .io_product_desc ol { list-style-type: decimal !important; }
.iob .io_product_desc ul ul { list-style-type: circle !important; margin: 4px 0 6px !important; }
.iob .io_product_desc li { display: list-item !important; list-style: inherit !important; margin: 3px 0 !important; padding: 0 !important; }
.iob .io_product_desc h1, .iob .io_product_desc h2, .iob .io_product_desc h3, .iob .io_product_desc h4 { font: 700 18px/1.3 var(--_f) !important; margin: 16px 0 8px !important; }
.iob .io_product_desc a { color: var(--_link) !important; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.iob .io_product_desc span, .iob .io_product_desc p { background: transparent !important; font-size: inherit !important; }

/* Specs */
.iob .io_product_detail_box { display: flex !important; justify-content: space-between; align-items: baseline; gap: 16px; width: auto !important; margin: 0 0 8px !important; padding: 14px 22px !important; background: var(--_card); border-radius: 16px; box-shadow: 0 10px 24px -18px rgba(13, 30, 90, .5); }
.iob .io_product_detail_box p { width: auto !important; float: none !important; margin: 0 !important; font: 500 15px/1.3 var(--_f) !important; color: var(--_muted) !important; }
.iob .io_product_detail_box p:last-child { font-weight: 700 !important; color: var(--_ink) !important; text-align: right; }
.iob .io_product_detail_box:has(p:last-child:empty) { display: none !important; }

/* "You might also be interested in" carousel */
.iob .io_product_upsell { margin-top: 70px !important; }
.iob .io_upsell_h3 { margin: 0 0 22px !important; font: 400 clamp(26px, 3vw, 36px)/1.1 var(--_hf) !important; color: var(--_ink) !important; text-align: center !important; text-transform: none !important; }
.iob .io_page_carousel_cell { width: 230px !important; margin-right: 20px !important; padding: 6px 0 24px !important; }
.iob .page-carousel-link { display: block !important; background: var(--_card); border-radius: 20px; box-shadow: var(--_sh); overflow: hidden; text-decoration: none !important; transition: transform .2s; }
.iob .page-carousel-link:hover { transform: translateY(-4px); }
.iob .page-carousel-image { display: block; width: 100% !important; height: 160px !important; object-fit: contain; padding: 10px; box-sizing: border-box; background: var(--_media); }
.iob .page-carousel-name { margin: 0 !important; padding: 12px 14px 16px !important; font: 400 16px/1.15 var(--_hf) !important; color: var(--_ink) !important; text-align: left !important; text-transform: capitalize !important; }

/* IO promo flags (corner banner) and badge popouts ("Crowd Pleaser", "WET")
   sit partly outside the photo box by design — never clip them. */
.iob .io_item2_list, .iob .io_item2_listrent,
.iob .io_item2_list .cat_div, .iob .io_item2_listrent .cat_div,
.iob #io_main_media_container, .iob .io_product_picbox { overflow: visible !important; }
.iob .io_item2_list .cat_div, .iob .io_item2_listrent .cat_div { border-radius: var(--_r) var(--_r) 0 0; }
.iob #io_main_media_container a#single_image { overflow: hidden; border-radius: var(--_r); }
.iob .io_corner_banner { z-index: 6 !important; }
.iob .io_promo_badges { z-index: 7 !important; }
/* Badge row ("Crowd Pleaser", "WET" icons): its own row under the photo,
   never on top of the photo or the price. Hover labels open upward. */
.iob { --io-badge-circle-size: 38px; }
.iob .io_item2_list .cat_div .io_promo_badges_overlay,
.iob .io_item2_listrent .cat_div .io_promo_badges_overlay {
	position: absolute !important; top: calc(100% + 12px) !important; bottom: auto !important;
	left: 20px !important; right: 20px !important; width: auto !important; transform: none !important; margin: 0 !important; gap: 6px !important;
}
.iob .io_item2_list:has(.io_promo_badges_overlay:not(:empty)) .io_item2_list_inner,
.iob .io_item2_listrent:has(.io_promo_badges_overlay:not(:empty)) .cat_div_inner { padding-top: 66px !important; }
.iob #io_main_media_container .io_promo_badges_product {
	position: absolute !important; top: calc(100% + 14px) !important; bottom: auto !important;
	left: 0 !important; right: 0 !important; width: auto !important; transform: none !important; gap: 6px !important;
}
.iob .io_product_picbox:has(.io_promo_badges_product:not(:empty)) .io_image_thumbbox { margin-top: 70px !important; }

/* Photos stay inside their box even though the box lets flags/labels out:
   IO wraps the photo in <p><a>; make those static so the photo sizes to the box. */
.iob .io_item2_list .cat_div p, .iob .io_item2_listrent .cat_div p,
.iob .io_item2_list .cat_div a:not([id]), .iob .io_item2_listrent .cat_div a:not([id]) { position: static !important; margin: 0 !important; padding: 0 !important; }
.iob .io_item2_list .cat_div br, .iob .io_item2_listrent .cat_div br { display: none; }

/* =====================================================================
   CART PILL (IO's "x items" bar) — hidden until the cart has items
   ===================================================================== */
body.iob-cart-pill .cartInfo { display: none !important; }
body.iob-cart-pill .cartInfo.iob-cart-has {
	display: inline-flex !important; align-items: center; gap: 8px;
	position: fixed !important; top: auto !important; left: auto !important; right: 24px !important; bottom: 24px !important; z-index: 60;
	width: auto !important; max-width: none !important; margin: 0 !important; padding: 12px 18px !important;
	background: var(--iob-card-bg, #fff) !important; color: var(--iob-ink, #0C2F3A) !important;
	border-radius: 999px; box-shadow: 0 12px 30px -10px rgba(13, 30, 90, .45);
	font: 700 15px/1 var(--iob-font, inherit) !important; cursor: pointer;
}
body.iob-cart-pill .cartInfo.iob-cart-has .cartIcon { color: var(--iob-price, #FF3D8B) !important; margin: 0 !important; font-size: 16px; }

/* =====================================================================
   RESPONSIVE
   ===================================================================== */
@media (max-width: 1080px) {
	.iob--category > .io_catdiv2, .iob--category > .io_catdiv2.tile-view { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	body.iob-cart-pill .cartInfo.iob-cart-has { right: 16px !important; bottom: var(--iob-mobile-bar, 88px) !important; }
}
@media (max-width: 960px) {
	.iob .io_product_container .simpleCart_ioShelfItem { grid-template-columns: 1fr; gap: 28px; }
	/* IO forces position:relative below 771px — keep it from shifting */
	.iob .io_product_picbox { position: static !important; top: auto !important; }
}
@media (max-width: 700px) {
	.iob { --_gut: var(--iob-gutter-mobile, 16px); }
	.iob--category > .pageDateRangeWrapper { margin-top: 36px !important; }
	.iob--category > .pageDateRangeWrapper .elementor-button { width: 100% !important; align-items: center; }
	.iob--category > .io_catdiv2, .iob--category > .io_catdiv2.tile-view { grid-template-columns: 1fr !important; gap: 20px !important; }
	.iob--category:not(.iob--merged) > .io_catdiv2 { margin-bottom: 60px !important; }
	.iob .catDescriptionIO { padding: 28px 22px; font-size: 16px !important; }
	.iob--product > .io_product_container { margin-top: 32px !important; }
	.iob .io_image_thumbbox img.io_image_thumb { width: 62px !important; height: 62px !important; }
	.iob .io_product_detailbox { padding: 22px 20px !important; }
	.iob .io_product_infobox a.elementor-button { width: 100% !important; justify-content: center; }
	.iob .io_product_infobox .elementor-widget-button { display: block; margin-right: 0 !important; }
}
