/* Furniture Hub Options – product configurator */
.fho {
	--fho-bg: #f4f2ef;
	--fho-surface: #ffffff;
	--fho-line: #e2ddd6;
	--fho-text: #2b2622;
	--fho-muted: #6f665e;
	--fho-brown: #6b4a33;
	--fho-brown-dark: #4f3524;
	--fho-gold: #b8975a;
	--fho-gold-soft: #f3ead9;
	--fho-warn: #8a4b14;
	--fho-radius: 10px;
	color: var( --fho-text );
	margin: 0 0 1.25rem;
	font-size: 15px;
	line-height: 1.4;
}
.fho[hidden] { display: none !important; }
form.variations_form.fho-active table.variations,
form.variations_form.fho-active .reset_variations,
form.variations_form.fho-active .woocommerce-variation-price { display: none !important; }

/* Box + tabs (one row of equal tabs, panel attached underneath) */
.fho-box {
	border: 1px solid var( --fho-line );
	border-radius: 12px;
	background: var( --fho-surface );
	overflow: hidden;
}
.fho-tabs {
	display: grid;
	grid-template-columns: repeat( var( --fho-tabs, 5 ), minmax( 84px, 1fr ) );
	background: var( --fho-bg );
	border-bottom: 1px solid var( --fho-line );
	overflow-x: auto;
	scrollbar-width: thin;
	-webkit-overflow-scrolling: touch;
}
.fho-tab {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	gap: 4px;
	min-height: 96px;
	padding: 12px 6px 10px;
	border: 0;
	border-right: 1px solid var( --fho-line );
	border-radius: 0;
	background: transparent;
	color: var( --fho-text );
	font: inherit;
	text-align: center;
	cursor: pointer;
	position: relative;
}
.fho-tab:last-child { border-right: 0; }
.fho-tab[hidden] { display: none; }
.fho-tab:hover { background: rgba( 255, 255, 255, .6 ); }
.fho-tab[aria-selected="true"] { background: var( --fho-surface ); }
.fho-tab[aria-selected="true"]::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: -1px;
	height: 2px;
	background: var( --fho-gold );
}
.fho-tab__icon { display: inline-flex; color: var( --fho-brown ); height: 36px; align-items: center; }
.fho-tab__icon .fho-icon { width: 34px; height: 34px; }
.fho-tab__icon .fho-icon--wide { width: 44px; height: 31px; }
.fho-tab__label { font-weight: 600; font-size: 14px; }
.fho-tab__value { font-size: 12px; color: var( --fho-muted ); line-height: 1.25; max-width: 100%; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.fho-tab.is-complete .fho-tab__value { color: var( --fho-text ); }

/* Panels & groups */
.fho-panel { padding: 16px; outline: none; max-height: 520px; overflow-y: auto; }
.fho-panel .fho-group__legend { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect( 0, 0, 0, 0 ); }
.fho-group { border: 0; margin: 0; padding: 0; min-width: 0; }
.fho-group__legend { font-weight: 700; font-size: 16px; padding: 0; margin-bottom: 4px; }
.fho-group__desc { margin: 0 0 12px; color: var( --fho-muted ); font-size: 14px; }
.fho-choices { display: grid; gap: 10px; grid-template-columns: repeat( 3, minmax( 0, 1fr ) ); }
.fho-group--photo .fho-choices { grid-template-columns: repeat( 5, minmax( 0, 1fr ) ); gap: 8px; }
.fho-choice[hidden] { display: none; }
.fho-group--swatch .fho-choices { grid-template-columns: repeat( auto-fill, minmax( 104px, 1fr ) ); }
.fho-group--button .fho-choices { grid-template-columns: repeat( auto-fill, minmax( 110px, auto ) ); }

/* Choice */
.fho-choice { position: relative; }
.fho-choice__input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
	margin: 0;
	pointer-events: none;
}
.fho-choice__label {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	height: 100%;
	padding: 12px 10px;
	background: var( --fho-surface );
	border: 1.5px solid var( --fho-line );
	border-radius: var( --fho-radius );
	text-align: center;
	cursor: pointer;
	transition: border-color .15s, box-shadow .15s;
	margin: 0;
}
.fho-choice__label:hover { border-color: var( --fho-brown ); }
.fho-choice__input:focus-visible + .fho-choice__label { outline: 3px solid var( --fho-gold ); outline-offset: 2px; }
.fho-choice__input:checked + .fho-choice__label {
	border-color: var( --fho-brown );
	box-shadow: inset 0 0 0 1px var( --fho-brown );
}
.fho-choice__check {
	position: absolute;
	top: 8px;
	right: 8px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: transparent;
}
.fho-choice__input:checked + .fho-choice__label .fho-choice__check {
	border-color: var( --fho-brown );
	background: var( --fho-brown ) url( "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3 3 7-7' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E" ) center / 14px no-repeat;
}
.fho-choice__media { display: flex; align-items: center; justify-content: center; color: var( --fho-brown ); }
.fho-choice__media:empty { display: none; }
.fho-icon--card { width: 44px; height: 44px; }
.fho-icon--card.fho-icon--wide { width: 72px; height: 50px; }
.fho-choice__price { font-size: 13px; color: var( --fho-brown ); font-weight: 600; }
.fho-choice__price:empty { display: none; }
.fho-group--photo .fho-choice__label { padding: 6px 6px 10px; gap: 6px; }
.fho-group--photo .fho-choice__media { width: 100%; aspect-ratio: 1 / 1; overflow: hidden; border-radius: 6px; background: var( --fho-bg ); }
.fho-group--photo .fho-choice__img { width: 100%; height: 100%; max-width: none; object-fit: cover; border-radius: 0; }
.fho-group--photo .fho-choice__name { font-weight: 500; font-size: 13px; }
.fho-choice--none .fho-choice__media { opacity: .7; }
.fho-details { margin: 14px auto 0; text-align: center; }
.fho-details summary {
	display: inline-block;
	padding: 8px 28px;
	border: 1px solid var( --fho-brown );
	border-radius: 8px;
	background: var( --fho-bg );
	cursor: pointer;
	list-style: none;
}
.fho-details summary::-webkit-details-marker { display: none; }
.fho-details[open] summary { background: var( --fho-gold-soft ); }
.fho-details__body { text-align: left; margin-top: 10px; padding: 10px 12px; background: var( --fho-bg ); border-radius: 8px; font-size: 14px; }
.fho-notice { margin: 0 0 10px; padding: 8px 10px; background: #fff4e5; border-left: 3px solid var( --fho-warn ); font-size: 14px; }
.fho-summary__delta { font-weight: 400; color: var( --fho-muted ); font-size: 13px; }
.fho-summary__row[hidden] { display: none; }
.fho-noscript select { width: 100%; }
.fho-choice__img { display: block; width: 100%; max-width: 140px; height: auto; border-radius: 6px; }
.fho-choice__body { display: flex; flex-direction: column; gap: 2px; }
.fho-choice__name { font-weight: 600; }
.fho-choice__sub, .fho-choice__code, .fho-choice__desc { font-size: 13px; color: var( --fho-muted ); }
.fho-choice__state { font-size: 12px; font-weight: 600; color: var( --fho-warn ); }
.fho-choice__state:empty { display: none; }

/* Swatches */
.fho-group--swatch .fho-choice__media { width: 64px; height: 64px; border-radius: 50%; overflow: hidden; border: 1px solid var( --fho-line ); background: var( --fho-bg ); }
.fho-group--swatch .fho-choice__img { width: 64px; height: 64px; max-width: none; object-fit: cover; border-radius: 0; }
.fho-choice__swatch-empty { font-weight: 700; color: var( --fho-muted ); }
.fho-swatch-preview {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 12px;
	padding: 8px;
	background: var( --fho-bg );
	border-radius: var( --fho-radius );
}
.fho-swatch-preview[hidden] { display: none; }
.fho-swatch-preview img { width: 120px; height: 120px; object-fit: cover; border-radius: 8px; }
.fho-swatch-preview__caption { font-weight: 600; }

/* Buttons display */
.fho-group--button .fho-choice__label { flex-direction: row; justify-content: center; padding: 10px 14px; min-height: 44px; }
.fho-group--button .fho-choice__check { display: none; }

/* Unavailable states */
.fho-choice[data-fho-state="none"] .fho-choice__label,
.fho-choice[data-fho-state="oos"] .fho-choice__label { opacity: .5; cursor: not-allowed; background: var( --fho-bg ); }
.fho-choice[data-fho-state="none"] .fho-choice__name,
.fho-choice[data-fho-state="oos"] .fho-choice__name { text-decoration: line-through; }
.fho-choice[data-fho-state="conflict"] .fho-choice__label { border-style: dashed; }

.fho-panel__nav { margin-top: 12px; text-align: right; }
.fho-panel .fho-next { padding: 6px 14px; font-size: 14px; }
.fho-next, .fho-reset {
	font: inherit;
	cursor: pointer;
	border-radius: 8px;
	padding: 8px 14px;
}
.fho-next { background: var( --fho-brown ); color: #fff; border: 1px solid var( --fho-brown ); }
.fho-next:hover { background: var( --fho-brown-dark ); }
.fho-next:focus-visible, .fho-reset:focus-visible, .fho-tab:focus-visible { outline: 3px solid var( --fho-gold ); outline-offset: 2px; }

/* Summary */
.fho-summary {
	margin-top: 18px;
	padding: 16px;
	background: var( --fho-bg );
	border-radius: var( --fho-radius );
	border-top: 3px solid var( --fho-gold );
}
.fho-summary__title { margin: 0 0 10px; font-size: 16px; }
.fho-summary__list { margin: 0 0 12px; }
.fho-summary__row { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; border-bottom: 1px solid var( --fho-line ); }
.fho-summary__row dt { color: var( --fho-muted ); margin: 0; font-weight: 400; }
.fho-summary__row dd { margin: 0; font-weight: 600; text-align: right; }
.fho-summary__price, .fho-summary__total { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.fho-summary__total[hidden] { display: none; }
.fho-summary__price-value { font-size: 22px; font-weight: 700; color: var( --fho-brown ); }
.fho-summary__price-value del { font-size: 15px; color: var( --fho-muted ); font-weight: 400; }
.fho-summary__price-value ins { text-decoration: none; }
.fho-summary__status { margin: 10px 0 0; font-size: 14px; color: var( --fho-muted ); }
.fho[data-fho-result="enquiry"] .fho-summary__status,
.fho[data-fho-result="oos"] .fho-summary__status,
.fho[data-fho-result="none"] .fho-summary__status { color: var( --fho-warn ); font-weight: 600; }
.fho-reset { margin-top: 10px; background: transparent; border: 1px solid var( --fho-line ); color: var( --fho-text ); font-size: 13px; }
.fho-sr {
	position: absolute !important;
	width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect( 0, 0, 0, 0 ); white-space: nowrap; border: 0;
}

@media ( max-width: 600px ) {
	.fho-tabs { grid-template-columns: repeat( var( --fho-tabs, 5 ), minmax( 76px, 1fr ) ); }
	.fho-tab { min-height: 84px; padding: 10px 4px 8px; }
	.fho-tab__label { font-size: 13px; }
	.fho-tab__value { font-size: 11px; }
	.fho-panel { padding: 12px; max-height: none; }
	.fho-choices { grid-template-columns: repeat( 2, minmax( 0, 1fr ) ); }
	.fho-group--photo .fho-choices { grid-template-columns: repeat( 3, minmax( 0, 1fr ) ); }
	.fho-group--swatch .fho-choices { grid-template-columns: repeat( 3, minmax( 0, 1fr ) ); }
	.fho-panel__nav { text-align: stretch; }
	.fho-next { width: 100%; }
}
@media ( prefers-reduced-motion: reduce ) {
	.fho-choice__label { transition: none; }
}

/* 1.2: compact swatches, with scoped selectors to resist theme button styles. */
.fho.fho--stacked .fho-box { border:0; border-radius:0; overflow:visible; }
.fho.fho--stacked .fho-tabs, .fho.fho--stacked .fho-panel__nav { display:none; }
.fho.fho--stacked .fho-panel { padding:18px 0; max-height:none; overflow:visible; border-bottom:1px solid #e5e7eb; }
.fho .fho-panel[hidden] { display:none!important; }
.fho.fho--stacked .fho-group__legend { position:static; width:auto; height:auto; clip:auto; overflow:visible; margin:0 0 12px; font-size:14px; letter-spacing:.04em; text-transform:uppercase; }
.fho.fho--stacked { --fho-bg:#f7f7f8; --fho-line:#dadce0; --fho-text:#242424; --fho-muted:#65676b; }
.fho.fho--stacked .fho-summary { border:1px solid var(--fho-line); background:#f8f9fa; border-radius:8px; }
.fho.fho--stacked .fho-summary__title { font-size:15px; }
.fho.fho--stacked .fho-choice__label { border-radius:6px; }
.fho .fho-group--button .fho-choices { display:flex; flex-wrap:wrap; gap:9px; }
.fho .fho-group--button .fho-choice__label { min-width:44px; padding:10px 14px; box-sizing:border-box; }
.fho .fho-group--button .fho-choice__input:checked + .fho-choice__label { background:var(--fho-brown); color:white; }
.fho .fho-group--button .is-selected .fho-choice__sub { color:white; }
.fho .fho-group--colour .fho-choices, .fho .fho-group--image .fho-choices { display:flex; flex-wrap:wrap; gap:14px; }
.fho .fho-group--colour .fho-choice, .fho .fho-group--image .fho-choice { width:82px; }
.fho .fho-group--colour .fho-choice__label, .fho .fho-group--image .fho-choice__label { padding:5px 3px; border:0; box-shadow:none; background:transparent; gap:8px; }
.fho .fho-group--colour .fho-choice__media, .fho .fho-group--image .fho-choice__media { width:44px; height:44px; border:1px solid #d1d5db; outline:2px solid transparent; outline-offset:3px; overflow:hidden; background:#f3f4f6; }
.fho .fho-group--colour .fho-choice__media { border-radius:50%; }
.fho .fho-group--image .fho-choice__media { border-radius:5px; }
.fho .fho-colour-chip, .fho .fho-group--colour .fho-choice__img, .fho .fho-group--image .fho-choice__img { width:100%; height:100%; display:block; object-fit:cover; border-radius:0; }
.fho .fho-group--colour .is-selected .fho-choice__media, .fho .fho-group--image .is-selected .fho-choice__media { outline-color:var(--fho-brown); }
.fho .fho-group--colour .fho-choice__check, .fho .fho-group--image .fho-choice__check { top:17px; right:31px; width:20px; height:20px; }
.fho .fho-group--colour .fho-choice__name, .fho .fho-group--image .fho-choice__name { font-size:12px; font-weight:500; overflow-wrap:anywhere; }
.fho .fho-tab { background:#f7f7f8; color:#242424; border:0; border-radius:0; }
.fho .fho-tab:hover, .fho .fho-tab[aria-selected=true] { background:white; color:#242424; }
.fho .fho-tab__value { color:#5e6268; }
.fho .fho-reset { background:white; color:#242424; border:1px solid #d1d5db; }
.fho .fho-mattress{border:1px solid #ddd;border-radius:12px;background:#fafafa;padding:20px;margin-top:24px}.fho-mattress[hidden]{display:none!important}.fho-mattress-dialog{width:min(850px,92vw);max-height:85vh;overflow:auto;border:0;border-radius:16px;padding:24px;color:#252525;background:white;box-shadow:0 20px 80px #0004}.fho-mattress-dialog::backdrop{background:#0008}.fho-mattress-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.fho-mattress-head h2{font-size:24px}.fho-mattress [data-m-list]{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px}.fho-mattress .fho-mattress-card{display:flex;flex-direction:column;text-align:left;gap:10px;padding:14px;background:#fff;border:1px solid #d6d6d6;border-radius:10px;color:#222;white-space:normal}.fho-mattress-card:hover,.fho-mattress-card:focus-visible{outline:2px solid #98743b}.fho-mattress-card img{width:100%;aspect-ratio:1;object-fit:contain}.fho-mattress-card span:last-child{color:#795c2e;font-weight:600}.fho-mattress button:disabled{opacity:.5;cursor:not-allowed}
