/* CSS */
/* CSS */
/* Label selbst darf keine Padding/Border mehr haben */
label.radio_border_aldo,
label.radio_border_sperry {
	padding: 0;
	border: none;
}

/* --- NEU/ERSATZ: Labels platzieren und ::before absolut positionieren --- */
/* Damit das pseudo-element (Kästchen/Kreis) sichtbar ist, macht das Label Platz */
div.radio-group label,
div.checkbox-group label {
	display: inline-block;
	position: relative;
	padding-left: 28px; /* Platz für ::before */
	cursor: pointer;
	vertical-align: middle;
}

/* Inputs verstecken aber weiterhin focus/keyboard erreichbar lassen */
input[type='radio'],
input[type='checkbox'] {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
	margin: 0;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
}

/* Einheitliches ::before für Radios und Checkboxes (Default) */
input[type='radio'] + label::before,
input[type='checkbox'] + label::before {
	content: '';
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	display: inline-block;
	width: 18px;
	height: 18px;
	border: 1px solid #929292;
	background: #ffffff;
	box-sizing: border-box;
	vertical-align: middle;
}

/* Radios als Kreis */
input[type='radio'] + label::before {
	border-radius: 50%;
}

/* Checkboxes als Quadrat */
input[type='checkbox'] + label::before {
	border-radius: 3px;
}

/* Hover/Focus states für bessere Sichtbarkeit */
input[type='checkbox']:hover + label::before,
input[type='radio']:hover + label::before,
input[type='checkbox']:focus + label::before,
input[type='radio']:focus + label::before {
	background: #f2f2f2;
	box-shadow: inset 0 0 0 0 rgba(0,0,0,0.05);
}

/* Checked states generic */
input[type='radio']:checked + label::before {
	border: 1px solid #000;
	background: radial-gradient(circle, #000 55%, transparent 55%);
}

input[type='checkbox']:checked + label::before {
	background: black;
	box-shadow: inset 0 0 0 2px white;
}

/* --- Marken-spezifische Styling nur noch auf ::before anwenden --- */
/* Default: leichter sichtbarer Rand, Fokus erzeugt Gap+Stroke */
label.radio_border_aldo::before {
	/* default schwacher Rand, Fokus härtet nach */
	border: 1px solid #3300AD;
	width: 20px;
	height: 20px;
	background: white;
	box-sizing: border-box;
}

label.radio_border_sperry::before {
	border: 1px solid #8F6300;
	width: 20px;
	height: 20px;
	background: white;
	box-sizing: border-box;
}

/* Checked-states für Marken-Variante (überschreiben wenn nötig) */
label.radio_border_aldo input[type='radio']:checked + &,
input[type='radio']:checked + label.radio_border_aldo::before {
	border: 1px solid #000;
	background: radial-gradient(circle, #000 55%, transparent 55%);
}
label.radio_border_aldo input[type='checkbox']:checked + &,
input[type='checkbox']:checked + label.radio_border_aldo::before {
	background: black;
	box-shadow: inset 0 0 0 2px white;
}

label.radio_border_sperry input[type='radio']:checked + &,
input[type='radio']:checked + label.radio_border_sperry::before {
	border: 1px solid #000;
	background: radial-gradient(circle, #000 55%, transparent 55%);
}
label.radio_border_sperry input[type='checkbox']:checked + &,
input[type='checkbox']:checked + label.radio_border_sperry::before {
	background: black;
	box-shadow: inset 0 0 0 2px white;
}

/* Entferne alte Label-umrandende Klassen (falls noch vorhanden) */
/* radio_border_aldo und radio_border_sperry dürfen keine sichtbaren Rahmen mehr am Label erzeugen */


* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}

@font-face {
	font-family: 'Patron';
	src: url('https://fonts.aldoshoes.com/patron-regular.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
}

@font-face {
	font-family: 'Patron Thin';
	src: url('https://fonts.aldoshoes.com/patron-thin.woff2') format('woff2');
	font-weight: 300;
	font-style: normal;
}

@font-face {
    font-family: 'Cadiz-Regular';
    src: url('https://fonts.sperry.com/Cadiz-Regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
}

@font-face {
    font-family: 'Cadiz-SemiBold';
    src: url('https://fonts.sperry.com/Cadiz-Bold.woff2') format('woff2');
    font-weight: 300;
    font-style: normal;
}

@font-face {
    font-family: 'Cadiz-Bold';
    src: url('https://fonts.sperry.com/Cadiz-SemiBold.woff2') format('woff2');
    font-weight: 300;
    font-style: normal;
}

@font-face {
    font-family: 'self-modern_book';
    src: url('https://fonts.sperry.com/SelfModern-SemiBold.woff2') format('woff2');
    font-weight: 300;
    font-style: normal;
}

@font-face {
    font-family: 'self-modern_semi-book';
	src: url('https://fonts.sperry.com/SelfModern-SemiBold.woff2') format('woff2');
    font-weight: 500;
    font-style: normal;
}

@font-face {
    font-family: 'Jost';
	src: url('/fonts/Jost-VariableFont_wght.ttf') format('ttf');
    font-style: normal;
}

@font-face {
    font-family: 'Jost';
	src: url('/fonts/Jost-Italic-VariableFont_wght.ttf') format('ttf');
    font-style: italic;
}

/* aldoshoes */
:root {
    --primary-color: #3A2E2C; /* Default primary color */
    --button-color: #3300AD; /* Default button color */
	--background: #FFFFFF;
	--letter-spacing: -0.01px;

    --font-family: 'Jost', sans-serif; /* Default font family */
	--font-family-first: 'Jost', sans-serif; /* Default font Thin family */
	--font-family-second: 'Jost', sans-serif; /* Default font Thin family */

	--font-size-main-headline: 32px;
	--font-size-main-headline-large-screen: 40px;
	--font-size-form-headlines: 16px;
	--font-weight-main-headline: 500; /* medium */
	--font-weight-form-headlines: 400; /* regular */
	--font-weight-text: 400; /* regular */
}

/* sperry */
.sperry-theme {
	--primary-color: #071C2C; /* Sperry primary color */
	--button-color: #071C2C; /* Sperry button color */
	--background: #F7F7F7;
	--letter-spacing: -0.02px;

	--font-family: 'self-modern_semi-book', serif; /* Sperry font family */
	--font-family-first: 'self-modern_book', serif; /* Sperry font family */
	--font-family-second: 'Cadiz-Regular', sans-serif; /* Sperry font Thin family */

	--font-size-main-headline: 28px;
	--font-size-main-headline-large-screen: 36px;
	--font-size-form-headlines: 14px;
	--font-size-main-headline: 32px;
	--font-size-main-headline-large-screen: 40px;
	--font-size-form-headlines: 16px;
	--font-weight-main-headline: 300; /* thin */
	--font-weight-form-headlines: 500; /* semi-bold */
	--font-weight-text: 400; /* regular */
}

a {
	color: var(--primary-color);
}


body {
	margin-top: 0;
	/*font-family: var(--font-family-first);*/
	font-family: 'Cadiz-Regular', sans-serif;
	font-weight: 400; /* regular */
	color: var(--primary-color);;
	width: 100%;
	background-color: var(--background);
}

header {
	margin: 0;
	width: 100%;
	height: 95px;
}

div.content_body {
	margin: 0 15px;
}

div.content_body div.headline h2 {
	margin-top: 56px;
	font-size: var(--font-size-main-headline);
	font-family: var(--font-family-first);
	font-weight: var(--font-weight-main-headline);
	letter-spacing: var(--letter-spacing);
	margin-bottom: 16px;
}

div.content_body p.paragraph {
	font-family: var(--font-family-second);
	font-weight: var(--font-weight-text);
	letter-spacing: -0.01px;
	font-size: 14px;
}

div.content_body p.paragraph {
	margin-bottom: 18px;
}

div.input-field {
	display: flex;
	flex-direction: column;
}

.input-field label {
	margin-bottom: 5px;
}

.cookie{
	font-size: 12px;
	letter-spacing: -0.03px;
	margin-top: 16.5px;
	margin-left: 27px;
}
input {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	border: none;
	border-radius: 0;
	font-size: 1em;
	width: 100%
}

div.input-field:first-child {
	margin-top: 48px
}

input[type='text'] {
	border: none;
	border-bottom: 1px solid black;
	outline: none;
	background-color: transparent;
}

input[type='text'] {
	font-size: 16px;
	width: 100%;
	height: 33px;
	border-bottom-color: #929292;
}

div.input-field ~ div.input-field  {
	margin-top: 24px;
}

div.input-wrapper {
	width: 100%;
	position: relative;
	display: inline-block;
}

div.input-wrapper::after {
	content: '';
	margin-left: -13px;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	border: solid #0C8500;
	border-width: 0 2px 2px 0;
	display: inline-block;
	padding: 0;
	transform: translate(0%, -50%) rotate(45deg);
	-webkit-transform: translate(0%, -50%) rotate(45deg);
}

div.input-wrapper::after {
	border-width: 0 1px 1px 0;
	padding: 7px 4px;
}

div.input-field > label {
	font-size: 12px;
	color: #929292;
}

textarea {
	width: 100%;
	height: 200px;
	resize: none;
	box-shadow: none;
	border: 1px solid #929292;
}

textarea#message {
	padding-top: 13px;
	padding-left: 13px;
	font-size: 16px;
}

div.radio-group {
	margin-top: 16px;
}

div.radio-group input[type="radio"]:first-child {
	margin-top: 0;
}

div.radio-group input[type="radio"] {
	margin-top: 16.5px;
}

div p.request_headline {
	margin-top: 48px;
	font-family: var(--font-family);
	font-size: var(--font-size-form-headlines);
	font-weight: var(--font-weight-form-headlines);
	letter-spacing: -0.01px;
}

div.radio-group > label {
	font-size: 12px;
	letter-spacing: -0.03px;
	margin-top: 16.5px;
	display: block;
}

div.checkbox-group {
	margin-top: 48px;
}

div.checkbox-group > input[type="checkbox"]:first-child {
	margin-top: 0;
}

div.checkbox-group > input[type="checkbox"] {
	margin-top: 16px;
}

div.checkbox-group > label {
	width: 100%;
	font-size: 12px;
	/*font-weight: 300; */
	letter-spacing: -0.03px;
	display: inline-block;
	margin-bottom: 16.5px;
}

div.checkbox-group > label > input[type="checkbox"] {
	position: absolute;
	left: 0;
	top: 0;
	margin-right: .75em;
}

label[for="update"] + p {
	margin-top: 19px;
	font-size: 12px;
	margin-bottom: 8px;
}

div.checkbox-group > label > span {
	margin-top: -17px;
	margin-left: 30px;
	display: block;
}

input[type='radio'] {
	opacity: 0;
	position: absolute;
}

input[type='radio'] + label::before {
	content: '';
	display: inline-block;
	margin-top: -4px;
	margin-right: 10px;
	border: 1px solid #929292;
	border-radius: 50%;
	width: 16px;
	height: 16px;
	vertical-align: middle;
	box-sizing: border-box;
}

.radio_border_aldo {
	border: 2px dashed #3300AD;
	border-width: 2px;
	padding-bottom: 5px;
	padding-top: 5px;
}

.radio_border_sperry {
	border: 2px dashed #8F6300;
	border-width: 2px;
	padding-bottom: 5px;
	padding-top: 5px;
}


input[type='radio']:checked + label::before {
	border: 1px solid #000; /* Black border */
	background: radial-gradient(circle, #000 50%, transparent 50%);
}

button, a, input[type='radio'] {
	cursor: pointer;
}

div {
	clear: both;
}

input[type='checkbox'] {
	margin-top: 10px;
	width: auto;
	float: left;
	margin-right: .75em;
	background: transparent;
	border: none;
}

input[type='checkbox']:checked,
input[type='checkbox']:not(:checked) {
	background: transparent;
	position: relative;
	opacity: 0;
	margin: 0;
	padding: 0;
}

input[type='checkbox']:checked + label::before,
input[type='checkbox']:not(:checked) + label::before {
	content: ' ';
	display: inline-block;
	width: 16px;
	height: 16px;
	position: relative;
	top: 4px;
	/* Default border kept for non-branded labels */
	border: 1px solid #929292;
	background: white;
	margin-right: 1em;
	box-shadow: inset 0 1px 1px 0 rgba(0, 0, 0, .1);
}

input[type=radio]:checked + label::before {
	border-radius: 30px;
}

input[type='checkbox']:hover  + label::before {
	background:#ddd;
	box-shadow: inset 0 0 0 2px white;
}

input[type='checkbox']:checked + label::before {
	background: black;
	box-shadow: inset 0 0 0 2px white;
}

button.disabled-button {
	background-color: grey;
	cursor: not-allowed;
}

button.send-button:not(.disabled-button) {
	background-color: var(--button-color);
}

button.send-button {
	margin-top: 48.5px;
	height: 60px;
	color: white;
	text-align: center;
	line-height: 60px; /* Aligns text vertically */
	border: none;
	width: 100%;
	cursor: pointer;
}

button.submit-button {
	margin-top: 8px;
	background-color: white;
	height: 60px;
	border: 2px solid black;
	width: 100%;
}

 /*ok page*/

.preferences_ok_button {
	margin-top: 48px;
}

span#preferences_ok_email {
	font-weight: 400;
	font-family: var(--font-family)
}

 /*Place your CSS styles here that should apply for screens wider than 414px*/
@media (min-width: 415px) {

	header {
		height: 55px;
	}

	.desktop_menu {
		display: none;
	}

	div.content_body {
		width: 601px;
		margin-left: 98px;
	}

	div.content_body div.headline h2 {
		margin-top: 48px;
		font-size: 36px;
	}

	input[type='text'] {
		width: 341px;
	}

	div.input-wrapper {
		width: 341px;
	}

	p#p_message {
		margin-left: 27px;
	}

	textarea {
		margin-left: 27px;
		width: 384px;
	}

	button.send-button {
		margin-top: 62.5px;
		width: 401px;
	}

	button.submit-button {

		border: 2px solid black;
		width: 401px;
	}

}

/* --- Sichtbarer Fokus-Rahmen um das Pseudo-Element (::before)) --- */
/* generischer Fokus (wenn Input fokussiert oder JS .label-focused setzt)
   ersetzt box-shadow durch outline/outline-offset, um Gap (2px) + Stroke (2px) zu erreichen */
input[type='radio']:focus + label::before,
input[type='checkbox']:focus + label::before,
label.label-focused::before {
	border: 1px solid transparent;
	outline: 2px solid #333;      /* stroke */
	outline-offset: 2px;         /* gap */
	z-index: 2;
	/* Hintergrund nicht überschreiben — damit checked-Visuals sichtbar bleiben */
}

/* --- Entfernt fehlerhafte/missverständliche :has-Selektoren und sorgt dafür,
       dass checked visuals beim Focus erhalten bleiben --- */
/* Explizit sicherstellen, dass checked-Visuals bei Fokus wieder angewendet werden */
input[type='radio']:checked:focus + label::before,
input[type='checkbox']:checked:focus + label::before {
	/* reapply checked visuals while keeping outline from focus rules */
	/* Radios: radial mark */
	border: 1px solid #000;
	background: radial-gradient(circle, #000 55%, transparent 55%);
	box-shadow: none;
}

/* Marken-spezifische Fokus-/Highlight-Farben (ALDO: 2px gap, 2px dashed #3300AD) */
input[type='radio']:focus + label.radio_border_aldo::before,
input[type='checkbox']:focus + label.radio_border_aldo::before,
input[type='radio']:checked:focus + label.radio_border_aldo::before,
input[type='checkbox']:checked:focus + label.radio_border_aldo::before,
label.label-focused.radio_border_aldo::before {
	border: 1px solid transparent;
	outline: 2px solid #3300AD;
	outline-offset: 2px;         /* 2px gap */
	z-index: 2;
	/* Hintergrund nicht überschreiben — checked-Visuals weiter sichtbar */
}

/* Marken-spezifische Fokus-/Highlight-Farben (Sperry: 2px gap, 2px solid #8F6300) */
input[type='radio']:focus + label.radio_border_sperry::before,
input[type='checkbox']:focus + label.radio_border_sperry::before,
input[type='radio']:checked:focus + label.radio_border_sperry::before,
input[type='checkbox']:checked:focus + label.radio_border_sperry::before,
label.label-focused.radio_border_sperry::before {
	border: 1px solid transparent;
	outline: 2px solid #8F6300;  /* solid stroke für Sperry */
	outline-offset: 2px;         /* 2px gap */
	z-index: 2;
	/* Hintergrund nicht überschreiben — checked-Visuals weiter sichtbar */
}

/* Zusätzlich: Checked-Styles für Checkboxen (sollten immer sichtbar sein) */
input[type='checkbox']:checked + label::before {
	background: black;
	box-shadow: inset 0 0 0 2px white;
	border: 1px solid #000;
}

/* Falls Brand-spezifische checked-fallbacks nötig sind, diese nach den Fokusregeln setzen */
input[type='checkbox']:checked:focus + label.radio_border_aldo::before,
input[type='radio']:checked:focus + label.radio_border_aldo::before {
	/* ALDO checked visuals (sichtbar während Fokus) */
	/* Checkbox: schwarze Füllung + weißer innerer Strich */
	background: black;
	box-shadow: inset 0 0 0 2px white;
	border: 1px solid #000;
}

input[type='checkbox']:checked:focus + label.radio_border_sperry::before,
input[type='radio']:checked:focus + label.radio_border_sperry::before {
	/* Sperry checked visuals (sichtbar während Fokus) */
	background: black;
	box-shadow: inset 0 0 0 2px white;
	border: 1px solid #000;
}

/* Visual: rote Unterstreichung / Underline für invalidierte Labels (2px) */
label.invalid-field,
label.invalid-group {
	text-decoration: underline;
	text-decoration-color: #D0021B; /* Rot */
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
}

/* Text-Input: roter Bottom-Border bei invalid */
input[type='text'].invalid-field,
input.invalid-field {
	border-bottom: 2px solid #D0021B !important;
}

/* Textarea: sichtbare rote Umrandung bei invalid */
textarea.invalid-field {
	border: 2px solid #D0021B !important;
}

/* Radio/Checkbox Gruppen: markiere erstes Label zusätzlich (falls nötig) */
.radio-group.invalid-group > label,
.radio-group label.invalid-group {
	text-decoration: underline;
	text-decoration-color: #D0021B;
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
}

/* Kleines Helfer-Reset: entferne outline/box-shadow nicht von invalid visuals */
label.invalid-field::before,
label.invalid-group::before {
	/* ensure pseudo element still renders normally */
}
