/* ==========================================================================
   Partner Portal — All colors via CSS variables for dark/light theming
   ========================================================================== */

/* Partner page header: logo centered, nothing else */
.lw-header--partner .lw-header__inner {
	grid-template-columns: 1fr;
	grid-template-areas: "logo";
	justify-items: center;
}
.lw-header--partner .lw-header__right { display: none !important; }

/* Hide parent theme page title section — partner portal has its own hero */
.page-title-section:has(~ .mphb-gs-partner-portal),
.page-title-large:has(~ .mphb-gs-partner-portal),
.page-template-page-partner-availability .page-title-section,
.page-template-page-partner-availability .page-title-large { display: none !important; }

.mphb-gs-partner-portal {
	max-width: 1200px;
	margin: 0 auto;
	padding: 8px 24px 32px;
	font-family: var(--lw-font-body, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);
	color: var(--lw-white-80);
}

/* ---- Greeting ---- */

.mphb-gs-partner-greeting {
	font-size: 1.05rem;
	color: var(--lw-white-60);
	margin: 0 0 32px;
	line-height: 1.6;
}

.mphb-gs-partner-greeting strong {
	color: var(--lw-gold);
}

/* ---- Access Denied ---- */

.mphb-gs-partner-denied {
	max-width: 500px;
	margin: 80px auto;
	text-align: center;
	padding: 40px;
	color: var(--lw-white-80);
}

.mphb-gs-partner-denied h2 {
	color: var(--lw-error, #f87171);
	margin-bottom: 12px;
}

/* ---- Partner hero ---- */

.pp-hero {
	text-align: center;
	margin-bottom: 20px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--lw-white-08);
}

.pp-hero__eyebrow {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .15em;
	color: var(--lw-gold);
	margin: 0 0 8px;
}

.pp-hero__title {
	font-family: var(--lw-font-heading, Georgia, serif);
	font-size: clamp(1.6rem, 4vw, 2.2rem);
	font-weight: 400;
	color: var(--lw-white);
	margin: 0 0 4px;
}

.pp-hero__subtitle {
	font-size: 14px;
	color: var(--lw-white-45);
	margin: 0;
}

/* ---- Season commission cards ---- */

.mphb-gs-partner-seasons {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px;
	margin-bottom: 24px;
	max-width: 700px;
	margin-left: auto;
	margin-right: auto;
}

.mphb-gs-partner-season-card {
	background: var(--lw-card-bg);
	border: 1px solid var(--lw-card-border);
	border-radius: 10px;
	padding: 16px 14px;
	text-align: center;
}

.mphb-gs-partner-season-card__icon {
	font-size: 14px;
	color: var(--lw-gold);
	margin-bottom: 4px;
}

.mphb-gs-partner-season-card__label {
	font-size: 13px;
	font-weight: 600;
	color: var(--lw-white);
	margin-bottom: 4px;
}

.mphb-gs-partner-season-card__dates {
	font-size: 11px;
	color: var(--lw-white-45);
	line-height: 1.4;
	margin-bottom: 10px;
}

.mphb-gs-partner-season-card__rate {
	font-family: var(--lw-font-heading, Georgia, serif);
	font-size: 1.5rem;
	font-weight: 400;
	color: var(--lw-gold);
	line-height: 1;
}

.mphb-gs-partner-season-card__rate-label {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--lw-white-40);
	margin-top: 4px;
}

@media (max-width: 640px) {
	.mphb-gs-partner-seasons {
		grid-template-columns: 1fr;
	}
}

/* ---- Navigation ---- */

.mphb-gs-partner-nav {
	display: flex;
	gap: 4px;
	margin-bottom: 32px;
	border-bottom: 1px solid var(--lw-white-10);
	padding-bottom: 0;
}

.mphb-gs-partner-nav__btn {
	padding: 12px 20px;
	border: none;
	background: none;
	cursor: pointer;
	font-size: 14px;
	font-weight: 500;
	color: var(--lw-white-45);
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
	white-space: nowrap;
	transition: color .2s, border-color .2s;
	font-family: inherit;
	letter-spacing: .02em;
}

.mphb-gs-partner-nav__btn:hover {
	color: var(--lw-white-70);
}

.mphb-gs-partner-nav__btn.is-active {
	color: var(--lw-gold);
	border-bottom-color: var(--lw-gold);
	font-weight: 600;
}

/* ---- Panels ---- */

.mphb-gs-partner-panel {
	display: none !important;
	visibility: hidden;
	height: 0;
	overflow: hidden;
	position: absolute;
	pointer-events: none;
}

.mphb-gs-partner-panel.is-active {
	display: block !important;
	visibility: visible;
	height: auto;
	overflow: visible;
	position: static;
	pointer-events: auto;
}

/* ---- Sub-tabs (availability panel) ---- */

.pp-subtabs {
	display: flex;
	gap: 0;
	border-bottom: 1px solid var(--lw-white-08);
	margin-bottom: 24px;
}

.pp-subtab {
	padding: 10px 16px;
	border: none;
	background: none;
	cursor: pointer;
	font-size: 13px;
	font-weight: 500;
	color: var(--lw-white-40);
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
	white-space: nowrap;
	transition: color .2s, border-color .2s;
	font-family: inherit;
}

.pp-subtab:hover {
	color: var(--lw-white-70);
}

.pp-subtab.is-active {
	color: var(--lw-white);
	border-bottom-color: var(--lw-gold);
	font-weight: 600;
}

.pp-subpanel {
	display: none;
}

.pp-subpanel.is-active {
	display: block;
}

/* ---- Info block ---- */

.pd-info {
	background: var(--lw-gold-15);
	border-left: 3px solid var(--lw-gold);
	border-radius: 0 8px 8px 0;
	padding: 14px 20px;
	margin-bottom: 24px;
	font-size: 13px;
	line-height: 1.6;
	color: var(--lw-white-60);
}

.pd-info p {
	margin: 0;
}

/* ---- Commission rates table ---- */

.pd-rates {
	margin-bottom: 28px;
}

.pd-rates__title {
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: var(--lw-white-45);
	margin: 0 0 12px;
}

.pd-rates__table {
	width: 100%;
	max-width: 560px;
	border-collapse: collapse;
	font-size: 13px;
}

.pd-rates__table th {
	text-align: left;
	padding: 8px 12px;
	border-bottom: 1px solid var(--lw-white-10);
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--lw-white-40);
	font-weight: 600;
}

.pd-rates__table td {
	padding: 10px 12px;
	border-bottom: 1px solid var(--lw-white-08);
	color: var(--lw-white-80);
}

.pd-rates__table td strong {
	color: var(--lw-gold);
}

/* ---- Affiliate Dashboard (pd-*) ---- */

.pd-wrap {
	color: var(--lw-white-80);
}

.pd-cards {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	margin-bottom: 32px;
}

.pd-card {
	background: var(--lw-card-bg);
	border: 1px solid var(--lw-card-border);
	border-radius: 12px;
	padding: 20px;
	text-align: center;
}

.pd-card__value {
	font-size: 1.6rem;
	font-weight: 700;
	color: var(--lw-white);
}

.pd-card__label {
	font-size: 12px;
	color: var(--lw-white-45);
	margin-top: 4px;
	text-transform: uppercase;
	letter-spacing: .06em;
}

.pd-card--green .pd-card__value { color: var(--lw-success); }
.pd-card--orange .pd-card__value { color: var(--lw-gold); }

.pd-ref {
	background: var(--lw-card-bg);
	border: 1px solid var(--lw-card-border);
	border-radius: 10px;
	padding: 20px;
	margin-bottom: 32px;
}

.pd-ref__label {
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--lw-gold);
	margin: 0 0 10px;
}

.pd-ref__url {
	display: flex;
	gap: 8px;
	align-items: center;
}

.pd-ref__input,
.pd-ref__input[type="text"],
input.pd-ref__input {
	flex: 1;
	padding: 10px 14px;
	border: 1px solid var(--lw-white-15);
	border-radius: 6px;
	font-size: 13px;
	background: var(--lw-white-08) !important;
	color: var(--lw-white-80) !important;
	font-family: monospace;
	-webkit-appearance: none;
}

.pd-ref__btn {
	padding: 10px 18px;
	background: var(--lw-gold);
	color: var(--lw-navy-dark);
	border: none;
	border-radius: 6px;
	cursor: pointer;
	font-size: 13px;
	font-weight: 600;
	transition: opacity .2s;
}

.pd-ref__btn:hover {
	opacity: .85;
}

.pd-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 13px;
}

.pd-table th {
	text-align: left;
	padding: 10px 12px;
	border-bottom: 1px solid var(--lw-white-10);
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--lw-white-40);
	font-weight: 600;
}

.pd-table td {
	padding: 10px 12px;
	border-bottom: 1px solid var(--lw-white-08);
	color: var(--lw-white-80);
}

.pd-table tr:hover {
	background: var(--lw-white-08);
}

.pd-status {
	font-weight: 600;
	font-size: 11px;
	padding: 3px 10px;
	border-radius: 999px;
}

.pd-status--awaiting-payment { background: var(--lw-white-08); color: var(--lw-white-45); }
.pd-status--pending { background: var(--lw-warning-soft); color: var(--lw-warning); }
.pd-status--paid { background: var(--lw-success-soft); color: var(--lw-success); }
.pd-status--cancelled { background: var(--lw-error-soft); color: var(--lw-error); }

/* ---- Profile card (portal-style) ---- */

.pp-card {
	background: var(--lw-card-bg);
	border: 1px solid var(--lw-card-border);
	border-radius: 12px;
	overflow: hidden;
	max-width: 520px;
}

.pp-row {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 16px 20px;
	border-bottom: 1px solid var(--lw-white-08);
}

.pp-row--last {
	border-bottom: none;
}

.pp-row__icon {
	flex-shrink: 0;
	width: 36px;
	height: 36px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 8px;
	background: var(--lw-white-08);
	color: var(--lw-white-45);
}

.pp-row__content {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.pp-row__label {
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--lw-white-40);
}

.pp-row__value {
	font-size: 14px;
	color: var(--lw-white);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.pp-row__value--muted {
	color: var(--lw-white-40);
	font-style: italic;
	font-size: 13px;
}

.pp-row__edit {
	flex-shrink: 0;
	width: 28px;
	height: 28px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--lw-white-15);
	background: none;
	border-radius: 6px;
	color: var(--lw-white-45);
	cursor: pointer;
	font-size: 14px;
	transition: border-color .2s, color .2s;
}

.pp-row__edit:hover {
	border-color: var(--lw-gold);
	color: var(--lw-gold);
}

/* Toggle switch */
.pp-toggle {
	position: relative;
	display: inline-block;
	width: 42px;
	height: 24px;
	flex-shrink: 0;
	cursor: pointer;
}

.pp-toggle input {
	opacity: 0;
	width: 0;
	height: 0;
	position: absolute;
}

.pp-toggle__slider {
	position: absolute;
	inset: 0;
	border-radius: 24px;
	background: var(--lw-white-15);
	transition: background .2s;
}

.pp-toggle__slider::before {
	content: '';
	position: absolute;
	left: 3px;
	top: 3px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--lw-white);
	box-shadow: 0 1px 3px rgba(0,0,0,.3);
	transition: transform .2s;
}

.pp-toggle input:checked + .pp-toggle__slider {
	background: var(--lw-success);
}

.pp-toggle input:checked + .pp-toggle__slider::before {
	transform: translateX(18px);
}

.pp-toggle input:disabled + .pp-toggle__slider {
	opacity: .35;
	cursor: not-allowed;
}

/* Expandable edit form below row */
.pp-row__expand {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 0 20px 14px 70px;
	flex-wrap: wrap;
}

.pp-input {
	padding: 8px 12px;
	border: 1px solid var(--lw-white-15);
	border-radius: 6px;
	font-size: 13px;
	background: var(--lw-white-08) !important;
	color: var(--lw-white-80) !important;
	font-family: inherit;
	-webkit-appearance: none;
	flex: 1;
	min-width: 0;
}

.pp-btn {
	padding: 8px 16px;
	background: var(--lw-gold);
	color: var(--lw-navy-dark);
	border: none;
	border-radius: 6px;
	cursor: pointer;
	font-size: 13px;
	font-weight: 600;
	white-space: nowrap;
	transition: opacity .2s;
}

.pp-btn:hover {
	opacity: .85;
}

.pp-msg {
	font-size: 12px;
	display: none;
}

@media (max-width: 640px) {
	.pp-row {
		flex-wrap: wrap;
		gap: 10px;
	}
	.pp-row__expand {
		padding-left: 20px;
		flex-direction: column;
		align-items: stretch;
	}
}

/* ---- Villa Card ---- */

.mphb-gs-partner-villa {
	margin-bottom: 40px;
	padding-bottom: 32px;
	border-bottom: 1px solid var(--lw-white-08);
}

.mphb-gs-partner-villa:last-of-type {
	border-bottom: none;
}

.mphb-gs-partner-villa__header {
	display: flex;
	gap: 20px;
	margin-bottom: 20px;
}

.mphb-gs-partner-villa__img {
	width: 220px;
	height: 150px;
	object-fit: cover;
	border-radius: 10px;
	flex-shrink: 0;
}

.mphb-gs-partner-villa__info {
	flex: 1;
}

.mphb-gs-partner-villa__info h3 {
	margin: 0 0 8px;
	font-size: 1.2rem;
	font-weight: 600;
	color: var(--lw-white);
}

.mphb-gs-partner-villa__info h3 a {
	color: inherit !important;
	text-decoration: none;
}

.mphb-gs-partner-villa__specs {
	font-size: 13px;
	color: var(--lw-white-45);
	margin: 0;
	line-height: 1.6;
}

/* ---- Pricing cards override ---- */

.mphb-gs-partner-villa__pricing {
	margin-bottom: 12px;
}

.mphb-gs-partner-villa__pricing .cs-villa-pricing__cards {
	gap: 8px !important;
}

.mphb-gs-partner-villa__pricing .cs-villa-pricing__card {
	background: var(--lw-card-bg) !important;
	border-color: var(--lw-card-border) !important;
	color: var(--lw-white-80) !important;
	padding: 14px 12px !important;
}

.mphb-gs-partner-villa__pricing .cs-villa-pricing__card-amount {
	font-size: 1.3rem !important;
}

.mphb-gs-partner-villa__pricing .cs-villa-pricing__footer {
	margin-top: 8px !important;
	font-size: 12px !important;
}

/* ---- MPHB calendars dark override (via MPHB CSS variables) ---- */

.mphb-gs-partner-portal {
	--mphb-available-date-bg: rgba(34, 197, 94, 0.25);
	--mphb-available-date-color: var(--lw-success);
	--mphb-booked-date-bg: rgba(248, 113, 113, 0.2);
	--mphb-booked-date-color: var(--lw-error);
	--mphb-not-available-date-bg: rgba(255, 255, 255, 0.06);
	--mphb-not-available-date-color: var(--lw-white-40);
	--mphb-out-of-season-date-bg: rgba(255, 255, 255, 0.04);
	--mphb-out-of-season-date-color: var(--lw-white-20);
	--mphb-selected-date-bg: var(--lw-gold);
	--mphb-selected-date-color: var(--lw-navy-dark);
}

/* Group availability calendar */
.mphb-gs-partner-portal .mphb-group-availability-calendar {
	color: var(--lw-white-80);
}

.mphb-gs-partner-portal .mphb-group-availability-calendar a {
	color: var(--lw-gold) !important;
	text-decoration: none;
}

.mphb-gs-partner-portal .mphb-group-availability-calendar a:hover {
	color: var(--lw-white) !important;
}

/* Group calendar: override MPHB component variables */
.mphb-gs-partner-portal .mphb-group-availability-calendar {
	--color-room-type-date-available: rgba(34, 197, 94, 0.35);
	--color-room-type-date-not-available: rgba(248, 113, 113, 0.3);
	--color-room-type-date-default: var(--lw-white-10);
}

/* Date header strip (white → transparent dark) */
.mphb-gs-partner-portal .mphb-group-availability-calendar-dates {
	background: var(--lw-white-08) !important;
}

/* Individual date cells in header (white boxes → dark) */
.mphb-gs-partner-portal .mphb-group-availability-calendar-dates__date {
	background: var(--lw-white-08) !important;
	border-color: var(--lw-white-10) !important;
	color: var(--lw-white-80) !important;
}

/* Day-of-week label */
.mphb-gs-partner-portal .mphb-group-availability-calendar-dates__week-day {
	color: var(--lw-white-45) !important;
}

/* Room type title */
.mphb-gs-partner-portal .mphb-group-availability-calendar-room-type__title {
	color: var(--lw-gold) !important;
}

.mphb-gs-partner-portal .mphb-group-availability-calendar-room-type__title a {
	color: var(--lw-gold) !important;
	text-decoration: none !important;
}

/* Navigation buttons (Aujourd'hui, arrows, datepicker) */
.mphb-gs-partner-portal .mphb-date-navigation .mphb-button {
	background: var(--lw-white-08) !important;
	border-color: var(--lw-white-15) !important;
	color: var(--lw-white-80) !important;
}

.mphb-gs-partner-portal .mphb-date-navigation .mphb-button:hover {
	background: var(--lw-white-15) !important;
}

/* Shimmer placeholder */
.mphb-gs-partner-portal .mphb-group-availability-calendar .mphb-placeholder {
	background: var(--lw-white-08) !important;
}

/* Scrollbar */
.mphb-gs-partner-portal ::-webkit-scrollbar { height: 8px; }
.mphb-gs-partner-portal ::-webkit-scrollbar-track { background: var(--lw-white-08); border-radius: 4px; }
.mphb-gs-partner-portal ::-webkit-scrollbar-thumb { background: var(--lw-white-20); border-radius: 4px; }

/* Scrollbar */
.mphb-gs-partner-portal ::-webkit-scrollbar { height: 8px; }
.mphb-gs-partner-portal ::-webkit-scrollbar-track { background: var(--lw-white-08); border-radius: 4px; }
.mphb-gs-partner-portal ::-webkit-scrollbar-thumb { background: var(--lw-white-20); border-radius: 4px; }

/* Individual datepick calendar */
.mphb-gs-partner-portal .mphb-datepick,
.mphb-gs-partner-portal .datepick {
	color: var(--lw-white-80) !important;
	background: transparent !important;
}

.mphb-gs-partner-portal .datepick-month-header,
.mphb-gs-partner-portal .datepick-month th {
	color: var(--lw-white-60) !important;
	background: transparent !important;
}

.mphb-gs-partner-portal .datepick-nav a,
.mphb-gs-partner-portal .datepick-cmd {
	color: var(--lw-gold) !important;
}

.mphb-gs-partner-portal .datepick td span,
.mphb-gs-partner-portal .datepick td a {
	color: var(--lw-white-80) !important;
}

.mphb-gs-partner-portal .datepick .datepick-month {
	border-color: var(--lw-white-08) !important;
}

/* ---- Media Kit card ---- */

.pp-media-kit {
	display: flex;
	justify-content: center;
	padding: 20px 0;
}

.pp-media-kit__card {
	background: var(--lw-white-08) !important;
	border: 1px solid var(--lw-white-10) !important;
	border-radius: 12px;
	padding: 32px 40px;
	text-align: center;
	max-width: 400px;
}

.pp-media-kit__icon {
	color: var(--lw-gold);
	margin-bottom: 12px;
}

.pp-media-kit__title {
	font-size: 16px;
	font-weight: 600;
	color: var(--lw-white);
	margin: 0 0 6px;
}

.pp-media-kit__desc {
	font-size: 13px;
	color: var(--lw-white-45);
	margin: 0 0 20px;
}

.pp-media-kit__btn {
	display: inline-block;
	padding: 12px 28px;
	background: var(--lw-gold) !important;
	color: #0f1b2d !important;
	border-radius: 6px;
	font-size: 14px;
	font-weight: 600;
	text-decoration: none !important;
	transition: opacity .2s;
	letter-spacing: .02em;
}

.pp-media-kit__btn:hover {
	opacity: .85;
	color: #0f1b2d !important;
	text-decoration: none !important;
}

/* ---- Individual villa calendar: green/red availability ---- */

.mphb-gs-partner-villa__calendar .mphb-datepick .mphb-available-date:not(.mphb-booked-date):not(.mphb-past-date),
.mphb-gs-partner-villa__calendar .mphb-datepick a.mphb-available-date:not(.mphb-booked-date):not(.mphb-past-date),
.mphb-gs-partner-villa__calendar .mphb-datepick span.mphb-available-date:not(.mphb-booked-date):not(.mphb-past-date) {
	background: var(--lw-cal-avail-bg, rgba(76, 175, 80, 0.25)) !important;
	color: var(--lw-cal-avail-text, #81c784) !important;
	font-weight: 700;
	border-radius: 4px;
}

.mphb-gs-partner-villa__calendar .mphb-datepick .mphb-booked-date:not(.mphb-available-date),
.mphb-gs-partner-villa__calendar .mphb-datepick span.mphb-booked-date:not(.mphb-available-date),
.mphb-gs-partner-villa__calendar .mphb-datepick a.mphb-booked-date:not(.mphb-available-date) {
	background: var(--lw-cal-booked-bg, rgba(239, 83, 80, 0.25)) !important;
	color: var(--lw-cal-booked-text, #ef9a9a) !important;
	border-radius: 4px;
}

.mphb-gs-partner-villa__calendar .mphb-datepick .mphb-past-date,
.mphb-gs-partner-villa__calendar .mphb-datepick span.mphb-past-date,
.mphb-gs-partner-villa__calendar .mphb-datepick a.mphb-past-date {
	color: var(--lw-cal-past, #9aa8b8) !important;
}

/* ---- Calendar layout ---- */

.mphb-gs-partner-villa__calendar h4 {
	font-size: 14px;
	font-weight: 600;
	margin: 16px 0 12px;
	color: var(--lw-white-60);
}

.mphb-gs-partner-villa__calendar {
	margin-top: 16px;
	overflow: hidden;
}

.mphb-gs-partner-villa__calendar .datepick {
	width: 100% !important;
}

.mphb-gs-partner-villa__calendar .datepick-month-row {
	display: flex !important;
	width: 100% !important;
}

.mphb-gs-partner-villa__calendar .datepick-month {
	flex: 1 !important;
	width: auto !important;
	box-sizing: border-box;
}

.mphb-gs-partner-villa__calendar .datepick-nav {
	width: 100% !important;
}

.mphb-gs-partner-villa__calendar table {
	width: 100%;
	font-size: 0.85rem;
}

/* ---- Contact ---- */

.mphb-gs-partner-contact {
	background: var(--lw-card-bg);
	border: 1px solid var(--lw-card-border);
	border-radius: 12px;
	padding: 24px 28px;
	margin-top: 32px;
}

.mphb-gs-partner-contact h3 {
	margin: 0 0 12px;
	font-size: 1rem;
	font-weight: 600;
	color: var(--lw-white);
}

.mphb-gs-partner-contact p {
	margin: 0 0 8px;
	font-size: 14px;
	color: var(--lw-white-80);
}

.mphb-gs-partner-contact a {
	color: var(--lw-gold);
	text-decoration: none;
	font-weight: 600;
}

.mphb-gs-partner-contact a:hover {
	text-decoration: underline;
}

.mphb-gs-partner-contact__note {
	font-size: 12px;
	color: var(--lw-white-40);
	font-style: italic;
}

/* ---- Footer ---- */

.mphb-gs-partner-footer {
	text-align: center;
	margin-top: 40px;
	padding-top: 20px;
	border-top: 1px solid var(--lw-white-08);
	font-size: 12px;
	color: var(--lw-white-40);
}

/* ---- Mobile ---- */

@media (max-width: 768px) {
	.mphb-gs-partner-villa__header {
		flex-direction: column;
	}

	.mphb-gs-partner-villa__img {
		width: 100%;
		height: 200px;
	}

	.pd-cards {
		grid-template-columns: repeat(2, 1fr);
	}

	.pd-ref__url {
		flex-direction: column;
	}

	.pd-ref__input {
		width: 100%;
	}

	.pd-table {
		font-size: 12px;
	}

	.pd-table th, .pd-table td {
		padding: 6px 8px;
	}
}

@media (max-width: 1024px) {
	.mphb-gs-partner-villa__calendar .datepick-month-row {
		flex-wrap: wrap !important;
	}
	.mphb-gs-partner-villa__calendar .datepick-month {
		flex: 1 1 48% !important;
	}
}

/* ---- Print ---- */

@media print {
	.mphb-gs-partner-portal {
		max-width: 100%;
		padding: 0;
	}

	.mphb-gs-partner-villa {
		page-break-inside: avoid;
	}
}

/* --------------------------------------------------------------------------
   Partner portal: per-villa affiliate links
   -------------------------------------------------------------------------- */
/* --------------------------------------------------------------------------
   Partner portal: hero logo
   -------------------------------------------------------------------------- */
.pp-hero__identity {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
}
.pp-hero__logo {
	max-width: 120px;
	max-height: 120px;
	object-fit: contain;
	border-radius: 6px;
}

/* --------------------------------------------------------------------------
   Partner portal: catalogue partner logo
   -------------------------------------------------------------------------- */
	max-width: 80px;
	max-height: 50px;
	object-fit: contain;
	border-radius: 4px;
	margin-left: auto;
}
	text-align: right;
	font-size: 13px;
	color: var(--lw-white-60, #aaa);
	white-space: nowrap;
}
	color: var(--lw-gold, #b99d75);
	display: block;
}

@media print {
		max-width: 60px;
	}
		color: #555 !important;
	}
		color: #1e3750 !important;
	}
}

.pp-affiliate-badge {
	font-size: 10px;
	font-weight: 500;
	color: var(--lw-gold, #b99d75);
	border: 1px solid var(--lw-gold, #b99d75);
	border-radius: 4px;
	padding: 2px 6px;
	vertical-align: middle;
	letter-spacing: 0.03em;
	text-transform: uppercase;
}

.pd-villa-links { margin-top: 24px; }
.pd-villa-links h3 { margin-bottom: 12px; font-size: 15px; color: var(--lw-white-80, #ccc); }
.pd-villa-links__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
@media (max-width: 900px) { .pd-villa-links__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 500px) { .pd-villa-links__grid { grid-template-columns: 1fr; } }
.pd-villa-link-card {
	background: var(--lw-white-05, rgba(255,255,255,0.05));
	border: 1px solid var(--lw-white-10, rgba(255,255,255,0.1));
	border-radius: 8px;
	padding: 12px;
}
.pd-villa-link-card__name { font-weight: 600; font-size: 14px; color: var(--lw-gold, #b99d75); }
.pd-villa-link-card__specs { font-size: 12px; color: var(--lw-white-50, #888); margin-bottom: 8px; }
.pd-ref__input--small { font-size: 11px !important; }
.pp-villa-ref { margin: 12px 0; }

/* --------------------------------------------------------------------------
   Partner portal: monthly chart
   -------------------------------------------------------------------------- */
.pd-chart-wrap { margin: 20px 0 24px; }
.pd-chart-wrap h3 { margin-bottom: 12px; font-size: 15px; color: var(--lw-white-80, #ccc); }
.pd-chart { border-radius: 8px; overflow: hidden; }
.pd-chart canvas { width: 100%; height: auto; display: block; }
.pd-chart__conversion {
	font-size: 13px;
	color: var(--lw-white-50, #888);
	margin-top: 8px;
	text-align: center;
}
.pd-chart__conversion strong { color: var(--lw-gold, #b99d75); }

/* --------------------------------------------------------------------------
   Partner portal: catalogue (printable)
   -------------------------------------------------------------------------- */

	display: flex;
	align-items: center;
	gap: 20px;
	margin-bottom: 32px;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--lw-white-10, rgba(255,255,255,0.1));
}

	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
	margin-bottom: 32px;
}
	background: var(--lw-white-05, rgba(255,255,255,0.05));
	border: 1px solid var(--lw-white-10, rgba(255,255,255,0.1));
	border-radius: 10px;
	overflow: hidden;
}
	width: 100%;
	height: 180px;
	object-fit: cover;
	display: block;
}
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 12px;
	border-top: 1px solid var(--lw-white-10, rgba(255,255,255,0.1));
	background: var(--lw-white-05, rgba(255,255,255,0.03));
}

	text-align: center;
	padding-top: 20px;
	border-top: 1px solid var(--lw-white-10, rgba(255,255,255,0.1));
	font-size: 13px;
	color: var(--lw-white-50, #888);
}

/* --------------------------------------------------------------------------
   Light theme — override CSS variables on the portal scope
   -------------------------------------------------------------------------- */
/* --- Light theme: override ALL --lw-* vars globally on body --- */
/* Light theme: override --lw-* vars on :root (must be same element as original declaration) */
:root:has(body[data-pp-theme="light"]) {
	--lw-navy:        #f8f6f2;
	--lw-navy-dark:   #f0ede8;
	--lw-navy-deeper: #ddd8d0;
	--lw-gold:        #6b5a42;
	--lw-gold-light:  #6b5a42;
	--lw-gold-muted:  #6b5a42;
	--lw-white:       #1e3750;
	--lw-white-80:    #333333;
	--lw-white-60:    #555555;
	--lw-white-50:    #555555;
	--lw-white-45:    #717171;
	--lw-white-40:    #717171;
	--lw-white-15:    rgba(30, 55, 80, 0.15);
	--lw-white-10:    rgba(30, 55, 80, 0.10);
	--lw-white-08:    rgba(30, 55, 80, 0.06);
	--lw-white-05:    rgba(30, 55, 80, 0.04);
	--lw-body-text:   #333333;
	--lw-text-dark:   #1e3750;
	--lw-text-heading:#1e3750;
	--lw-card-bg:     #ffffff;
	--lw-card-border: #c9c3b8;
	--lw-success:     #1b7a3d;
	--lw-gold-15:     rgba(125, 106, 78, 0.08);
}
body[data-pp-theme="light"] {
	background: #f8f6f2 !important;
	color: #333333 !important;
}

/* --- Site-wide light overrides: header, footer, all wrappers --- */
body[data-pp-theme="light"] .main,
body[data-pp-theme="light"] .container,
body[data-pp-theme="light"] .primary { background: #f8f6f2 !important; }

body[data-pp-theme="light"] .lw-header,
body[data-pp-theme="light"] .lw-header.lw-header--solid,
body[data-pp-theme="light"] header.lw-header {
	background: #ffffff !important;
	background-image: none !important;
	backdrop-filter: none !important;
	-webkit-backdrop-filter: none !important;
	box-shadow: 0 1px 3px rgba(0,0,0,0.08);
}
/* Hide WP page title section (parent theme) */
body[data-pp-theme="light"] .page-title-section,
body[data-pp-theme="light"] .page-title-large { background: #f8f6f2 !important; }
body[data-pp-theme="light"] .page-title-section .entry-title { color: #1e3750 !important; }
body[data-pp-theme="light"] .page-title-section .container { color: #555555 !important; }
body[data-pp-theme="light"] .lw-header .evd-logo { filter: brightness(0.15) sepia(0.3); }
body[data-pp-theme="light"] .lw-nav__link,
body[data-pp-theme="light"] .lw-nav__chevron,
body[data-pp-theme="light"] .lw-lang__link { color: #1e3750 !important; }
body[data-pp-theme="light"] .lw-mega { background: #ffffff; border: 1px solid #c9c3b8; }

/* Footer */
body[data-pp-theme="light"] .lw-footer,
body[data-pp-theme="light"] .lw-footer-newsletter,
body[data-pp-theme="light"] .lw-footer-row { background: #ffffff !important; }
body[data-pp-theme="light"] .lw-footer-newsletter__title,
body[data-pp-theme="light"] .lw-footer-row__heading { color: #1e3750 !important; }
body[data-pp-theme="light"] .lw-footer-newsletter__desc,
body[data-pp-theme="light"] .lw-footer-row__text,
body[data-pp-theme="light"] .lw-footer-row__link,
body[data-pp-theme="light"] .lw-footer a,
body[data-pp-theme="light"] .lw-footer p,
body[data-pp-theme="light"] .lw-footer span { color: #555555 !important; }
body[data-pp-theme="light"] .lw-footer a:hover { color: #6b5a42 !important; }
body[data-pp-theme="light"] .lw-footer .evd-logo,
body[data-pp-theme="light"] .lw-footer .lw-footer__logo { filter: brightness(0.15) sepia(0.3); }
body[data-pp-theme="light"] .lw-footer-social__link { color: #1e3750 !important; border-color: #c9c3b8 !important; background: transparent !important; }
body[data-pp-theme="light"] .lw-footer-social__link:hover { background: var(--lw-navy-dark) !important; color: var(--lw-gold) !important; }
body[data-pp-theme="light"] .lw-footer-social__link svg { filter: none; }
body[data-pp-theme="light"] .lw-footer-newsletter__input {
	background: #f8f6f2 !important; color: #333333 !important; border-color: #c9c3b8 !important;
}
body[data-pp-theme="light"] .lw-footer-newsletter__btn,
body[data-pp-theme="light"] .lw-footer__newsletter-form input[type="submit"],
body[data-pp-theme="light"] .lw-footer__newsletter-form button[type="submit"],
body[data-pp-theme="light"] .lw-footer__newsletter-form .es-subscribe-btn {
	background: var(--lw-gold) !important; color: #fff !important;
}
body[data-pp-theme="light"] .lw-footer-newsletter__btn:hover,
body[data-pp-theme="light"] .lw-footer__newsletter-form input[type="submit"]:hover,
body[data-pp-theme="light"] .lw-footer__newsletter-form button[type="submit"]:hover,
body[data-pp-theme="light"] .lw-footer__newsletter-form .es-subscribe-btn:hover {
	background: var(--lw-gold-dark) !important; color: #fff !important;
}
body[data-pp-theme="light"] .lw-footer-bottom {
	background: #f8f6f2 !important; border-top: 1px solid #ddd8d0;
}
body[data-pp-theme="light"] .lw-footer-bottom a,
body[data-pp-theme="light"] .lw-footer-bottom span { color: #717171 !important; }
body[data-pp-theme="light"] .lw-footer-social__link { color: #555555 !important; border-color: #c9c3b8 !important; }

/* MPHB Calendar — invert the dark calendar */
body[data-pp-theme="light"] .datepick { background: #ffffff !important; border-color: #c9c3b8 !important; }
body[data-pp-theme="light"] .datepick-nav { background: #f0ede8 !important; border-color: #ddd8d0 !important; }
body[data-pp-theme="light"] .datepick-nav a,
body[data-pp-theme="light"] .datepick-nav button { color: #1e3750 !important; background: transparent !important; }
body[data-pp-theme="light"] .datepick-month-header { color: #1e3750 !important; background: #f0ede8 !important; border-color: #ddd8d0 !important; }
body[data-pp-theme="light"] .datepick-month-year { color: #1e3750 !important; background: #ffffff !important; border-color: #c9c3b8 !important; }
body[data-pp-theme="light"] .datepick th { color: #555555 !important; }
body[data-pp-theme="light"] .datepick td { color: #333333 !important; }
body[data-pp-theme="light"] .datepick td span,
body[data-pp-theme="light"] .datepick td a { color: #333333 !important; }
body[data-pp-theme="light"] .datepick-month { border-color: #ddd8d0 !important; }

/* MPHB Group availability calendar */
body[data-pp-theme="light"] .mphb-group-availability-calendar { background: #ffffff !important; border-color: #c9c3b8 !important; }
body[data-pp-theme="light"] .mphb-group-availability-calendar-dates { background: #f0ede8 !important; }
body[data-pp-theme="light"] .mphb-group-availability-calendar-dates__date { color: #1e3750 !important; border-color: #ddd8d0 !important; background: transparent !important; }
body[data-pp-theme="light"] .mphb-button { color: #1e3750 !important; background: #f0ede8 !important; border-color: #c9c3b8 !important; }
body[data-pp-theme="light"] .mphb-button:hover { background: #ddd8d0 !important; }
body[data-pp-theme="light"] .mphb-date-navigation__datepicker-button { color: #1e3750 !important; background: #f0ede8 !important; border-color: #c9c3b8 !important; }

/* Apply variables — body and site wrappers */
body[data-pp-theme="light"],
body[data-pp-theme="light"] .main,
body[data-pp-theme="light"] .container,
body[data-pp-theme="light"] .primary { background: #f8f6f2 !important; }
body[data-pp-theme="light"] .lw-header { background: #ffffff !important; box-shadow: 0 1px 3px rgba(0,0,0,0.08); }
body[data-pp-theme="light"] .lw-header__logo-img,
body[data-pp-theme="light"] .lw-header .evd-logo { filter: brightness(0.15) sepia(0.3); }
body[data-pp-theme="light"] .lw-nav__link,
body[data-pp-theme="light"] .lw-nav__chevron,
body[data-pp-theme="light"] .lw-lang__link { color: #1e3750 !important; }

/* Portal content — all using variables */
[data-theme="light"] .pp-hero__eyebrow { color: #6b5a42; }
[data-theme="light"] .pp-hero__title { color: #1e3750; }
[data-theme="light"] .pp-hero__subtitle { color: #555555; }

[data-theme="light"] .mphb-gs-partner-season-card { background: #ffffff; border: 1px solid #c9c3b8; }
[data-theme="light"] .mphb-gs-partner-season-card__label,
[data-theme="light"] .mphb-gs-partner-season-card__rate-label { color: #333333; }
[data-theme="light"] .mphb-gs-partner-season-card__icon { color: #6b5a42; }
[data-theme="light"] .mphb-gs-partner-season-card__rate { color: #6b5a42; }
[data-theme="light"] .mphb-gs-partner-season-card__dates { color: #555555; }

[data-theme="light"] .mphb-gs-partner-nav__btn { color: #555555; border-color: #c9c3b8; }
[data-theme="light"] .mphb-gs-partner-nav__btn.is-active { color: #fff; border-color: var(--lw-gold); background: var(--lw-gold); }

[data-theme="light"] .pd-card { background: #ffffff; border: 1px solid #c9c3b8; }
[data-theme="light"] .pd-card__value { color: #1e3750; }
[data-theme="light"] .pd-card__label { color: #555555; }
[data-theme="light"] .pd-card--green .pd-card__value { color: #1b7a3d; }
[data-theme="light"] .pd-card--orange .pd-card__value { color: #a86518; }

[data-theme="light"] .pd-ref__input,
[data-theme="light"] .pd-ref__input[type="text"],
[data-theme="light"] input.pd-ref__input {
	background: #ffffff !important;
	color: #333333 !important;
	border-color: #c9c3b8 !important;
}
[data-theme="light"] .pd-ref__label { color: #333333; }
[data-theme="light"] .pd-ref__btn { background: var(--lw-gold); color: #fff; }

[data-theme="light"] .pd-villa-link-card,
[data-theme="light"] .pd-villa-link-card__name,
[data-theme="light"] .pd-villa-link-card__specs,

[data-theme="light"] .pd-info, [data-theme="light"] .pd-wrap,
[data-theme="light"] p, [data-theme="light"] li { color: #333333; }
[data-theme="light"] strong { color: #1e3750; }
[data-theme="light"] a { color: #6b5a42; }

[data-theme="light"] h3 { color: #1e3750; }
[data-theme="light"] .pd-table th { background: var(--lw-navy-dark); color: var(--lw-text-heading); border-color: var(--lw-card-border); }
[data-theme="light"] .pd-table td { border-color: #ddd8d0; color: #333333; }


[data-theme="light"] .mphb-gs-partner-villa { background: #ffffff; border: 1px solid #c9c3b8; border-radius: var(--lw-radius-md); }
[data-theme="light"] .mphb-gs-partner-villa__info h3 a { color: #1e3750; }
[data-theme="light"] .mphb-gs-partner-villa__specs { color: #555555; }
[data-theme="light"] .pp-affiliate-badge { color: #6b5a42; border-color: #6b5a42; }
[data-theme="light"] .pp-subtab { color: #555555; border-color: #c9c3b8; }
[data-theme="light"] .pp-subtab.is-active { color: #fff; border-color: var(--lw-gold); background: var(--lw-gold); }

[data-theme="light"] .pd-chart canvas { filter: invert(1) hue-rotate(180deg); }
[data-theme="light"] .pd-chart__conversion { color: #555555; }

[data-theme="light"] .mphb-gs-partner-contact { background: #ffffff; border: 1px solid #c9c3b8; color: #333333; }
[data-theme="light"] .mphb-gs-partner-contact a { color: #6b5a42; }
[data-theme="light"] .mphb-gs-partner-footer { color: #717171; }
[data-theme="light"] .pp-media-kit__card { background: #ffffff; border: 1px solid #c9c3b8; }
[data-theme="light"] .pp-media-kit__title { color: #1e3750; }
[data-theme="light"] .pp-media-kit__desc { color: #555555; }

[data-theme="light"] .cs-season-card { background: #ffffff; border-color: #c9c3b8; }
[data-theme="light"] .cs-season-card__label { color: #1e3750; }
[data-theme="light"] .cs-season-card__price { color: #1e3750; }
[data-theme="light"] .cs-season-card__unit,
[data-theme="light"] .cs-season-card__dates { color: #555555; }
[data-theme="light"] .cs-season-card__discount { color: #6b5a42; }
[data-theme="light"] .cs-season-card__icon { color: #6b5a42; }

/* --------------------------------------------------------------------------
   Theme toggle button
   -------------------------------------------------------------------------- */
.pp-theme-toggle {
	position: absolute;
	top: 12px;
	right: 12px;
	background: none;
	border: 1px solid rgba(255,255,255,0.2);
	border-radius: 8px;
	width: 40px;
	height: 40px;
	cursor: pointer;
	color: #6b5a42;
	transition: all 0.2s;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
}
.pp-theme-toggle:hover { background: rgba(255,255,255,0.1); }
[data-theme="light"] .pp-theme-toggle { border-color: #c9c3b8; color: #1e3750; }
[data-theme="light"] .pp-theme-toggle:hover { background: #f0ede8; }
.pp-hero { position: relative; }

/* --------------------------------------------------------------------------
   Light theme: remaining contrast fixes (WCAG AA audit)
   -------------------------------------------------------------------------- */

/* Villa pricing cards — white-on-white → dark text on white card */
[data-theme="light"] .cs-villa-pricing__card,
body[data-pp-theme="light"] .cs-villa-pricing__card {
	background: #ffffff !important;
	border: 1px solid #c9c3b8 !important;
}
[data-theme="light"] .cs-villa-pricing__card-label,
[data-theme="light"] .cs-villa-pricing__card-amount,
body[data-pp-theme="light"] .cs-villa-pricing__card-label,
body[data-pp-theme="light"] .cs-villa-pricing__card-amount { color: #1e3750 !important; }
[data-theme="light"] .cs-villa-pricing__card-dates,
[data-theme="light"] .cs-villa-pricing__card-unit,
[data-theme="light"] .cs-villa-pricing__card-discount,
[data-theme="light"] .cs-villa-pricing__card span,
body[data-pp-theme="light"] .cs-villa-pricing__card-dates,
body[data-pp-theme="light"] .cs-villa-pricing__card-unit,
body[data-pp-theme="light"] .cs-villa-pricing__card-discount,
body[data-pp-theme="light"] .cs-villa-pricing__card span { color: #555555 !important; }
[data-theme="light"] .cs-villa-pricing__included,
body[data-pp-theme="light"] .cs-villa-pricing__included { color: #6b5a42 !important; }

/* Sun icons */
[data-theme="light"] .sun-outline,
[data-theme="light"] .cs-villa-pricing__card-icon,
body[data-pp-theme="light"] .sun-outline,
body[data-pp-theme="light"] .cs-villa-pricing__card-icon { color: #6b5a42 !important; }

/* MPHB group calendar weekday + room labels */
body[data-pp-theme="light"] .mphb-group-availability-calendar-dates__week-day,
body[data-pp-theme="light"] .mphb-group-availability-calendar-dates__day-number { color: #1e3750 !important; }
body[data-pp-theme="light"] .mphb-group-availability-calendar-room-type__name { color: #1e3750 !important; }
body[data-pp-theme="light"] .mphb-group-availability-calendar-room-type__date { border-color: #ddd8d0 !important; }

/* Profile: edit btn, icons, inputs, cards */
[data-theme="light"] .pp-row__edit { color: #555555 !important; border-color: #c9c3b8 !important; background: #ffffff !important; }
[data-theme="light"] .pp-row__edit:hover { color: #1e3750 !important; background: #f0ede8 !important; }
[data-theme="light"] .pp-row__icon { color: #555555 !important; background: #f0ede8 !important; }
[data-theme="light"] .pp-row__label { color: #555555 !important; }
[data-theme="light"] .pp-row__value { color: #1e3750 !important; }
[data-theme="light"] .pp-input,
[data-theme="light"] input.pp-input { background: #ffffff !important; color: #333333 !important; border-color: #c9c3b8 !important; }
[data-theme="light"] .pp-card { background: #ffffff !important; border-color: #c9c3b8 !important; }

/* Media kit button */
[data-theme="light"] .pp-media-kit__btn { background: var(--lw-gold) !important; color: #fff !important; }
[data-theme="light"] .pp-media-kit__icon { color: #6b5a42 !important; }

/* Placeholder text (inline style overrides) */
[data-theme="light"] p[style*="64748b"] { color: #555555 !important; }

/* MPHB datepicker links */
body[data-pp-theme="light"] .datepick td.datepick-today { background: #f0ede8 !important; }
body[data-pp-theme="light"] .datepick a { color: #333333 !important; }

/* --------------------------------------------------------------------------
   Print: hide partner-only content (commissions, nav, hero, season cards)
   Show only the active panel content for printing.
   -------------------------------------------------------------------------- */
@media print {
	.pp-hero, .mphb-gs-partner-seasons, .mphb-gs-partner-nav,
	.lw-header, .lw-footer, .wpadminbar,
	.mphb-gs-partner-contact, .mphb-gs-partner-footer { display: none !important; }

	.mphb-gs-partner-portal { padding: 0 !important; }
}
