/* Guillem - Formulari flexible */
.gff-flex-form{
	--gff-red:#ff2b2b;
	--gff-red-dark:#e51f27;
	--gff-ink:#071018;
	--gff-text:#121a22;
	--gff-muted:#68737d;
	--gff-line:#dfe5e9;
	--gff-surface:#ffffff;
	--gff-soft:#f6f8f9;
	--gff-gap:16px;
	--gff-cols-desktop:2;
	--gff-cols-tablet:2;
	--gff-cols-mobile:1;
	font-family:"Nunito Sans",Arial,sans-serif;
	box-sizing:border-box;
}
.gff-flex-form *{box-sizing:border-box}
.gff-style-light{
	background:var(--gff-surface);
	border:1px solid var(--gff-line);
	border-radius:14px;
	box-shadow:0 16px 42px rgba(7,16,24,.09);
	padding:26px;
}
.gff-style-dark{
	--gff-text:#ffffff;
	--gff-muted:#b9c2c9;
	--gff-line:rgba(255,255,255,.13);
	--gff-surface:#071018;
	--gff-soft:#0e1a24;
	background:var(--gff-surface);
	border:1px solid var(--gff-line);
	border-radius:14px;
	box-shadow:0 18px 46px rgba(0,0,0,.20);
	padding:26px;
}
.gff-style-minimal{background:transparent;padding:0}
.gff-header{margin-bottom:20px}
.gff-product-title{margin:0 0 7px!important;color:var(--gff-text)!important;font:900 28px/1.12 "Nunito Sans",Arial,sans-serif!important}
.gff-product-price{margin:0 0 12px;color:var(--gff-text);font-weight:900}
.gff-product-price .price,.gff-product-price .amount{color:inherit!important;font-weight:900!important}
.gff-intro{color:var(--gff-muted);font-size:14px;line-height:1.55}
.gff-intro p:last-child{margin-bottom:0}
.gff-included{
	margin-top:15px;padding:14px 15px;border-radius:9px;background:var(--gff-ink);border-left:4px solid var(--gff-red);color:#fff
}
.gff-style-dark .gff-included{background:#111e28}
.gff-included span{
	display:block;margin-bottom:4px;color:#abb5bd;font-size:10px;font-weight:900;letter-spacing:1.4px;text-transform:uppercase
}
.gff-included strong{display:block;color:#fff;font-size:14px;line-height:1.45}

.gff-flex-form .gff-grid-parent{
	display:grid!important;
	grid-template-columns:repeat(var(--gff-cols-desktop),minmax(0,1fr))!important;
	gap:var(--gff-gap)!important;
	align-items:start!important;
}
.gff-flex-form .gff-grid-parent>*{grid-column:1/-1}
.gff-flex-form .gff-grid-parent>.gff-grid-item{grid-column:auto}
.gff-flex-form .gff-grid-parent>.gff-grid-item.gff-full{grid-column:1/-1!important}
.gff-flex-form .gff-grid-parent>input[type="hidden"]{display:none!important}

.gff-flex-form form.cart,
.gff-flex-form .wc-bookings-booking-form{margin:0!important}
.gff-flex-form .wc-bookings-booking-form{
	padding:0!important;
	border:0!important;
	background:transparent!important
}
.gff-flex-form fieldset{min-width:0}
.gff-flex-form label,
.gff-flex-form .wc-pao-addon-heading,
.gff-flex-form .addon-name{
	color:var(--gff-text)!important;
	font-family:"Nunito Sans",Arial,sans-serif!important;
	font-size:13px!important;
	font-weight:800!important;
	line-height:1.35!important
}
.gff-flex-form input[type="text"],
.gff-flex-form input[type="number"],
.gff-flex-form input[type="email"],
.gff-flex-form input[type="tel"],
.gff-flex-form input[type="date"],
.gff-flex-form select,
.gff-flex-form textarea,
.gff-flex-form .wc-pao-addon-select{
	width:100%!important;
	min-height:50px!important;
	margin-top:6px!important;
	padding:10px 12px!important;
	border:1px solid var(--gff-line)!important;
	border-radius:8px!important;
	background:var(--gff-soft)!important;
	color:var(--gff-text)!important;
	box-shadow:none!important;
	font-family:"Nunito Sans",Arial,sans-serif!important;
	font-size:14px!important;
	transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease
}
.gff-flex-form textarea{min-height:105px!important;resize:vertical}
.gff-flex-form input:focus,
.gff-flex-form select:focus,
.gff-flex-form textarea:focus{
	outline:0!important;
	border-color:var(--gff-red)!important;
	box-shadow:0 0 0 3px rgba(255,43,43,.10)!important;
	background:var(--gff-surface)!important
}
.gff-flex-form .required{color:var(--gff-red)!important}
.gff-flex-form .wc-pao-addon-description,
.gff-flex-form .addon-description,
.gff-flex-form small{
	color:var(--gff-muted)!important;
	font-size:12px!important;
	line-height:1.45!important
}
.gff-flex-form .wc-bookings-booking-cost,
.gff-flex-form .wc-pao-subtotal-line{
	grid-column:1/-1!important;
	margin:18px 0 10px!important;
	padding:14px 15px!important;
	border:0!important;
	border-radius:9px!important;
	background:var(--gff-ink)!important;
	color:#fff!important;
	font-weight:800!important
}
.gff-flex-form button.single_add_to_cart_button,
.gff-flex-form .single_add_to_cart_button{
	width:100%!important;
	min-height:52px!important;
	margin-top:10px!important;
	padding:12px 18px!important;
	border:2px solid var(--gff-red)!important;
	border-radius:8px!important;
	background:var(--gff-red)!important;
	color:#fff!important;
	box-shadow:0 10px 24px rgba(255,43,43,.18)!important;
	font-family:"Nunito Sans",Arial,sans-serif!important;
	font-size:15px!important;
	font-weight:900!important;
	transition:transform .18s ease,background-color .18s ease,border-color .18s ease
}
.gff-flex-form button.single_add_to_cart_button:hover,
.gff-flex-form .single_add_to_cart_button:hover{
	background:var(--gff-red-dark)!important;
	border-color:var(--gff-red-dark)!important;
	transform:translateY(-1px)
}
.gff-flex-form .wc-bookings-date-picker .ui-datepicker{
	border:1px solid var(--gff-line)!important;
	border-radius:10px!important;
	overflow:hidden!important;
	box-shadow:none!important
}
.gff-flex-form .wc-bookings-date-picker .ui-datepicker-header{
	border:0!important;background:var(--gff-ink)!important;color:#fff!important
}
.gff-flex-form .wc-bookings-date-picker .ui-datepicker-title,
.gff-flex-form .wc-bookings-date-picker .ui-datepicker-prev:before,
.gff-flex-form .wc-bookings-date-picker .ui-datepicker-next:before{color:#fff!important}
.gff-flex-form .wc-bookings-date-picker .ui-datepicker td.bookable a{
	background:#eef2f4!important;color:#121a22!important
}
.gff-flex-form .wc-bookings-date-picker .ui-datepicker td.ui-datepicker-current-day a,
.gff-flex-form .wc-bookings-date-picker .ui-datepicker td.bookable-range a{
	background:var(--gff-red)!important;color:#fff!important
}
.gff-flex-form.gff-sticky{position:sticky;top:var(--gff-sticky-top);z-index:2}
.gff-admin-notice{
	padding:12px 14px;border:1px solid #f2c2c5;border-radius:7px;background:#fff5f5;color:#8f1e25;font:600 13px/1.45 Arial,sans-serif
}

@media(max-width:980px){
	.gff-flex-form .gff-grid-parent{
		grid-template-columns:repeat(var(--gff-cols-tablet),minmax(0,1fr))!important
	}
	.gff-flex-form.gff-sticky{position:static}
}
@media(max-width:767px){
	.gff-style-light,.gff-style-dark{padding:20px 16px}
	.gff-flex-form .gff-grid-parent{
		grid-template-columns:repeat(var(--gff-cols-mobile),minmax(0,1fr))!important
	}
	.gff-flex-form input[type="text"],
	.gff-flex-form input[type="number"],
	.gff-flex-form input[type="email"],
	.gff-flex-form input[type="tel"],
	.gff-flex-form input[type="date"],
	.gff-flex-form select,
	.gff-flex-form textarea,
	.gff-flex-form .wc-pao-addon-select{font-size:16px!important}
}
@media(prefers-reduced-motion:reduce){
	.gff-flex-form *{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}


/* v1.1 — Els Add-Ons de tipus heading/separador no poden ocupar mitja columna. */
.gff-flex-form .gff-heading-only{
	grid-column:1/-1!important;
	width:100%!important;
	margin:8px 0 0!important;
	padding:0!important;
}
.gff-flex-form .gff-heading-only .wc-pao-addon-heading,
.gff-flex-form .gff-heading-only .addon-name,
.gff-flex-form .gff-heading-only h2,
.gff-flex-form .gff-heading-only h3,
.gff-flex-form .gff-heading-only h4{
	margin:0!important;
}


/* v1.1 — headings/separadors dels Product Add-Ons sempre a amplada completa */
.gff-flex-form .gff-heading-only{
	grid-column:1/-1!important;
	width:100%!important;
	margin:8px 0 0!important;
	padding:0!important;
}
.gff-flex-form .gff-heading-only .wc-pao-addon-heading,
.gff-flex-form .gff-heading-only .addon-name,
.gff-flex-form .gff-heading-only h2,
.gff-flex-form .gff-heading-only h3,
.gff-flex-form .gff-heading-only h4{
	margin:0!important;
}


/* v1.3 — Divi 5: maquetació sobre el formulari natiu de WooCommerce */
.gff-enhance-marker{display:none!important}
.gff-flex-form.gff-style-minimal{background:transparent!important}
.gff-flex-form .gff-person-grid{
	display:grid!important;
	grid-template-columns:repeat(var(--gff-cols-desktop),minmax(0,1fr))!important;
	gap:var(--gff-gap)!important;
	align-items:start!important;
}
.gff-flex-form .gff-person-grid>.gff-person-item{
	grid-column:auto!important;
	min-width:0!important;
}
.gff-flex-form .gff-native-included{
	margin:0 0 20px!important;
}
@media(max-width:980px){
	.gff-flex-form .gff-person-grid{
		grid-template-columns:repeat(var(--gff-cols-tablet),minmax(0,1fr))!important;
	}
}
@media(max-width:767px){
	.gff-flex-form .gff-person-grid{
		grid-template-columns:repeat(var(--gff-cols-mobile),minmax(0,1fr))!important;
	}
}
