/* banner-tools.css */
/* Banner Tools */
.bnr-tls {
	--bnr-tls-pd-v-tp: 165; /* { readonly: true } */
	--bnr-tls-pd-v-tp-mbl: 75; /* { readonly: true } */
	--bnr-tls-pd-v-bt: 165; /* { readonly: true } */
	--bnr-tls-pd-v-bt-mbl: 75; /* { readonly: true } */

	--bnr-tls-pd-v-tp-clc: calc((var(--bnr-tls-pd-v-tp-mbl) * 1px) + (var(--bnr-tls-pd-v-tp) - var(--bnr-tls-pd-v-tp-mbl)) * ((var(--vw_) - 320px) / (1920 - 320))); /* { readonly: true } */
	--bnr-tls-pd-v-bt-clc: calc((var(--bnr-tls-pd-v-bt-mbl) * 1px) + (var(--bnr-tls-pd-v-bt) - var(--bnr-tls-pd-v-bt-mbl)) * ((var(--vw_) - 320px) / (1920 - 320))); /* { readonly: true } */

	padding-top: var(--bnr-tls-pd-v-tp-clc);
	padding-bottom: var(--bnr-tls-pd-v-bt-clc);

	.cms-content & {
		[field="Title"] [data-sysheader] {
			display: none;
		}

		[field="Title"] if[p-hide='true'] {
			display: block;
		}
	}
}

.overlap {
	.bnr-tls [class*="mn_"],
	+ .bnr-tls [class*="mn_"] {
		padding-top: var(--bnr-tls-pd-v-tp-clc);
	}
}
/* shift.css */

/* Shift & BG-Inset */
@media screen and (min-width:1280px) {
	
	[class*="shf"] {
		
		> [class*="mn_"] {
			--con-w: var(--mn_wth);
			--shf-off-a: calc(((var(--vw_) - var(--con-w) ) / 2) - 1rem);
		
			max-width: calc( var(--con-w) +  var(--shf-off-a) );
		}	
	
		> .mn_wd {
			--con-w: clamp(var(--mn_min), var(--mn-w), var(--mn_max));
		}	
		
		> .mn_tn {
			--con-w: clamp(var(--mn_min-t), var(--mn-t), var(--mn_max));
		}
	
	}
	
	.shf-l > [class*="mn_"],
	.shf-r > [class*="mn_"].f_rev {
	    margin-left: 0;
		margin-right: auto;
	}

	.shf-r > [class*="mn_"],
	.shf-l > [class*="mn_"].f_rev {
	    margin-right: 0;
		margin-left: auto;
	}
	
	/* Non-shifted side Half */
	.shf-l > [class*="mn_"] > :last-child,
	.shf-r > [class*="mn_"] > :first-child,
	.shf-r > [class*="mn_"].f_rev > :first-child,
	.shf-l > [class*="mn_"].f_rev > :last-child {
	    flex: 0 0 auto;
	}
	
	.shf-l > [class*="mn_"] > .half:last-child,
	.shf-r > [class*="mn_"] > .half:first-child,
	.shf-r > [class*="mn_"].f_rev > .half:first-child,
	.shf-l > [class*="mn_"].f_rev > .half:last-child { 
	    width: calc( ( var(--vw_) / 2 ) - var(--shf-off-a) - var(--flx-gap) - 1.5rem);
	}

    
    /* Non-shifted side three-8ths */
	.shf-l > [class*="mn_"] > .three-8ths:last-child,
	.shf-r > [class*="mn_"] > .three-8ths:first-child,
	
	.shf-r > [class*="mn_"].f_rev > .three-8ths:first-child,
	.shf-l > [class*="mn_"].f_rev > .three-8ths:last-child { 
	    width: calc( ( var(--vw_) / 2.6 ) - var(--shf-off-a) - var(--flx-gap) - 1.5rem);
	}

    /* Non-shifted side five-8ths */
	.shf-l > [class*="mn_"] > .five-8ths:last-child,
	.shf-r > [class*="mn_"] > .five-8ths:first-child,
	
	.shf-r > [class*="mn_"].f_rev > .five-8ths:first-child,
	.shf-l > [class*="mn_"].f_rev > .five-8ths:last-child { 
	    width: calc( ( var(--vw_) / 1.6 ) - var(--shf-off-a) - var(--flx-gap) - 1.5rem);
	}
	
	/* Shifted side */
	.shf-l > [class*="mn_"] > :first-child,
	.shf-r > [class*="mn_"] > :last-child,
	.shf-r > [class*="mn_"].f_rev > :last-child,
	.shf-l > [class*="mn_"].f_rev > :first-child {
	    flex: 1 1 auto;
	}

    .shf-r > [class*="mn_"] .shf-itm {
        padding-right: var(--shf-off-a);
    }
	 
    .shf-l > [class*="mn_"].f_rev .shf-itm {
		padding-right: var(--shf-off-a);
		padding-left: 0;
	}

    .shf-l > [class*="mn_"] .shf-itm {
        padding-left: var(--shf-off-a);
    }

    .shf-r > [class*="mn_"].f_rev .shf-itm {
		padding-left: var(--shf-off-a);
		padding-right: 0;
	}
	
}

/* forms.css */

/* Form Styles */
fieldset {		
	min-inline-size: auto;
	border: none;
	padding: 0;
	margin: 0;
	
	legend {
		padding: 0;
	}
	
	ul {
	    flex-wrap: wrap;
	}
}

label {
	display: block;
	text-align: left;
	transition: color var(--g-trn-sp) var(--g-trn-tf) 0s;
}


/* Form Input Styles */
input, textarea, select {
	border: 0;
	width: 100%;
	outline: none;
	color: inherit;
	font-size: inherit;
	font-weight: normal;
	font-family: inherit;
	line-height: inherit;
	text-transform: none;
	background-color: transparent;
	line-height: var(--fnt-frm-lh);
}

select,
input[type='search'] {
	appearance: none;
}

textarea {
	resize: none;
	overflow: auto;
	min-height: 4.5rem;
}

:invalid {
	box-shadow: none;
}

.inp-mrk,
.input-text {
	position: relative;
}

.input-text #Consent + small {
    text-wrap: balance;
}

[class*="ta_"] {
	.input-text #Consent + small {
		text-align: center;
	}

	@media screen and (min-width:1280px) {
		&[class*="l-1280"] {
			.input-text #Consent + small {
				text-align: left;
			}
		}

		&[class*="r-1280"] {
			.input-text #Consent + small {
				text-align: right;
			}
		}
	}
	
}

.input-text  {
	text-align: left;
	font-size: 1rem;
	background-clip: padding-box !important;
	
	:is(input, select, textarea) {
		border-width: var(--frm-bdr-w);
		border-style: var(--frm-bdr-stl);
		border-radius: var(--frm-bdr-rds);
		transition: border-color var(--g-trn-sp) var(--g-trn-tf) 0s;
		padding: 1em;
	}
	
	&:has( > svg ) :is(input, select, textarea) {
		padding-right: 3em;
	}

	select {
		 option {
			background-color: var(--main-bg);
			color: var(--text);
		}
	}

	:is(input, select, textarea)::placeholder,
	select:has(option[value=""]:checked) {
		font-size: 0.875rem;
		font-weight: 500;
		letter-spacing: 0.175rem;
		text-transform: uppercase;
		opacity: 1;
	}

	label {

		&.abs {
			top: 1em;
			left: 1em;
			opacity: 0;
			pointer-events: none;
			transform: scale(1);
			transform-origin: 0 50%;
			transition: transform var(--g-trn-sp) var(--g-trn-tf) 0s, top var(--g-trn-sp) var(--g-trn-tf) 0s, opacity var(--g-trn-sp) var(--g-trn-tf) 0s;
		}

	}
	
	> svg {
		bottom: calc(50% - .5em);
		right: 1em;
		position: absolute;
		pointer-events: none;
		color: var(--link-color);
	}
}

/* Form Checkbox Styles */

.inp-mrk {
	
	.input-text {
		border: 0;
		padding: 0;
	}
	
	input {
		position: absolute;
		opacity: 0;
		top: 0;
		left: 0;
		margin: 0;
		padding: 0;
		cursor: pointer;
		-webkit-appearance: none;
		z-index: 3;
		
		&:checked + label.replace:before {
			opacity: 1;
			transform: none;
		}
		
		&[type=radio] + label.replace {
			border-radius: 50%;
		}
		
	}
	
	label {
		user-select: none;
		-moz-user-select: none;
		-ms-user-select: none;
		
		&.toggle,
		&.replace {
			flex: 0 0 auto;
			cursor: pointer;
			
			+ label {
				margin: 0;
				line-height: 1.55;
				position: relative;
				padding-left: .625em;	
			}
		}
		
		&.replace {
			margin: 0;
			width: 1.5em;
			height: 1.5em;
			border-width: 1px;
			position: relative;
			border-style: solid;
			transition: border-color var(--g-trn-sp) var(--g-trn-tf) 0s;
			
			&::before {
				content: '';
				top: 4px;
				left: 4px;
				right: 4px;
				bottom: 4px;
				opacity: 0;
				position: absolute;
				transform: scale(.7);
				border-radius: inherit;
				transition: background-color var(--g-trn-sp) var(--g-trn-tf) 0s, transform var(--g-trn-sp) var(--g-trn-tf) 0s, opacity var(--g-trn-sp) var(--g-trn-tf) 0s;
			}
		}
	}
}

/* Ui-Condidional */
html:not(.cms-content) .ui-conditional-panel:not(.active) {
	display: none;
	visibility: hidden;
}


/* Form Colors */
@scope (form) to (.inp-mrk) {
	
	.input-text {
		--text-color: var(--text);
		--background: var(--white);

		:is(input, select, textarea) {
			color: var(--text-color);
			border-color: hsl(from var(--text-color) h s l / var(--bdr-clr-o));
			background: var(--background);
		}
		
		label.abs {
			color: var(--text-color);
		}
		
	}

	.focused .input-text :is(input, select, textarea) {
		border-color: var(--highlight-color) !important;
	}
	
	.invalid .input-text :is(input, select, textarea) {
		border-color: var(--invalid-color) !important;
	}
	
	.valid .input-text :is(input, select, textarea) {
		border-color: var(--valid-color);
	}
	
}

.inp-mrk label.replace {
	border-color: hsl(from var(--text-color) h s l / var(--bdr-clr-o));
}

.inp-mrk input:checked + label.replace {
	border-color: var(--link-color);
}

.inp-mrk label.replace.disabled,
.inp-mrk input:disabled + label.replace {
	background-color: hsl(from var(--text-color) h s l / var(--bdr-clr-o));
}

.inp-mrk label.replace.disabled::before,
.inp-mrk input:disabled + label.replace::before {
	background-color: hsl(from var(--text-color) h s l / var(--bdr-clr-o));
}

.inp-mrk label.replace::before {
	background-color: hsl(from var(--text-color) h s l / var(--bdr-clr-o));
}

.inp-mrk input:checked + label.replace::before {
	background-color: var(--link-color);
}

.inp-mrk label.replace + label,
.inp-mrk label.toggle + label {
	color: var(--text-color);
}

.inp-mrk label.replace.disabled + label,
.inp-mrk input:disabled + label.replace + label {
	color: hsl(from var(--text-color) h s l / var(--bdr-clr-o));
}

/* banner-v2.css */
.bnr.v2 {
    --bnr-tls-pd-v-tp: 90;
    --bnr-tls-pd-v-tp-mbl: 50;
    --bnr-tls-pd-v-bt: 40;
    --bnr-tls-pd-v-bt-mbl: 30;
    --bnr-img-bg-o: .2;
    --bnr-v2-oft: 4.72rem;
    
    background: linear-gradient(180deg, hsl(from var(--black) h s l / .8) 11.54%, hsl(from var(--background) h s l / .8) 100%);

    position: relative;



    .bnr-v2-cnt {
        position: relative;
        z-index: 1;
        padding-top: var(--bnr-tls-pd-v-tp-clc);
    }

    .bg-bx.frst-bg {
        --frst-bg-o: .75;
        --frst-blur: 7px;
        background-color: hsl(from var(--frst-bg-clr) h s l / var(--frst-bg-o));
        padding: 2rem 2.78rem;
        border: none;

        @media screen and (min-width:1280px) {
            & {
                gap: 4.4rem;
                margin-bottom: calc((4.72rem + var(--bnr-tls-pd-v-bt-clc)) * -1);
                .itm {
                    gap: 3.33rem;
                }
            }
        }

        .bnr-v2-cta-sub {
            --title-color: var(--fnt-t-co);
            font-family: var(--fnt-t);
            font-weight: var(--fnt-t-co-w);
            text-transform: uppercase;
            margin: 0;
        }
    }
}

header:has(.hdr.v1) + main .bnr.v2 {
    --bnr-tls-pd-v-tp: 68;
    --bnr-tls-pd-v-bt: 64;
}

.bnr.v2:has(.bg-bx.frst-bg) + section {
    --bnr-v2-oft: 4.72rem;
    padding-top: calc(var(--pd-v, 0px) + var(--bnr-v2-oft));
}

/* content-v2.css */
.cnt.v2 {
    aside > * + * {
        margin-top: var(--sp-vm-clc);
    }
}

/* reviews-v6.css */
/* Reviews V6 — Average rating + scrolling card list */
.rvw.v6 {

    /* Big heading (h4 → fnt_t-1) — Bayon 100px / lh 0.9 / mixed case */
    --fnt-t-1-tt: none;
    --fnt-t-1-lh: 0.9;

    /* Subhead (h5 → fnt_t-2) — Albert Sans 27px / lh 40px */
    --fnt-t-2-s: 1.5rem;
    --fnt-t-2-lh: 1.48;

    /* Card title (fnt_qte from ReviewItem) — Bayon 37px / lh 0.9 */
    --fnt-qte-s: 2.06rem;
    --fnt-qte-lh: 0.9;

    /* Card border-radius — Figma 20px */
    --bdr-rds-crd: 1.11rem;


    /* Big "4.9" number — Bayon, large, teal */
    .rvw-v6-num {
        line-height: 1;
        color: var(--callout);
    }

    .rvw-v6-rate {
        --grd-sp-dyn: 1.33rem;

        .fnt_t-k {
            color: var(--text-color);
        }
    }

    .rvw-v6-avg { gap: 0.44rem; }

    /* Star — Figma 56×56, yellow */
    .rvw-v6-str {
        width: 3.11rem;
        height: 3.11rem;
        color: #FFC107;
    }

    /* Caption + sources */
    .rvw-v6-cnt { line-height: 1.2; margin: 0; }
    .rvw-v6-srcs li { gap: 0.22rem; }

    /* Scroll container — overflow + grab cursor (mirrors staff-v4) */
    .bx-scrl {
        overflow: hidden;

        .bx-track {
            overflow-x: auto;
            overflow-y: hidden;
            scrollbar-width: none;
            cursor: grab;

            &::-webkit-scrollbar { display: none; }
            &:active { cursor: grabbing; }

            ul.grd {
                flex-wrap: nowrap;
                gap: 1.33rem;
            }
        }
    }

    /* Footer scroll-hint arrow size */
    .bdr_tp svg { font-size: 1.33rem; }

    /* Desktop card padding override — Figma 24px top/bottom + 32px sides */
    @media screen and (min-width: 1280px) {
        .bx-track ul li .pd_v.pd_h {
            padding: 1.33rem 1.78rem;
        }
    }
}

/* contact-v1.css */
/* Contact V1 */
.ctc.v1 {
	background: linear-gradient(to bottom, var(--background), var(--inner-theme) 82.258%);

	.ctc-v1-card {
		overflow: hidden;
		background-color:hsl(from var(--inner-theme) h s l / 0.9);
		backdrop-filter: blur(4px);

		@media screen and (min-width:1280px) {
			& {
				margin-bottom: 2rem;
			}
		}
	}

	/* ===== Left column: heading + mascot ===== */
	.ctc-v1-lft {
		gap: 1.5rem;
	}

	.ctc-v1-ttl {
		font-size: clamp(3rem, 5.2vw, 6.25rem);
		line-height: 0.9;
		text-align: center;
	}

	.ctc-v1-msc {
		
		width: 100%;
		margin-bottom: calc(-0.5 * var(--sp-vp-mmc));

		img {
			height: auto;
			display: block;
		}
	}

	/* ===== Right column: form panel ===== */
	.ctc-v1-frm {
		padding: 2rem;
		gap: 1.25rem;

		.input-text {
			:is(input, select, textarea)::placeholder {
				font-size: 0.875rem;
				font-weight: 500;
				letter-spacing: 0.175rem;
				text-transform: uppercase;
				color: var(--text-color);
				opacity: 1;
			}

			/* Address map pin: muted */
			&.has-icn > svg {
				fill: var(--text-color);
				opacity: 0.5;
			}
		}
	}

	.ctc-v1-legal {
		font-size: 0.875rem;
		line-height: 1.5;
		color: var(--text-color);

		a {
			color: var(--link-color);
		}
	}

	/* ===== Responsive ===== */
	@media screen and (max-width: 1279px) {
		.ctc-v1-lft {
			min-height: 22rem;
		}
	}

}
