/* Custom marketing overrides ported from the SvelteKit public site.
   The base look comes from Tabler's marketing CSS bundle (loaded in the layout);
   this file only adds the Simply Vida brand + per-section styling. */

:root {
	--tblr-primary: #32d7f6 !important;
	--tblr-primary-rgb: 50, 215, 246 !important;
	--tblr-primary-lt: #9ceaf9 !important;
	--tblr-primary-lt-rgb: 156, 234, 249 !important;
	--tblr-body-font-size: 1.03125rem !important;
	--tblr-font-size-h2: 1.375rem !important;
}

.btn-primary {
	--tblr-btn-color: #ffffff !important;
	--tblr-btn-hover-color: #000000 !important;
	--tblr-btn-active-color: #000000 !important;
	--tblr-btn-bg: #32d7f6 !important;
	--tblr-btn-hover-bg: #32d7f6 !important;
	--tblr-btn-active-bg: #32d7f6 !important;
}

.text-primary {
	color: #32d7f6 !important;
}

.btn-outline-primary {
	--tblr-btn-color: #17a9c6;
	--tblr-btn-border-color: #32d7f6;
}

.subheader {
	font-size: 1rem;
}

.bg-primary-lt {
	background-color: #9ceaf9 !important;
}

.public-site {
	min-height: 100vh;
}
.booking-page {
	max-width: 60rem;
}

/* Header / footer */
.brand-logo {
	display: block;
	width: auto;
	height: 2rem;
}
.footer-affiliations a {
	display: block;
	border-radius: var(--tblr-border-radius);
}
.affiliation-mark {
	display: block;
	width: 4rem;
	height: 4rem;
	object-fit: contain;
}
.footer-affiliations a:focus-visible {
	outline: 2px solid var(--tblr-primary);
	outline-offset: 3px;
}

/* Hero */
.hero-background {
	position: relative;
	min-height: 44rem;
	overflow: hidden;
	background: #fff;
}
.hero-background::before {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: 34%;
	background: var(--tblr-primary);
	content: '';
}
.hero-background .container {
	position: relative;
	z-index: 1;
}
.hero-content {
	max-width: 37rem;
}
.hero-subheader {
	margin-bottom: 1rem;
	font-weight: 700;
	letter-spacing: 0.08em;
}
.hero-content .hero-title {
	max-width: 11ch;
	font-size: clamp(3rem, 5vw, 5.25rem);
	line-height: 1.02;
}
.hero-description {
	max-width: 34rem;
	font-size: 1.125rem;
}
.hero-portrait {
	position: relative;
	max-width: 28rem;
	margin: 0 auto;
	padding: 1rem 1rem 0;
	background: #fff;
	box-shadow: 1.25rem 1.25rem 0 rgba(55, 65, 81, 0.12);
}
.hero-portrait img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: 58% center;
}
.hero-portrait-note {
	position: absolute;
	right: -2.75rem;
	bottom: 2rem;
	z-index: 1;
	padding: 0.65rem 0.9rem;
	background: #374151;
	color: #fff;
	text-decoration: none;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

/* About photo */
.about-photo-frame {
	width: 100%;
	aspect-ratio: 1 / 1;
	overflow: hidden;
}
.about-photo {
	width: 100%;
	height: auto;
}
.about-photo-frame .about-photo {
	width: 98%;
	max-width: none;
	margin-top: -5%;
	margin-left: -16%;
}
.education-item + .education-item {
	margin-top: 2rem;
}
.mentorship-image {
	width: 100%;
	height: auto;
}
.mentorship-fit-list {
	padding: 0;
	list-style: none;
}
.mentorship-fit-list li {
	position: relative;
	padding-left: 1.75rem;
}
.mentorship-fit-list li::before {
	content: '\2713';
	position: absolute;
	left: 0;
	font-weight: 700;
	color: var(--tblr-primary);
}
.mentorship-fit-list li + li {
	margin-top: 0.5rem;
}

/* Contact section */
.contact-shell {
	overflow: hidden;
	border: 1px solid var(--tblr-border-color);
	border-radius: var(--tblr-border-radius);
	background: var(--tblr-bg-surface);
}
.contact-visual {
	position: relative;
	overflow: hidden;
	background: var(--tblr-bg-surface-secondary);
	min-height: 20rem;
}
.contact-image {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
}
.contact-content {
	padding: 2rem;
}
@media (max-width: 767.98px) {
	.public-site .navbar-collapse {
		padding: 1rem 0;
	}
	.contact-image {
		position: static;
		height: auto;
		aspect-ratio: 1;
	}
	.contact-visual {
		min-height: 0;
	}
	.contact-content {
		padding: 1.5rem;
	}
}

/* Focus cards */
.focus-card {
	border-top: 3px solid var(--tblr-primary);
}
.focus-list li::marker {
	color: var(--tblr-primary);
}

/* Awards */
.award-list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1.25rem;
}
.award-mark {
	display: block;
	width: 9rem;
	height: 9rem;
	object-fit: contain;
}
.award-mark-tall {
	width: 6.5rem;
}
.award-mark-wide {
	width: 12rem;
}
.award-list-awards .award-mark {
	width: 14rem;
	height: 14rem;
}
.award-list-awards .award-mark-tall {
	width: 10rem;
}
.award-list-awards .award-mark-wide {
	width: 12rem;
}
.award-list-awards {
	justify-content: center;
	gap: 0.75rem;
}

@media (max-width: 767.98px) {
	.hero-background {
		min-height: 0;
		padding-top: 4rem !important;
		padding-bottom: 4rem !important;
	}
	.hero-background::before {
		top: auto;
		width: 100%;
		height: 20rem;
	}
	.hero-content .hero-title {
		font-size: 3rem;
	}
	.hero-portrait {
		max-width: 22rem;
		margin-top: 0.5rem;
	}
	.hero-portrait-note {
		right: -0.5rem;
	}
}

/* Cookie consent banner (parity with SvelteKit CookieConsent.svelte). */
.cookie-consent {
	position: fixed;
	bottom: 0;
	left: 0;
	z-index: 999;
	width: 100%;
	padding: 2em 1.4em;
	border-radius: 6px;
	background: rgb(255 255 255);
	box-shadow: 0 0 2em rgb(5 0 31 / 15%);
	backdrop-filter: blur(90px);
	-webkit-backdrop-filter: blur(90px);
	font-size: 14px;
	line-height: 1.8em;
	text-align: center;
}

.cookie-consent p {
	margin: 0 0 1rem;
}

/* Booking month-grid calendar (parity with SvelteKit BookingCalendar.svelte). */
.calendar-grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 0.25rem;
}
.calendar-head {
	text-align: center;
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--tblr-secondary, #6c757d);
	padding-bottom: 0.25rem;
}
.calendar-day {
	aspect-ratio: 1;
	border: 1px solid transparent;
	border-radius: 0.375rem;
	background: transparent;
	color: var(--tblr-secondary, #adb5bd);
	cursor: default;
}
.calendar-day.available {
	background: var(--tblr-primary-lt, #e7f0ff);
	color: var(--tblr-primary, #206bc4);
	font-weight: 600;
	cursor: pointer;
}
.calendar-day.available:hover {
	border-color: var(--tblr-primary, #206bc4);
}
.calendar-day.selected {
	background: var(--tblr-primary, #206bc4);
	color: #fff;
}
.calendar-day:disabled {
	cursor: not-allowed;
}

/* Contact form (parity with SvelteKit ContactForm.svelte scoped styles) */
.contact-form .form-control { min-height: 2.75rem; }
.contact-form textarea { resize: vertical; }
.contact-form .success-message,
.alert.success-message { flex-direction: column; gap: 0.5rem; }
.captcha-panel {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem;
	border: 1px solid var(--tblr-border-color);
	background: var(--tblr-bg-surface-secondary);
}
@media (max-width: 575.98px) {
	.captcha-panel { align-items: flex-start; flex-direction: column; }
}

/* 404 page (parity with SvelteKit (marketing)/+error.svelte scoped styles) */
.error-code {
        font-size: clamp(5rem, 16vw, 10rem);
        font-weight: 700;
        line-height: 0.85;
        letter-spacing: 0;
}
