/*
 * Øye Optikk – timebestilling og prisliste.
 * Temaets egne skjemastiler er globale, så flere regler her trenger høy spesifisitet.
 */

.oye-booking,
.oye-prisliste {
	--oye-flate: rgba(0, 0, 0, 0.16);
	--oye-flate-hover: rgba(255, 255, 255, 0.06);
	--oye-valgt: #775451;
	--oye-aksent: #C0A5A3;
	--oye-linje: rgba(255, 255, 255, 0.22);
	--oye-tekst: #FFFFFF;
	--oye-dempet: rgba(255, 255, 255, 0.72);
	--oye-mork: #1D1D1B;
	--oye-hjorne: 30px;
	font-family: source-sans-pro, sans-serif;
	color: var(--oye-tekst);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/* Skjema i en lysere flate til venstre, informasjon på seksjonsbakgrunnen til høyre. */
.oye-booking-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 18rem;
	gap: 3rem;
	align-items: start;
	margin: 0 auto;
}

.oye-booking-layout__skjema {
	padding: clamp(1.5rem, 3vw, 3rem);
	background: #634846;
	border-top-right-radius: 48px;
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.22);
}

@media (max-width: 600px) {
	.oye-booking-layout__skjema {
		margin: 0 -0.5rem;
		padding: 1.5rem 1.25rem 2rem;
		border-top-right-radius: 32px;
	}
}

/* Skjemaet i en seksjon på en vanlig side: uten infofeltet ved siden, og uten
 * den mørke boksen. Fargene snus til mørk tekst, siden seksjonen er lys. */
/* Gravity Forms setter «oye-booking» både på wrapperen og på <form>, og den
 * klassen definerer de hvite fargene. Variablene må derfor settes på begge. */
.oye-booking-layout.oye-booking-layout--uten-info,
.oye-booking-layout.oye-booking-layout--uten-info .oye-booking,
.oye-booking-layout.oye-booking-layout--uten-info .gform_wrapper {
	--oye-tekst: #1D1D1B;
	/* Full dekning: 78 % ga 3,56 i kontrast mot seksjonsfargen, under kravet på 4,5. */
	--oye-dempet: #1D1D1B;
	--oye-linje: rgba(29, 29, 27, 0.38);
	--oye-flate: rgba(255, 255, 255, 0.5);
	--oye-flate-hover: rgba(255, 255, 255, 0.78);
	color: #1D1D1B;
}

.oye-booking-layout.oye-booking-layout--uten-info {
	grid-template-columns: minmax(0, 1fr);
	max-width: 820px;
	margin-left: 0;
}

.oye-booking-layout.oye-booking-layout--uten-info .oye-booking-layout__skjema {
	padding: 0;
	background: none;
	border-radius: 0;
	box-shadow: none;
}

.oye-booking-layout.er-sendt {
	grid-template-columns: minmax(0, 1fr);
	max-width: 720px;
}

.oye-booking-layout.er-sendt .oye-info {
	display: none;
}

@media (max-width: 1000px) {
	.oye-booking-layout {
		grid-template-columns: minmax(0, 1fr);
		gap: 2.5rem;
	}
}

/* ---------------------------------------------------------------------------
 * Infofelt
 * ------------------------------------------------------------------------- */


.oye-info {
	position: sticky;
	top: calc(var(--header-height, 80px) + 1.5rem);
	display: grid;
	gap: 1.5rem;
	font-family: source-sans-pro, sans-serif;
	color: var(--oye-tekst);
}

.oye-info__blokk {
	padding-top: 1.25rem;
	border-top: 1px solid var(--oye-linje);
}

.oye-info__blokk:first-child {
	padding-top: 0;
	border-top: 0;
}

.oye-info__tittel {
	margin: 0 0 0.6rem;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--oye-dempet);
}

.oye-info__steg {
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: oye-steg;
}

.oye-info__steg li {
	position: relative;
	margin: 0 0 0.7rem;
	padding-left: 2rem;
	font-size: 1rem;
	line-height: 1.45;
	color: var(--oye-tekst);
}

.oye-info__steg li::before {
	counter-increment: oye-steg;
	content: counter(oye-steg);
	position: absolute;
	left: 0;
	top: 0.05rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.4rem;
	height: 1.4rem;
	border: 1px solid var(--oye-linje);
	border-radius: 50%;
	font-size: 0.8rem;
	color: var(--oye-dempet);
}

.oye-info__blokk--merke {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
}

.oye-info__merke {
	flex: none;
	width: 4rem;
	height: auto;
	position: relative;
	z-index: 1;
	transform-origin: left center;
}

/* Merket vokser ved hover, så teksten i det kan leses. Bare på pekerenheter –
 * på touch ville et trykk låst seg i hover-tilstand. */
@media (hover: hover) and (pointer: fine) {
	.oye-info__merke {
		border-radius: 50%;
		transition: transform 0.35s cubic-bezier(0.2, 0.7, 0.3, 1), box-shadow 0.35s;
	}

	.oye-info__merke:hover {
		transform: scale(2.2);
		/* Bakgrunn og skygge, så teksten bak ikke skinner gjennom. */
		background: #4B3533;
		box-shadow: 0 0 0 0.35rem #4B3533, 0 6px 18px rgba(0, 0, 0, 0.45);
	}
}

@media (prefers-reduced-motion: reduce) {
	.oye-info__merke {
		transition: none;
	}
}

.oye-info__blokk--merke .oye-info__tekst {
	margin: 0;
}

.oye-info__navn {
	margin: 0;
	font-size: 1.15rem;
	line-height: 1.3;
}

.oye-info__pris {
	margin: 0.2rem 0 0;
	font-size: 1rem;
	color: var(--oye-aksent);
}

.oye-info__tekst {
	margin: 0.5rem 0 0;
	font-size: 0.95rem;
	line-height: 1.45;
	color: var(--oye-dempet);
}

.oye-info .oye-apningstider {
	margin-top: 0.7rem;
	font-size: 0.9rem;
	color: var(--oye-dempet);
}

.oye-info__lenker {
	display: grid;
	gap: 0.25rem;
	margin: 0.7rem 0 0;
	font-size: 0.95rem;
}

.oye-info__lenker a {
	color: var(--oye-tekst);
	text-decoration: underline;
	text-decoration-color: var(--oye-aksent);
	text-underline-offset: 0.2em;
	justify-self: start;
}

.oye-info__lenker a:hover {
	color: var(--oye-aksent);
}

.oye-info__butikkliste {
	display: grid;
	gap: 0.9rem;
	margin: 0.9rem 0 0;
	padding: 0;
	list-style: none;
}

.oye-info__butikkliste li {
	display: grid;
	gap: 0.1rem;
	margin: 0;
}

.oye-info__butikknavn {
	font-size: 0.95rem;
	color: var(--oye-dempet);
}

.oye-info__butikkliste a {
	justify-self: start;
	font-size: 1.05rem;
	color: var(--oye-tekst);
	text-decoration: underline;
	text-decoration-color: var(--oye-aksent);
	text-underline-offset: 0.2em;
	font-variant-numeric: tabular-nums;
}

.oye-info__butikkliste a:hover {
	color: var(--oye-aksent);
}

@media (max-width: 1000px) {
	.oye-info {
		position: static;
	}
}

/* Selve <form> har også klassen «oye-booking» fra Gravity Forms. */
form.oye-booking {
	padding: 0;
	background: none;
	box-shadow: none;
}

/* Variablene må også gjelde infofeltet. */
.oye-booking-layout {
	--oye-flate: rgba(0, 0, 0, 0.16);
	--oye-aksent: #C0A5A3;
	--oye-linje: rgba(255, 255, 255, 0.22);
	--oye-tekst: #FFFFFF;
	--oye-dempet: rgba(255, 255, 255, 0.72);
	--oye-mork: #1D1D1B;
	--oye-hjorne: 30px;
	-webkit-font-smoothing: antialiased;
}

/* ---------------------------------------------------------------------------
 * Skjema: grunnstiler
 * ------------------------------------------------------------------------- */

.oye-booking .gform_wrapper.oye-booking_wrapper {
	margin: 0;
	color: var(--oye-tekst);
	scroll-margin-top: calc(var(--header-height, 80px) + 1rem);
}

.oye-booking .gform_wrapper.oye-booking_wrapper .gform_fields {
	grid-row-gap: 1.75rem;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .gfield_label,
.oye-booking .gform_wrapper.oye-booking_wrapper legend.gfield_label {
	display: block;
	font-family: meno-banner, serif;
	font-size: 1.85rem !important;
	font-weight: 600 !important;
	line-height: 1.2;
	color: var(--oye-tekst);
	margin: 0 0 1rem;
	padding: 0;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .gfield--type-text .gfield_label,
.oye-booking .gform_wrapper.oye-booking_wrapper .gfield--type-phone .gfield_label,
.oye-booking .gform_wrapper.oye-booking_wrapper .gfield--type-email .gfield_label,
.oye-booking .gform_wrapper.oye-booking_wrapper .gfield--type-textarea .gfield_label,
.oye-booking .gform_wrapper.oye-booking_wrapper .gfield--type-date .gfield_label {
	font-family: source-sans-pro, sans-serif;
	font-size: 1.2rem !important;
	font-weight: 600 !important;
	color: var(--oye-tekst);
	margin-bottom: 0.4rem;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .gfield_required {
	display: none !important;
}

/* Skjulte felter skal ikke ta plass i rutenettet (de lager luft før knappen). */
.oye-booking .gform_wrapper.oye-booking_wrapper .gform_hidden,
.oye-booking .gform_wrapper.oye-booking_wrapper .gfield--type-hidden {
	display: none !important;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .gfield_description {
	color: rgba(255, 255, 255, 0.86);
	font-size: 1.05rem;
	line-height: 1.45;
	padding-top: 0.4rem;
}

.oye-booking .gform_wrapper.oye-booking_wrapper input:not([type="radio"]):not([type="checkbox"]):not([type="submit"]):not([type="button"]),
.oye-booking .gform_wrapper.oye-booking_wrapper textarea {
	width: 100%;
	background: #FFFFFF;
	color: var(--oye-mork);
	border: 1px solid transparent;
	border-radius: 10px;
	padding: 0.85rem 1.1rem;
	font-size: 18px !important;
	line-height: 1.3;
	box-shadow: none;
	transition: box-shadow 0.15s;
}

.oye-booking .gform_wrapper.oye-booking_wrapper input::placeholder,
.oye-booking .gform_wrapper.oye-booking_wrapper textarea::placeholder {
	color: rgba(29, 29, 27, 0.62);
	opacity: 1;
}

.oye-booking .gform_wrapper.oye-booking_wrapper input:hover:not([type="radio"]):not([type="checkbox"]):not([type="submit"]),
.oye-booking .gform_wrapper.oye-booking_wrapper textarea:hover {
	box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.12);
}

.oye-booking .gform_wrapper.oye-booking_wrapper textarea {
	min-height: 6rem;
	padding-top: 1.1rem;
	padding-bottom: 1.1rem;
}

.oye-booking .gform_wrapper.oye-booking_wrapper input:focus-visible,
.oye-booking .gform_wrapper.oye-booking_wrapper textarea:focus-visible {
	outline: 3px solid var(--oye-aksent);
	outline-offset: 2px;
}

/* Felter som dukker opp via betinget logikk glir rolig inn. */
@media (prefers-reduced-motion: no-preference) {
	.oye-booking .gform_wrapper.oye-booking_wrapper .gfield {
		animation: oye-inn 0.25s ease-out;
	}
}

@keyframes oye-inn {
	from { opacity: 0; transform: translateY(-4px); }
	to { opacity: 1; transform: none; }
}

/* ---------------------------------------------------------------------------
 * Delene i skjemaet (nummererte overskrifter nedover siden)
 * ------------------------------------------------------------------------- */

.oye-booking .gform_wrapper.oye-booking_wrapper .gform_fields {
	counter-reset: oye-del;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .gsection {
	margin: 1rem 0 0;
	padding: 2rem 0 0;
	border: 0;
	border-top: 1px solid var(--oye-linje);
}

.oye-booking .gform_wrapper.oye-booking_wrapper .gsection:first-child,
.oye-booking .gform_wrapper.oye-booking_wrapper .gsection:nth-child(1 of .gsection),
.oye-booking .gform_wrapper.oye-booking_wrapper .oye-del--1 {
	margin-top: 0;
	padding-top: 0 !important;
	border-top: 0;
}

/* Melding under et felt mens man fyller ut. */
.oye-feltfeil {
	margin: 0.4rem 0 0;
	font-size: 0.95rem;
	line-height: 1.4;
	color: #F0C9C5;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .oye-har-feil input {
	border-color: #E8B4B0;
	box-shadow: 0 0 0 2px rgba(232, 180, 176, 0.45);
}

/* Feiloppsummeringen øverst i skjemaet. */
.oye-booking .gform_wrapper.oye-booking_wrapper .gform_validation_errors {
	margin: 0 0 1.5rem;
	padding: 1rem 1.25rem;
	background: rgba(0, 0, 0, 0.22);
	border: 0;
	border-left: 3px solid #E8B4B0;
	border-radius: 8px;
	box-shadow: none;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .gform_validation_errors > h2 {
	margin: 0 0 0.4rem;
	font-family: source-sans-pro, sans-serif;
	font-size: 1.05rem !important;
	font-weight: 600;
	color: var(--oye-tekst);
}

.oye-booking .gform_wrapper.oye-booking_wrapper .gform_validation_errors ol,
.oye-booking .gform_wrapper.oye-booking_wrapper .gform_validation_errors li {
	margin: 0;
	color: var(--oye-tekst);
	font-size: 0.95rem;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .gform_validation_errors a {
	color: var(--oye-tekst);
	text-decoration: underline;
	text-decoration-color: var(--oye-aksent);
}

/* Siste del vises først når tjeneste, butikk og tidspunkt er valgt
 * (klassen settes av oye-booking.js). */
.oye-booking .gform_wrapper.oye-booking_wrapper form:not(.er-ferdig-valgt) .oye-del3 {
	display: none !important;
}

/* Send-knappen vises når butikk er valgt (klassen settes av oye-booking.js). */
.oye-booking .gform_wrapper.oye-booking_wrapper .gform_footer:not(.er-klar) {
	display: none;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .gsection_title {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	margin: 0;
	padding: 0;
	font-family: meno-banner, serif;
	font-size: 2.5rem !important;
	font-weight: 600 !important;
	line-height: 1.15;
	color: var(--oye-tekst);
}

.oye-booking .gform_wrapper.oye-booking_wrapper .gsection_title::before {
	counter-increment: oye-del;
	content: counter(oye-del);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 2.25rem;
	height: 2.25rem;
	border: 1px solid var(--oye-linje);
	border-radius: 50%;
	font-family: source-sans-pro, sans-serif;
	font-size: 1rem;
	color: var(--oye-dempet);
}

/* Spørsmålene under en del er mindre enn deloverskriften. */
.oye-booking .gform_wrapper.oye-booking_wrapper .gfield_label,
.oye-booking .gform_wrapper.oye-booking_wrapper legend.gfield_label {
	font-size: 1.75rem !important;
}

@media (max-width: 600px) {
	.oye-booking .gform_wrapper.oye-booking_wrapper .gsection_title {
		font-size: 1.95rem !important;
	}
	.oye-booking .gform_wrapper.oye-booking_wrapper .gfield_label,
	.oye-booking .gform_wrapper.oye-booking_wrapper legend.gfield_label {
		font-size: 1.5rem !important;
	}
}

/* ---------------------------------------------------------------------------
 * Radioknapper som knapper (kategori, butikk, når, tid på dagen)
 * ------------------------------------------------------------------------- */

.oye-booking .gform_wrapper.oye-booking_wrapper .oye-knapper .gfield_radio,
.oye-booking .gform_wrapper.oye-booking_wrapper .oye-knapper .gfield_checkbox,
.oye-booking .gform_wrapper.oye-booking_wrapper .oye-liste .gfield_radio {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .oye-knapper .gchoice,
.oye-booking .gform_wrapper.oye-booking_wrapper .oye-liste .gchoice {
	position: relative;
	display: flex;
	margin: 0;
	padding: 0;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .oye-knapper input[type="radio"],
.oye-booking .gform_wrapper.oye-booking_wrapper .oye-knapper input[type="checkbox"],
.oye-booking .gform_wrapper.oye-booking_wrapper .oye-liste input[type="radio"] {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
	margin: 0;
	pointer-events: none;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .oye-knapper label {
	display: flex !important;
	flex-direction: column;
	justify-content: center;
	max-width: none;
	margin: 0;
	padding: 0.6rem 1.15rem;
	border: 2px solid var(--oye-linje);
	border-top-right-radius: 20px;
	color: var(--oye-tekst);
	font-size: 1.05rem;
	font-weight: 400;
	line-height: 1.3;
	cursor: pointer;
	transition: background-color 0.15s, border-color 0.15s, color 0.15s;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .oye-knapper label small {
	font-size: 0.8rem;
	font-weight: 400;
	color: var(--oye-dempet);
}

.oye-booking .gform_wrapper.oye-booking_wrapper .oye-knapper label:hover {
	border-color: var(--oye-aksent);
}

.oye-booking .gform_wrapper.oye-booking_wrapper .oye-knapper input:checked + label,
.oye-booking .gform_wrapper.oye-booking_wrapper .oye-knapper input:checked + label:hover {
	background: var(--oye-tekst);
	border-color: var(--oye-tekst);
	color: var(--oye-mork);
}

.oye-booking .gform_wrapper.oye-booking_wrapper .oye-knapper input:checked + label small {
	color: rgba(29, 29, 27, 0.7);
}

.oye-booking .gform_wrapper.oye-booking_wrapper .oye-knapper input:focus-visible + label,
.oye-booking .gform_wrapper.oye-booking_wrapper .oye-liste input:focus-visible + label {
	outline: 3px solid var(--oye-aksent);
	outline-offset: 2px;
}

/* Butikkene: kortet ligger på valget, ikke på <label>, fordi kartlenken
 * må kunne klikkes uten å velge butikken. */
.oye-booking .gform_wrapper.oye-booking_wrapper .oye-knapper--store .gfield_radio {
	gap: 0.75rem;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .oye-knapper--store .gchoice {
	flex: 1 1 15rem;
	flex-direction: column;
	border: 2px solid var(--oye-linje);
	border-top-right-radius: 20px;
	transition: background-color 0.15s, border-color 0.15s, color 0.15s;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .oye-knapper--store .gchoice:hover {
	border-color: var(--oye-aksent);
}

.oye-booking .gform_wrapper.oye-booking_wrapper .oye-knapper--store .gchoice:has(input:checked) {
	background: var(--oye-tekst);
	border-color: var(--oye-tekst);
	color: var(--oye-mork);
}

.oye-booking .gform_wrapper.oye-booking_wrapper .oye-knapper--store label {
	width: 100%;
	padding: 0.9rem 1.15rem 0.75rem;
	border: 0;
	border-radius: 0;
	color: inherit;
	gap: 0.6rem;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .oye-knapper--store label:hover,
.oye-booking .gform_wrapper.oye-booking_wrapper .oye-knapper--store input:checked + label {
	background: none;
	border: 0;
	color: inherit;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .oye-knapper--store input:focus-visible + label {
	outline: none;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .oye-knapper--store .gchoice:has(input:focus-visible) {
	outline: 3px solid var(--oye-aksent);
	outline-offset: 2px;
}

.oye-butikk__navn {
	font-size: 1.15rem;
	line-height: 1.3;
}

.oye-butikk__tider {
	display: grid;
	gap: 0.15rem;
	font-size: 0.9rem;
	color: var(--oye-dempet);
}

.oye-knapper--store .gchoice:has(input:checked) .oye-butikk__tider {
	color: rgba(29, 29, 27, 0.7);
}

.oye-butikk__rad {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	font-variant-numeric: tabular-nums;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .oye-butikk__kart {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0 1.15rem 0.9rem;
	color: inherit;
	font-size: 0.9rem;
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .oye-butikk__kart::after {
	content: "";
	width: 0.7em;
	height: 0.7em;
	border: 1.5px solid currentColor;
	border-left-width: 0;
	border-bottom-width: 0;
	transform: rotate(45deg);
	margin-bottom: 0.15em;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .oye-butikk__kart:hover {
	text-decoration-thickness: 2px;
}

/* «Alle tider passer» ligger i samme rad som klokkeslettene, men trenger
 * bredden til to ruter for at teksten skal få plass. */
.oye-booking .gform_wrapper.oye-booking_wrapper .oye-tider .gchoice:has(input[value="alle"]) {
	grid-column: span 2;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .oye-tider .gchoice:has(input[value="alle"]) label {
	white-space: nowrap;
	padding-left: 0.6rem;
	padding-right: 0.6rem;
	font-size: 1rem;
}

@media (max-width: 700px) {
	.oye-booking .gform_wrapper.oye-booking_wrapper .oye-tider .gchoice:has(input[value="alle"]) {
		grid-column: span 3;
	}
}

/* Klokkeslett i rutenett. */
.oye-booking .gform_wrapper.oye-booking_wrapper .oye-tider .gfield_checkbox {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(4.4rem, 1fr));
	gap: 0.5rem;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .oye-tider .gchoice[hidden] {
	display: none !important;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .oye-tider label {
	width: 100%;
	align-items: center;
	padding: 0.55rem 0.5rem;
	font-variant-numeric: tabular-nums;
}

.oye-tider__status {
	margin: 0.75rem 0 0;
	font-size: 0.95rem;
	color: var(--oye-dempet);
}

/* «Jeg kan bare disse tidene»: for kunder som bare passer én eller to tider. */
.oye-booking .oye-tider__videre {
	margin: 0.6rem 0 0;
	padding: 0;
	border: 0;
	background: none;
	color: var(--oye-tekst);
	font-family: inherit;
	font-size: 0.95rem;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

.oye-booking .oye-tider__videre:hover {
	color: var(--oye-aksent, var(--oye-mork));
}

.oye-booking .oye-tider__videre[hidden] {
	display: none;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .oye-tider .gfield_description {
	margin-top: 1rem;
	padding: 0.85rem 1.1rem;
	background: var(--oye-flate);
	border-left: 3px solid var(--oye-aksent);
	color: var(--oye-tekst);
	font-size: 1.05rem;
	line-height: 1.45;
}

/* ---------------------------------------------------------------------------
 * Tjenesteliste: én linje per tjeneste, pris til høyre
 * ------------------------------------------------------------------------- */

.oye-booking .gform_wrapper.oye-booking_wrapper .oye-liste .gfield_radio {
	flex-direction: column;
	gap: 0;
	border-top: 1px solid var(--oye-linje);
}

.oye-booking .gform_wrapper.oye-booking_wrapper .oye-liste .gchoice {
	border-bottom: 1px solid var(--oye-linje);
}

.oye-booking .gform_wrapper.oye-booking_wrapper .oye-liste label {
	display: flex !important;
	align-items: center;
	gap: 1rem;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0.8rem 0.75rem 0.8rem 2.6rem;
	position: relative;
	color: var(--oye-tekst);
	font-size: 1.05rem;
	line-height: 1.3;
	cursor: pointer;
	transition: background-color 0.15s;
}

/* Egen radiosirkel, siden temaet overstyrer den innebygde. */
.oye-booking .gform_wrapper.oye-booking_wrapper .oye-liste label::before {
	content: "";
	position: absolute;
	left: 0.75rem;
	top: 50%;
	width: 1.1rem;
	height: 1.1rem;
	margin-top: -0.55rem;
	border: 2px solid var(--oye-dempet);
	border-radius: 50%;
	box-sizing: border-box;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .oye-liste label:hover {
	background: rgba(255, 255, 255, 0.06);
}

.oye-booking .gform_wrapper.oye-booking_wrapper .oye-liste input:checked + label {
	background: rgba(255, 255, 255, 0.1);
}

.oye-booking .gform_wrapper.oye-booking_wrapper .oye-liste input:checked + label::before {
	border-color: var(--oye-tekst);
	background: radial-gradient(circle, var(--oye-tekst) 0 0.28rem, transparent 0.3rem);
}

.oye-rad__navn {
	flex: 1;
	font-size: 1.15rem;
	font-weight: 400;
}

.oye-rad__navn small {
	display: block;
	margin-top: 0.15rem;
	font-size: 0.9rem;
	font-weight: 400;
	color: var(--oye-dempet);
}

.oye-rad__varianter {
	display: block;
	margin-top: 0.5rem;
}

.oye-rad__variant {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.2rem 0;
	font-size: 0.95rem;
	font-variant-numeric: tabular-nums;
}

.oye-rad__variant > span:first-child {
	color: var(--oye-dempet);
}

.oye-rad__variant > span:last-child {
	flex: none;
	white-space: nowrap;
}

.oye-rad__pris {
	flex: none;
	font-size: 1rem;
	font-weight: 400;
	color: var(--oye-tekst);
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

@media (max-width: 480px) {
	.oye-booking .gform_wrapper.oye-booking_wrapper .oye-liste label {
		flex-wrap: wrap;
		gap: 0.2rem 1rem;
	}
	.oye-rad__pris {
		flex-basis: 100%;
	}
}

/* ---------------------------------------------------------------------------
 * Datofelt og kalender
 * ------------------------------------------------------------------------- */

.oye-booking .gform_wrapper.oye-booking_wrapper .oye-dato {
	max-width: 340px;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .oye-dato .ginput_container_date {
	position: relative;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .oye-dato input.datepicker {
	padding-right: 3rem !important;
	cursor: pointer;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .oye-dato .gform-datepicker-toggle {
	position: absolute;
	top: 0;
	right: 0;
	width: 3rem;
	height: 100%;
	margin: 0;
	padding: 0;
	background: none;
	border: 0;
	color: #775451;
	cursor: pointer;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .oye-dato .gform-datepicker-toggle .dashicons {
	width: 22px;
	height: 22px;
	font-size: 22px;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .gform-datepicker-calendar.oye-kalender {
	position: absolute !important;
	top: calc(100% + 0.5rem) !important;
	left: 0 !important;
	z-index: 100;
	width: 340px;
	max-width: 100%;
	margin: 0;
	padding: 1rem 1rem 1.1rem;
	background: #FFFFFF;
	border: 0;
	border-radius: 0;
	border-top-right-radius: 30px;
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.4);
	color: #1D1D1B;
	font-family: source-sans-pro, sans-serif;
	font-size: 16px;
}

.oye-booking .gravity-theme .oye-kalender table.calendar {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	table-layout: fixed;
	background: none;
}

.oye-booking .gravity-theme .oye-kalender tr,
.oye-booking .gravity-theme .oye-kalender td,
.oye-booking .gravity-theme .oye-kalender th {
	border: 0 !important;
	background: none !important;
	box-shadow: none !important;
	padding: 0 !important;
	text-align: center;
	vertical-align: middle;
	line-height: 1 !important;
	font-size: 16px !important;
	height: auto !important;
	width: auto !important;
}

/* Gravity Forms tegner egne piler; vi bruker våre. */
.oye-booking .gravity-theme .gform-datepicker-calendar.oye-kalender table.calendar td.nav::before,
.oye-booking .gravity-theme .gform-datepicker-calendar.oye-kalender table.calendar td.nav::after {
	content: none !important;
	display: none !important;
}

.oye-booking .gravity-theme .gform-datepicker-calendar.oye-kalender table.calendar td.nav.btn.disabled span {
	visibility: hidden;
}

/* Årsvelger skjules: man kan bare velge et halvt år frem. */
.oye-booking .gravity-theme .gform-datepicker-calendar.oye-kalender table.calendar tr.yearSelector,
.oye-booking .gravity-theme .oye-kalender tr.yearSelector {
	display: none !important;
}

.oye-booking .gravity-theme .oye-kalender tr.monthSelector td {
	height: 2.75rem !important;
	padding-bottom: 0.25rem !important;
}

.oye-booking .gravity-theme .oye-kalender tr.monthSelector td.month:not(.nav) {
	text-align: center !important;
}

.oye-booking .gravity-theme .oye-kalender tr.monthSelector td.month:not(.nav) span {
	display: flex !important;
	justify-content: center !important;
	width: 100% !important;
	text-align: center !important;
	font-family: meno-banner, serif;
	font-size: 1.4rem;
	font-weight: 400;
	color: #1D1D1B !important;
}

.oye-booking .gravity-theme .oye-kalender td.nav.btn {
	cursor: pointer;
}

.oye-booking .gravity-theme .oye-kalender td.nav.btn span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.25rem;
	height: 2.25rem;
	border-radius: 50%;
	font-size: 0 !important;
	color: #1D1D1B;
}

.oye-booking .gravity-theme .oye-kalender td.nav.btn span::before {
	content: "";
	width: 0.55rem;
	height: 0.55rem;
	border-left: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: translateX(2px) rotate(45deg);
}

.oye-booking .gravity-theme .oye-kalender td.nav.next span::before {
	transform: translateX(-2px) rotate(-135deg);
}

.oye-booking .gravity-theme .oye-kalender td.nav.btn:not(.disabled):hover span,
.oye-booking .gravity-theme .oye-kalender td.nav.btn:not(.disabled):focus span {
	background: #F1E8E7;
}

.oye-booking .gravity-theme .oye-kalender td.nav.btn.disabled {
	cursor: default;
}



.oye-booking .gravity-theme .oye-kalender th.week {
	height: 2rem !important;
}

.oye-booking .gravity-theme .oye-kalender th.week span {
	font-size: 0.75rem;
	font-weight: 400;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #775451 !important;
}

.oye-booking .gravity-theme .oye-kalender td.day,
.oye-booking .gravity-theme .oye-kalender td.empty {
	height: 2.6rem !important;
}

.oye-booking .gravity-theme .oye-kalender .monthMessage {
	display: none !important;
}

.oye-booking .gravity-theme .gform-datepicker-calendar.oye-kalender table.calendar td span {
	border: 0 !important;
	box-shadow: none !important;
}

.oye-booking .gravity-theme .gform-datepicker-calendar.oye-kalender table.calendar td.day.disabled span {
	background: none !important;
}

.oye-booking .gravity-theme .oye-kalender td.day span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.4rem;
	height: 2.4rem;
	border: 0;
	border-radius: 50%;
	background: none;
	font-size: 1.05rem;
	font-weight: 400;
	color: #1D1D1B !important;
	cursor: pointer;
	transition: background-color 0.12s;
}

.oye-booking .gravity-theme .oye-kalender td.day:not(.disabled):hover span {
	background: #F1E8E7;
}

.oye-booking .gravity-theme .oye-kalender td.day:not(.disabled):focus {
	outline: none;
}

.oye-booking .gravity-theme .oye-kalender td.day:not(.disabled):focus span {
	box-shadow: 0 0 0 2px #C0A5A3 !important;
}

.oye-booking .gravity-theme .oye-kalender td.day.disabled span {
	background: none !important;
	color: rgba(29, 29, 27, 0.25) !important;
	font-weight: 400;
	cursor: default;
}

/* Markøren (tastatur/første mulige dag) vises som ring; hover fyller. */
.oye-booking .gravity-theme .gform-datepicker-calendar.oye-kalender table.calendar td.day.dayMarked:not(.disabled) span {
	box-shadow: inset 0 0 0 1.5px #775451 !important;
}

.oye-booking .gravity-theme .gform-datepicker-calendar.oye-kalender table.calendar td.day:not(.disabled):hover span {
	background: #4B3533 !important;
	color: #FFFFFF !important;
}

/* ---------------------------------------------------------------------------
 * Oppsummering (siste steg)
 * ------------------------------------------------------------------------- */

/* Lys flate, så oppsummeringen skiller seg ut fra resten av skjemaet. */
.oye-booking .oye-oppsummering {
	padding: 1.5rem 1.75rem;
	background: #C0A5A3;
	border-radius: 12px;
	border-top-right-radius: var(--oye-hjorne);
	color: var(--oye-mork);
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18);
}

.oye-booking .oye-oppsummering__tittel {
	margin: 0 0 1.1rem;
	padding-bottom: 0.9rem;
	border-bottom: 1px solid rgba(29, 29, 27, 0.2);
	font-family: meno-banner, serif;
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.2;
	color: var(--oye-mork);
}

.oye-booking .oye-oppsummering dl {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 0;
	margin: 0;
}

/* Én opplysning per rad: etikett til venstre, verdi til høyre. */
.oye-booking .oye-oppsummering dl > div {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem 1.5rem;
	flex-wrap: wrap;
	padding: 0.7rem 0;
	border-top: 1px solid rgba(29, 29, 27, 0.16);
}

.oye-booking .oye-oppsummering dl > div.er-forst {
	padding-top: 0;
	border-top: 0;
}

.oye-booking .oye-oppsummering dl > div:last-child {
	padding-bottom: 0;
}

.oye-oppsummering dt {
	margin: 0;
	flex: none;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(29, 29, 27, 0.62);
}

.oye-oppsummering dd {
	margin: 0;
	flex: 1 1 auto;
	min-width: 0;
	text-align: right;
	font-size: 1.05rem;
	line-height: 1.35;
	color: var(--oye-mork);
	font-variant-numeric: tabular-nums;
}

.oye-oppsummering [data-oye-merknad] {
	margin: 1.25rem 0 0;
	padding-top: 0.9rem;
	border-top: 1px solid rgba(29, 29, 27, 0.2);
	font-size: 0.9rem;
	line-height: 1.45;
	color: rgba(29, 29, 27, 0.75);
}

/* ---------------------------------------------------------------------------
 * Samtykke
 * ------------------------------------------------------------------------- */

.oye-booking .gform_wrapper.oye-booking_wrapper .ginput_container_consent {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .ginput_container_consent input[type="checkbox"] {
	flex: none;
	appearance: none;
	-webkit-appearance: none;
	display: inline-grid;
	place-content: center;
	width: 1.35rem;
	height: 1.35rem;
	margin: 0.1rem 0 0;
	padding: 0;
	background: #FFFFFF !important;
	background-image: none !important;
	border: 1px solid transparent;
	border-radius: 5px;
	box-shadow: none !important;
	cursor: pointer;
}

/* Gravity Forms tegner sin egen hake med et ikon i ::before – vi bruker vår. */
.oye-booking .gform_wrapper.oye-booking_wrapper .ginput_container_consent input[type="checkbox"]::before {
	content: none !important;
	display: none !important;
}

/* Hake i mørk farge på hvit boks. */
.oye-booking .gform_wrapper.oye-booking_wrapper .ginput_container_consent input[type="checkbox"]::after {
	content: "";
	width: 0.3rem;
	height: 0.6rem;
	margin-top: -0.12rem;
	border: solid var(--oye-mork);
	border-width: 0 2px 2px 0;
	transform: rotate(45deg) scale(0);
	transition: transform 0.12s;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .ginput_container_consent input[type="checkbox"]:checked::after {
	transform: rotate(45deg) scale(1);
}

.oye-booking .gform_wrapper.oye-booking_wrapper .ginput_container_consent input[type="checkbox"]:hover {
	box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.12);
}

.oye-booking .gform_wrapper.oye-booking_wrapper .ginput_container_consent input[type="checkbox"]:focus-visible {
	outline: 3px solid var(--oye-aksent);
	outline-offset: 2px;
}

.oye-booking .gform_wrapper.oye-booking_wrapper label.gfield_consent_label {
	color: var(--oye-tekst);
	font-size: 1rem;
	line-height: 1.45;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .gfield_consent_label a {
	color: var(--oye-tekst);
	text-decoration: underline;
}

/* ---------------------------------------------------------------------------
 * Knapper
 * ------------------------------------------------------------------------- */

.oye-booking .gform_wrapper.oye-booking_wrapper .gform_footer {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 1rem;
	padding-top: 2.25rem !important;
	padding-bottom: 0;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .gform_page_footer .gform_next_button,
.oye-booking .gform_wrapper.oye-booking_wrapper .gform_page_footer input[type="submit"],
.oye-booking .gform_wrapper.oye-booking_wrapper .gform_page_footer .gform_button {
	margin-left: auto !important;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .gform_page_footer .button,
.oye-booking .gform_wrapper.oye-booking_wrapper .gform_footer .button,
.oye-booking .gform_wrapper.oye-booking_wrapper input[type="submit"] {
	min-width: 10rem;
	margin: 0;
	padding: 0.85rem 2rem;
	background: var(--oye-tekst);
	border: 2px solid var(--oye-tekst);
	border-radius: 0;
	border-top-right-radius: var(--oye-hjorne);
	color: var(--oye-mork) !important;
	font-family: source-sans-pro, sans-serif;
	font-size: 1.05rem !important;
	font-weight: 400;
	line-height: 1.2;
	cursor: pointer;
	transition: background-color 0.15s, border-color 0.15s, color 0.15s;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .gform_page_footer .button:hover,
.oye-booking .gform_wrapper.oye-booking_wrapper input[type="submit"]:hover {
	background: var(--oye-aksent);
	border-color: var(--oye-aksent);
}

.oye-booking .gform_wrapper.oye-booking_wrapper .gform_page_footer .gform_previous_button {
	min-width: 0;
	padding-left: 1.25rem;
	padding-right: 1.25rem;
	background: transparent !important;
	border-color: var(--oye-linje);
	color: var(--oye-tekst) !important;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .gform_page_footer .gform_previous_button:hover {
	border-color: var(--oye-tekst);
}

/* ---------------------------------------------------------------------------
 * Feilmeldinger
 * ------------------------------------------------------------------------- */

.oye-booking .gform_wrapper.oye-booking_wrapper .gform_validation_errors {
	position: static !important;
	margin: 0 0 1.75rem;
	padding: 0.9rem 1.25rem;
	background: rgba(0, 0, 0, 0.18);
	border: 0 !important;
	border-left: 3px solid #F2B8B5 !important;
	border-radius: 0;
	box-shadow: none !important;
	outline: none !important;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .gform_validation_errors h2 {
	margin: 0;
	color: var(--oye-tekst);
	font-family: source-sans-pro, sans-serif !important;
	font-size: 1rem;
	font-weight: 400;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .gform_validation_errors h2 .gform-icon {
	display: none;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .gfield_error .gfield_label,
.oye-booking .gform_wrapper.oye-booking_wrapper .gfield_error legend {
	color: var(--oye-tekst) !important;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .gfield_error input:not([type="radio"]):not([type="checkbox"]),
.oye-booking .gform_wrapper.oye-booking_wrapper .gfield_error textarea {
	border-color: #F2B8B5 !important;
}

.oye-booking .gform_wrapper.oye-booking_wrapper .gfield_error .oye-knapper label,
.oye-booking .gform_wrapper.oye-booking_wrapper .gfield_error.oye-knapper label {
	border-color: rgba(242, 184, 181, 0.6);
}

.oye-booking .gform_wrapper.oye-booking_wrapper .gfield_validation_message,
.oye-booking .gform_wrapper.oye-booking_wrapper .validation_message {
	margin-top: 0.5rem;
	padding: 0;
	background: none;
	border: 0;
	color: #F2B8B5;
	font-size: 0.95rem;
	font-weight: 400;
}

/* ---------------------------------------------------------------------------
 * Bekreftelse
 * ------------------------------------------------------------------------- */

.oye-booking .gform_confirmation_message,
.oye-booking .oye-bekreftelse {
	color: var(--oye-tekst) !important;
	font-size: 1.2rem;
	line-height: 1.55;
}

.oye-bekreftelse strong {
	font-weight: 400;
	color: var(--oye-tekst);
	text-decoration: underline;
	text-decoration-color: var(--oye-aksent);
	text-underline-offset: 0.2em;
}

.oye-bekreftelse__tittel {
	font-family: meno-banner, serif;
	font-size: 2.5rem;
	line-height: 1.15;
	margin: 0 0 1rem;
}

.oye-bekreftelse p:last-child {
	margin-bottom: 0;
	font-size: 1rem;
	color: var(--oye-dempet);
}

/* ---------------------------------------------------------------------------
 * Seksjoner på siden
 * ------------------------------------------------------------------------- */

.l-section.oye-booking-seksjon {
	background: #4B3533;
	padding-top: 4rem;
	padding-bottom: 5rem;
}

.l-section.oye-priser-seksjon {
	background: #3F2C2A;
}

.l-section.oye-priser-seksjon .l-section-h {
	max-width: calc(780px + 2 * var(--site-content-width-padding, 2.5rem));
}

.l-section.oye-priser-seksjon h2 {
	font-size: 2.25rem;
}

/* ---------------------------------------------------------------------------
 * Prisliste
 * ------------------------------------------------------------------------- */

.oye-prisliste {
	display: grid;
	gap: 0.75rem;
}

.oye-prisliste__kategori {
	background: #5A403D;
}

.oye-prisliste__kategori:first-child {
	border-top-right-radius: 48px;
}

.oye-prisliste .oye-prisliste__tittel {
	margin: 0;
	border-radius: 0;
	font-weight: 400;
	text-align: left;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	padding: 1.4rem 2.5rem;
	cursor: pointer;
	list-style: none;
	color: var(--oye-tekst);
}

.oye-prisliste__tittel::-webkit-details-marker {
	display: none;
}

.oye-prisliste .oye-prisliste__tittel::before {
	content: none;
}

.oye-prisliste .oye-prisliste__kategori[open] > .oye-prisliste__tittel {
	margin-bottom: 0;
}

.oye-prisliste__tittel h3 {
	margin: 0;
	font-family: meno-banner, serif;
	font-size: 1.6rem;
	line-height: 1.2;
	color: var(--oye-tekst);
}

.oye-prisliste__ikon {
	position: relative;
	flex: none;
	width: 18px;
	height: 18px;
}

.oye-prisliste__ikon::before,
.oye-prisliste__ikon::after {
	content: "";
	position: absolute;
	left: 0;
	top: 8px;
	width: 18px;
	height: 2px;
	background: currentColor;
	transition: transform 0.2s;
}

.oye-prisliste__ikon::after {
	transform: rotate(90deg);
}

.oye-prisliste__kategori[open] .oye-prisliste__ikon::after {
	transform: rotate(0deg);
}

.oye-prisliste__liste {
	margin: 0 2.5rem;
	padding: 0.25rem 0 1.5rem;
	border-top: 1px solid var(--oye-linje);
	list-style: none;
}

.oye-prisliste__rad {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1.5rem;
	margin: 0;
	padding: 0.85rem 0;
	border-bottom: 1px solid var(--oye-linje);
	font-size: 1.15rem;
	line-height: 1.3;
}

.oye-prisliste__rad:last-child {
	border-bottom: 0;
}

.oye-prisliste__navn small {
	display: block;
	margin-top: 0.15rem;
	font-size: 0.9rem;
	font-weight: 400;
	color: var(--oye-dempet);
}

.oye-prisliste__pris {
	flex: none;
	font-size: 1rem;
	font-weight: 400;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}

@media (max-width: 600px) {
	.oye-prisliste__tittel {
		padding: 1.25rem;
	}
	.oye-prisliste__tittel h3 {
		font-size: 1.5rem;
	}
	.oye-prisliste__liste {
		margin: 0 1.25rem;
	}
	.oye-prisliste__rad {
		font-size: 1rem;
	}
}

/* ---------------------------------------------------------------------------
 * Åpningstider ([oye_apningstider])
 * ------------------------------------------------------------------------- */

.oye-apningstider {
	margin: 0;
	padding: 0;
	list-style: none;
	font-family: source-sans-pro, sans-serif;
	font-variant-numeric: tabular-nums;
}

.oye-apningstider__rad {
	display: flex;
	justify-content: space-between;
	gap: 1.5rem;
	margin: 0;
	padding: 0.2rem 0;
}

/* ---------------------------------------------------------------------------
 * Butikkort ([oye_butikker]) – samme uttrykk som butikkvalget i skjemaet
 * ------------------------------------------------------------------------- */

.oye-butikker {
	--oye-aksent: #C0A5A3;
	--oye-linje: rgba(255, 255, 255, 0.22);
	--oye-tekst: #FFFFFF;
	--oye-dempet: rgba(255, 255, 255, 0.72);
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr));
	gap: 0.75rem;
	max-width: 780px;
	margin: 0 auto;
	font-family: source-sans-pro, sans-serif;
	color: var(--oye-tekst);
	-webkit-font-smoothing: antialiased;
}

.oye-butikkort {
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
	padding: 0.9rem 1.15rem;
	background: none;
	border: 2px solid var(--oye-linje);
	border-top-right-radius: 20px;
}

.oye-butikkort__navn {
	margin: 0;
	font-family: source-sans-pro, sans-serif;
	font-size: 1.35rem;
	font-weight: 400;
	line-height: 1.3;
	color: var(--oye-tekst);
}

.oye-butikkort .oye-apningstider {
	font-size: 1.05rem;
	color: var(--oye-dempet);
}

.oye-butikkort .oye-apningstider__rad {
	padding: 0.15rem 0;
}

/* Telefon, e-post og kart – én per linje. */
.oye-butikkort__lenker {
	display: grid;
	gap: 0.45rem;
	margin-top: 0.35rem;
	padding-top: 0.9rem;
	border-top: 1px solid var(--oye-linje);
	font-size: 1.05rem;
}

.oye-butikkort__lenker a {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	justify-self: start;
	color: var(--oye-tekst);
	text-decoration: underline;
	text-decoration-color: var(--oye-aksent);
	text-underline-offset: 0.2em;
}

.oye-butikkort__lenker a:hover {
	color: var(--oye-aksent);
}

.oye-butikkort__lenker .oye-ikon {
	flex: none;
	color: var(--oye-aksent);
}

/* Kartlenken er dempet – et tillegg, ikke hovedhandlingen. */
.oye-butikkort__kart {
	margin-top: 0.1rem;
	font-size: 0.95rem;
	color: var(--oye-dempet) !important;
	text-decoration-color: rgba(255, 255, 255, 0.3) !important;
}

.oye-butikkort__kart:hover {
	color: var(--oye-tekst) !important;
}

.oye-butikkort__kart .oye-ikon {
	color: inherit;
}

 * Kort inngang til timebestillingen ([oye_bestill_kort])
 * ------------------------------------------------------------------------- */

.oye-bestill-kort {
	font-family: source-sans-pro, sans-serif;
	color: var(--oye-mork, #1D1D1B);
}

.oye-bestill-kort__tittel {
	margin: 0 0 0.5rem;
	font-family: meno-banner, serif;
	font-size: clamp(1.8rem, 3vw, 2.5rem);
	font-weight: 600;
	line-height: 1.15;
}

.oye-bestill-kort__tekst {
	margin: 0 0 1.5rem;
	font-size: 1.05rem;
	line-height: 1.45;
	max-width: 46ch;
}

.oye-bestill-kort__liste {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
	gap: 1rem;
}

.oye-bestill-kort__valg {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	padding: 1.25rem 1.4rem 1.35rem;
	background: rgba(255, 255, 255, 0.55);
	border-radius: 12px;
	border-top-right-radius: 30px;
	color: inherit !important;
	text-decoration: none !important;
	transition: transform 0.2s cubic-bezier(0.2, 0.7, 0.3, 1), background 0.2s;
}

.oye-bestill-kort__valg:hover,
.oye-bestill-kort__valg:focus-visible {
	background: #FFFFFF;
	transform: translateY(-3px);
}

.oye-bestill-kort__navn {
	font-size: 1.2rem;
	line-height: 1.25;
}

.oye-bestill-kort__detalj {
	font-size: 0.9rem;
	line-height: 1.35;
	opacity: 0.7;
}

/* Prisen skyves ned, så kortene får lik høyde uansett tekstlengde. */
.oye-bestill-kort__pris {
	margin-top: auto;
	padding-top: 0.9rem;
	font-size: 1rem;
	font-variant-numeric: tabular-nums;
}

.oye-bestill-kort__pris::after {
	content: " →";
	white-space: nowrap;
}

.oye-bestill-kort__steg {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 0.75rem 2rem;
	margin: 1.75rem 0 0;
	padding: 0;
	list-style: none;
	counter-reset: oye-kortsteg;
}

.oye-bestill-kort__steg li {
	position: relative;
	margin: 0;
	padding-left: 2rem;
	font-size: 0.95rem;
	line-height: 1.4;
	opacity: 0.85;
}

.oye-bestill-kort__steg li::before {
	counter-increment: oye-kortsteg;
	content: counter(oye-kortsteg);
	position: absolute;
	left: 0;
	top: -0.05rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.4rem;
	height: 1.4rem;
	border: 1px solid rgba(29, 29, 27, 0.35);
	border-radius: 50%;
	font-size: 0.8rem;
}

@media (prefers-reduced-motion: reduce) {
	.oye-bestill-kort__valg {
		transition: none;
	}
}

/* ---------------------------------------------------------------------------
 * Hero på bestillingssiden
 * Bare /bestill-time/ – heroene på resten av nettstedet er urørt.
 * ------------------------------------------------------------------------- */

/* Heroen har ingen høyde fra sidebyggeren, så den får en fast høyde med
 * innholdet loddrett midtstilt. Temaet la 108 px på seksjonen og 65 px inni.
 * Lavere enn på de andre sidene, så skjemaet kommer tidlig i synsfeltet. */
.oye-bestill-time .l-section#hero {
	display: flex;
	align-items: center;
	min-height: 300px;
	padding-top: 2rem;
	padding-bottom: 2rem;
}

.oye-bestill-time .l-section#hero > .l-section-h {
	width: 100%;
	padding-top: 1rem;
	padding-bottom: 1rem;
}

@media (max-width: 767px) {
	.oye-bestill-time .l-section#hero {
		min-height: 200px;
	}
}

/* Valgt tilstand og send-knappen bruker tekstfargen som bakgrunn. På den lyse
 * seksjonen ville det blitt svart på svart, så de får merkefargen i stedet. */
.oye-booking-layout--uten-info .gform_wrapper.oye-booking_wrapper .oye-knapper:not(.oye-knapper--store) input:checked + label,
.oye-booking-layout--uten-info .gform_wrapper.oye-booking_wrapper .oye-knapper:not(.oye-knapper--store) input:checked + label:hover,
.oye-booking-layout--uten-info .gform_wrapper.oye-booking_wrapper .oye-knapper--store .gchoice:has(input:checked),
.oye-booking-layout--uten-info .gform_wrapper.oye-booking_wrapper input[type="submit"],
.oye-booking-layout--uten-info .gform_wrapper.oye-booking_wrapper .gform_footer .button {
	background: #4B3533;
	border-color: #4B3533;
	color: #FFFFFF !important;
}

.oye-booking-layout--uten-info .gform_wrapper.oye-booking_wrapper .oye-knapper:not(.oye-knapper--store) input:checked + label small,
.oye-booking-layout--uten-info .gform_wrapper.oye-booking_wrapper .oye-knapper--store .gchoice:has(input:checked) span {
	color: rgba(255, 255, 255, 0.75);
}

.oye-booking-layout--uten-info .gform_wrapper.oye-booking_wrapper input[type="submit"]:hover,
.oye-booking-layout--uten-info .gform_wrapper.oye-booking_wrapper .gform_footer .button:hover {
	background: #1D1D1B;
	border-color: #1D1D1B;
}

/* Avkryssingsruten over klokkeslettene ble en tung hvit firkant på lys
 * bakgrunn. Valgt tid vises med farge i stedet, som de andre valgene. */
.oye-booking-layout--uten-info .gform_wrapper.oye-booking_wrapper .oye-tider label::before {
	display: none;
}

.oye-booking-layout--uten-info .gform_wrapper.oye-booking_wrapper .oye-tider label {
	justify-content: center;
}

/* I en seksjon har siden allerede en overskrift, så de nummererte
 * deloverskriftene («1 Hva vil du bestille?») blir en gjentakelse. */
.oye-booking-layout--uten-info .gform_wrapper.oye-booking_wrapper .gsection {
	margin: 0;
	padding: 1.25rem 0 0;
	border-top: 1px solid var(--oye-linje);
}

.oye-booking-layout--uten-info .gform_wrapper.oye-booking_wrapper .gsection_title {
	display: none;
}

.oye-booking-layout--uten-info .gform_wrapper.oye-booking_wrapper .oye-del--1 {
	display: none !important;
}

/* Tydeligere kanter på valgene i den lyse seksjonen. */
.oye-booking-layout--uten-info .gform_wrapper.oye-booking_wrapper .oye-knapper:not(.oye-knapper--store) label,
.oye-booking-layout--uten-info .gform_wrapper.oye-booking_wrapper .oye-knapper--store .gchoice {
	border-color: rgba(29, 29, 27, 0.4);
}

.oye-booking-layout--uten-info .gform_wrapper.oye-booking_wrapper .oye-liste label {
	border-bottom-color: rgba(29, 29, 27, 0.25);
}

.oye-booking-layout--uten-info .gform_wrapper.oye-booking_wrapper .oye-liste input:checked + label {
	background: rgba(255, 255, 255, 0.55);
}

/* Butikkortene har den runde kanten på selve kortet, ikke på etiketten inni.
 * Fargen må derfor ligge på kortet, ellers stikker den utenfor hjørnet. */
.oye-booking-layout--uten-info .gform_wrapper.oye-booking_wrapper .oye-knapper--store input:checked + label,
.oye-booking-layout--uten-info .gform_wrapper.oye-booking_wrapper .oye-knapper--store label:hover {
	background: none;
}

/* Fargen på et valgt butikkort skal ligge på kortet, som har det runde hjørnet.
 * Etiketten inni må derfor være gjennomsiktig – også ved hover. */
.oye-booking-layout--uten-info .gform_wrapper.oye-booking_wrapper .oye-knapper--store label,
.oye-booking-layout--uten-info .gform_wrapper.oye-booking_wrapper .oye-knapper--store label:hover,
.oye-booking-layout--uten-info .gform_wrapper.oye-booking_wrapper .oye-knapper--store input:checked + label {
	background: transparent !important;
}

/* Tekstfeltene: tydeligere kant og mørkere hjelpetekst. */
.oye-booking-layout--uten-info .gform_wrapper.oye-booking_wrapper input:not([type="radio"]):not([type="checkbox"]):not([type="submit"]),
.oye-booking-layout--uten-info .gform_wrapper.oye-booking_wrapper textarea {
	border-color: rgba(29, 29, 27, 0.35);
}

.oye-booking-layout--uten-info .gform_wrapper.oye-booking_wrapper input::placeholder,
.oye-booking-layout--uten-info .gform_wrapper.oye-booking_wrapper textarea::placeholder {
	color: rgba(29, 29, 27, 0.6);
}

/* Oppsummeringen sto nesten i samme tone som seksjonen. */
.oye-booking-layout--uten-info .oye-oppsummering {
	background: #D6C3C1;
}

.oye-booking-layout--uten-info .oye-oppsummering dt {
	color: rgba(29, 29, 27, 0.8);
}

/* Beskrivelsene var satt i nesten hvitt for den mørke boksen. */
.oye-booking-layout--uten-info .gform_wrapper.oye-booking_wrapper .gfield_description,
.oye-booking-layout--uten-info .oye-tider__status,
.oye-booking-layout--uten-info .oye-feltfeil {
	color: #1D1D1B;
}

.oye-booking-layout--uten-info .oye-feltfeil {
	font-weight: 600;
}

/* Valgt tjeneste får en hel ramme med samme hjørne som resten av siden,
 * så raden ikke ser ut som en flate som flyter ut i listen. */
.oye-booking-layout--uten-info .gform_wrapper.oye-booking_wrapper .oye-liste .gchoice:has(input:checked) {
	border-bottom-color: transparent;
}

.oye-booking-layout--uten-info .gform_wrapper.oye-booking_wrapper .oye-liste input:checked + label {
	border: 1px solid rgba(29, 29, 27, 0.45);
	border-radius: 8px;
	border-top-right-radius: 20px;
}

/* Siste rad i listen har allerede en strek under, og delen etter har en over.
 * Det ga to streker rett over hverandre. */
.oye-booking-layout--uten-info .gform_wrapper.oye-booking_wrapper .oye-liste .gchoice:last-child {
	border-bottom: 0;
}

/* ---------------------------------------------------------------------------
 * «Bestill time» som knapp i menyen
 * ------------------------------------------------------------------------- */

/* Samme uttrykk som knappene ellers på siden (us-btn-style_1 med
 * small-top-right-radius): versaltekst og rundt hjørne oppe til høyre. Den mørkebrune
 * fargen forsvinner mot den svarte headeren, så knappen er rosa her. */
.w-nav-list .menu-item.oye-meny-knapp > .w-nav-anchor.level_1 {
	/* Menypunktene fyller hele headerhøyden; knappen skal stå midt i den. */
	align-self: center;
	height: auto;
	min-height: 0;
	margin-left: 1rem;
	/* Temaets menystil (.ush_menu_1) setter egen størrelse og luft på menypunktene. */
	/* Litt mer luft til høyre, der det runde hjørnet tar plass. */
	padding: 0.8em 1.4em 0.8em 1.1em !important;
	/* !important: på /bestill-time/ er knappen gjeldende side, og temaets stil
	 * for gjeldende menypunkt fjernet bakgrunnen (mørk tekst på mørk header). */
	background: #C0A5A3 !important;
	border-radius: 0;
	border-top-right-radius: 30px;
	color: #1D1D1B !important;
	font-size: 15px !important;
	font-weight: 600;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	transition: background 0.3s ease;
}

/* Temaets menyhover (.no-touch .ush_menu_1 .w-nav-item.level_1:hover > a) gjør
 * bakgrunnen gjennomsiktig og teksten hvit, og har høyere spesifisitet. */
.no-touch .w-nav-list .menu-item.oye-meny-knapp > .w-nav-anchor.level_1:hover,
.no-touch .w-nav-list .menu-item.oye-meny-knapp.opened > .w-nav-anchor.level_1,
.w-nav-list .menu-item.oye-meny-knapp > .w-nav-anchor.level_1:focus-visible {
	background: #A7817E !important;
	color: #1D1D1B !important;
}

/* Nettbutikk-ikonet: mindre og dempet, så det ikke konkurrerer med knappen.
 * Temaets regel (i databasen) gjelder også på live, så endringen avgrenses til
 * den nye menyen – «.ekstern» står etter megamenyene bare der.
 * Temaet plasserer ikonet absolutt på menypunktet; her flyttes det inn i
 * teksten, så det står på linje med ordet – både i headeren og i mobilmenyen. */
.w-nav-list .oye-megameny ~ .ekstern::after {
	display: none;
}

.w-nav-list .oye-megameny ~ .ekstern > .w-nav-anchor .w-nav-title::after {
	content: '\f35d';
	font-family: 'FontAwesome';
	font-weight: 900;
	font-size: 0.6em;
	margin-left: 0.5em;
	vertical-align: 0.15em;
	opacity: 0.55;
	transition: opacity 0.2s;
}

.w-nav-list .oye-megameny ~ .ekstern:hover > .w-nav-anchor .w-nav-title::after {
	opacity: 1;
}

/* Understreken temaet legger under menypunkter skal ikke vises på knappen. */
.w-nav-list .menu-item.oye-meny-knapp > .w-nav-anchor.level_1::before,
.w-nav-list .menu-item.oye-meny-knapp > .w-nav-anchor.level_1::after {
	display: none;
}

/* I mobilmenyen står punktene under hverandre, og knappen skal ikke strekke seg. */
.w-nav.type_mobile .menu-item.oye-meny-knapp > .w-nav-anchor,
.w-nav-list.layout_ver .menu-item.oye-meny-knapp > .w-nav-anchor {
	display: inline-flex;
	margin: 1.75rem 0 0 !important;
	font-family: source-sans-pro, sans-serif;
	line-height: 1.2 !important;
}

/* ---------------------------------------------------------------------------
 * Mobilmenyen (fullskjerm)
 * Bare når den nye menyen er i bruk: listen må ha en megameny i seg.
 * ------------------------------------------------------------------------- */

/* Temaet midtstiller punktene loddrett (margin-top: auto på det første), så
 * menyen hoppet når en del ble åpnet. Nå starter den øverst. */
.w-nav.type_mobile .w-nav-list.level_1:has(> .oye-megameny) {
	padding-top: 5.5rem !important;
	padding-bottom: 3rem !important;
}

.w-nav.type_mobile .w-nav-list.level_1:has(> .oye-megameny) > li:first-child {
	margin-top: 0 !important;
}

/* Lukkeknappen lå på 20 % av høyden inne i listen og ble dyttet ut av synet
 * når en del ble åpnet. Nå står den fast oppe til høyre. */
.w-nav.type_mobile .w-nav-list.level_1:has(> .oye-megameny) > .w-nav-close {
	position: fixed;
	top: calc(env(safe-area-inset-top, 0px) + 1rem);
	right: 1rem;
	width: 3rem;
	height: 3rem;
}

.w-nav.type_mobile .w-nav-list.level_1:has(> .oye-megameny) > .w-nav-close::before {
	font-size: 2.25rem;
	line-height: 3rem;
}

/* Tynne skillelinjer mellom hoveddelene, og pilen helt til høyre. */
.w-nav.type_mobile .w-nav-item.level_1.oye-megameny,
.w-nav.type_mobile .oye-megameny ~ .ekstern {
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.w-nav.type_mobile .oye-megameny > .w-nav-anchor.level_1 {
	font-size: 1.6rem;
}

.w-nav.type_mobile .oye-megameny > .w-nav-anchor.level_1 .w-nav-arrow {
	margin-left: auto;
}

/* Nivå 2 er kolonneoverskrifter på skrivebordet. På mobil blir de små
 * overskrifter, og lenkene under vises med en gang – ingen ekstra trykk. */
.w-nav.type_mobile .oye-megameny .w-nav-list.level_2 {
	padding: 0 0 1rem 0.7rem;
}

.w-nav.type_mobile .oye-megameny .w-nav-anchor.level_2 {
	padding: 0.9rem 0 0.35rem !important;
	font-family: source-sans-pro, sans-serif;
	font-size: 0.78rem !important;
	font-weight: 600;
	letter-spacing: 0.14em;
	line-height: 1.3 !important;
	text-transform: uppercase;
	color: #C0A5A3 !important;
	pointer-events: none;
}

.w-nav.type_mobile .oye-megameny .w-nav-item.level_2 > .w-nav-anchor .w-nav-arrow,
.w-nav.type_mobile .oye-megameny .w-nav-item.level_2 > .w-nav-item-toggle {
	display: none !important;
}

/* Temaet skjuler lukkede underlister med visibility: hidden. */
.w-nav.type_mobile .oye-megameny .w-nav-list.level_3,
.w-nav.type_mobile .oye-megameny .w-nav-list.level_3 > .w-nav-item {
	display: block !important;
	height: auto !important;
	opacity: 1 !important;
	visibility: visible !important;
	margin: 0 !important;
	padding: 0 !important;
}

.w-nav.type_mobile .oye-megameny .w-nav-anchor.level_3 {
	padding: 0.45rem 0 !important;
	font-family: source-sans-pro, sans-serif;
	font-size: 1.15rem !important;
	font-weight: 400 !important;
	line-height: 1.35 !important;
	color: #FFFFFF !important;
}

.w-nav.type_mobile .oye-megameny .current-menu-item > .w-nav-anchor.level_3 {
	color: #C0A5A3 !important;
}

/* ---------------------------------------------------------------------------
 * Megameny: nivå 2 blir kolonner, nivå 3 lenkene i hver kolonne.
 * Bare på store skjermer – på mobil brukes temaets eget trekkspill.
 * ------------------------------------------------------------------------- */

@media (min-width: 901px) {
	.w-nav-list.level_1 .oye-megameny > .w-nav-list.level_2 {
		display: flex !important;
		gap: 3rem;
		padding: 2rem 2.25rem 2.25rem;
		/* Samme farge som headeren, så panelet ser ut som en forlengelse av den. */
		background: var(--color-header-middle-bg, #1D1D1B);
		/* Panelet henger rett under headeren, så bare bunnen er rund. */
		border-radius: 0 0 14px 14px;
		box-shadow: 0 22px 48px rgba(0, 0, 0, 0.45);
		min-width: max-content;
	}

	/* Kolonnene skal ikke oppføre seg som menypunkter med eget nedtrekk. */
	.oye-megameny > .w-nav-list.level_2 > .w-nav-item.level_2 {
		position: static;
		min-width: 12rem;
	}

	.oye-megameny > .w-nav-list.level_2 > .w-nav-item.level_2 > .w-nav-anchor.level_2 {
		padding: 0 0 0.75rem;
		font-size: 0.78rem;
		font-weight: 600;
		letter-spacing: 0.14em;
		text-transform: uppercase;
		color: #C0A5A3 !important;
		pointer-events: none;
	}

	.oye-megameny .w-nav-arrow,
	.oye-megameny .w-nav-item-toggle {
		display: none !important;
	}

	/* Nivå 3 vises rett under kolonneoverskriften, ikke som eget nedtrekk. */
	.oye-megameny .w-nav-list.level_3 {
		display: flex !important;
		position: static !important;
		flex-direction: column;
		gap: 0.55rem;
		min-width: 0;
		padding: 0 !important;
		background: none !important;
		border: 0 !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		opacity: 1 !important;
		visibility: visible !important;
		transform: none !important;
	}

	.oye-megameny .w-nav-anchor.level_3 {
		padding: 0;
		font-size: 1.05rem;
		line-height: 1.35;
		color: #FFFFFF !important;
	}

	.oye-megameny .w-nav-anchor.level_3:hover {
		color: #C0A5A3 !important;
	}

	/* Lenkene i kolonnene skal være ren tekst, ikke menyrader med egen flate. */
	.oye-megameny .w-nav-item.level_3,
	.oye-megameny .w-nav-item.level_3 > .w-nav-anchor.level_3 {
		min-height: 0;
		background: none !important;
		border: 0;
		box-shadow: none;
	}

	.oye-megameny .w-nav-item.level_3 > .w-nav-anchor.level_3 {
		padding: 0.15rem 0;
	}
}

/* Knappen skal ha sin egen høyde, ikke hele headerens. */
.w-nav-list.level_1 > .menu-item.oye-meny-knapp > .w-nav-anchor.level_1 {
	height: auto !important;
	min-height: 0 !important;
	line-height: 1.2;
}
