/* =========================================================
   WINE SITE DETAILS PAGE
========================================================= */

.wineSiteDetailsPage {
	width: 100%;
	min-height: calc(100vh - 95px);

	color: #3f443f;
	background: #f7f4eb;
}

.wineSiteDetailsPage *,
.wineSiteDetailsPage *::before,
.wineSiteDetailsPage *::after {
	box-sizing: border-box;
}


/* =========================================================
   PAGE HEADER
========================================================= */

.wineSiteDetailsHeader {
	display: grid;
	grid-template-columns:
		minmax(180px, 1fr)
		auto
		minmax(180px, 1fr);
	align-items: center;
	column-gap: 1.25rem;

	width: calc(100% - 2.5rem);
	margin: 1rem auto 0;

	min-height: 96px;
	padding: 1rem 1.25rem;

	color: #ffffff;
	background:
		linear-gradient(
			135deg,
			#2c4d34 0%,
			#3e6548 100%
		);

	border: 1px solid rgba(44, 77, 52, 0.3);
	border-radius: 14px;
	box-shadow: 0 5px 14px rgba(42, 55, 45, 0.11);
}


/*
 * Allows the back link and title row to become direct
 * grid items of the header without changing the HTML.
 */
.wineSiteDetailsHeaderContent {
	display: contents;
}


/* =========================================================
   BACK LINK
========================================================= */

.wineSiteDetailsBackLink {
	grid-column: 1;
	justify-self: start;
	align-self: center;

	display: inline-flex;
	align-items: center;
	gap: 0.35rem;

	margin: 0;

	font-size: 0.75rem;
	font-weight: 650;
	line-height: 1;
	text-decoration: none;

	color: rgba(255, 255, 255, 0.78);

	transition:
		color 150ms ease,
		transform 150ms ease;
}

.wineSiteDetailsBackLink:hover {
	color: #ffffff;
	transform: translateX(-2px);
}


/* =========================================================
   SITE TITLE
========================================================= */

.wineSiteDetailsTitleRow {
	grid-column: 2;
	justify-self: center;
	align-self: center;

	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.7rem;

	min-width: 0;
}

.wineSiteDetailsTitleIcon {
	display: flex;
	flex: 0 0 36px;
	align-items: center;
	justify-content: center;

	width: 36px;
	height: 36px;

	font-size: 0.95rem;
	color: #ffffff;

	background: rgba(255, 255, 255, 0.12);
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 9px;
}

.wineSiteDetailsTitleText {
	min-width: 0;
}

.wineSiteDetailsTitleText h1 {
	overflow: hidden;

	max-width: 700px;
	margin: 0;

	font-size: clamp(1.2rem, 2vw, 1.65rem);
	font-weight: 650;
	line-height: 1.1;
	text-overflow: ellipsis;
	white-space: nowrap;

	color: #ffffff;
}

.wineSiteDetailsTitleText p {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.3rem;

	margin: 0.22rem 0 0;

	font-size: 0.7rem;
	line-height: 1.2;

	color: rgba(255, 255, 255, 0.78);
}

.wineSiteDetailsHeaderDivider {
	color: rgba(255, 255, 255, 0.45);
}


/* =========================================================
   HEADER ACTIONS
========================================================= */

.wineSiteDetailsHeaderActions {
	grid-column: 3;
	justify-self: end;
	align-self: center;

	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 0.45rem;
}

/* =========================================================
   BUTTONS
========================================================= */

.wineSiteDetailsButton,
.wineSiteDetailsSmallButton {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;

	font-weight: 650;
	line-height: 1.1;
	text-decoration: none;
	white-space: nowrap;

	border-radius: 8px;

	transition:
		background-color 150ms ease,
		border-color 150ms ease,
		color 150ms ease,
		box-shadow 150ms ease,
		transform 150ms ease;
}

.wineSiteDetailsButton {
	min-height: 34px;
	padding: 0.42rem 0.72rem;

	font-size: 0.69rem;
}

.wineSiteDetailsSmallButton {
	min-height: 29px;
	padding: 0.32rem 0.55rem;

	font-size: 0.64rem;

	color: #ffffff;
	background: #7a2c37;
	border: 1px solid #7a2c37;
}

.wineSiteDetailsButton:hover,
.wineSiteDetailsSmallButton:hover {
	transform: translateY(-1px);
}

.wineSiteDetailsButton:active,
.wineSiteDetailsSmallButton:active {
	transform: translateY(0);
}

.wineSiteDetailsPrimaryButton {
	color: #ffffff;
	background: #7a2c37;
	border: 1px solid #7a2c37;
	box-shadow: 0 3px 7px rgba(82, 38, 48, 0.18);
}

.wineSiteDetailsPrimaryButton:hover,
.wineSiteDetailsSmallButton:hover {
	color: #ffffff;
	background: #68252f;
	border-color: #68252f;
}

.wineSiteDetailsSecondaryButton {
	color: #35463a;
	background: #ffffff;
	border: 1px solid rgba(255, 255, 255, 0.86);
}

.wineSiteDetailsSecondaryButton:hover {
	color: #2c4d34;
	background: #f5f7f5;
	border-color: #ffffff;
}

.wineSiteDetailsDeleteButton {
	color: #ffffff;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.32);
}

.wineSiteDetailsDeleteButton:hover {
	color: #ffffff;
	background: #8c3540;
	border-color: #a84a55;
}


/* =========================================================
   MAIN CONTENT
========================================================= */

.wineSiteDetailsContent {
	width: min(1380px, calc(100% - 1.5rem));
	margin: 0 auto;
	padding: 0.8rem 0 1.5rem;
}


/* =========================================================
   SECTION HEADERS
========================================================= */

.wineSiteDetailsSectionHeader {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;

	min-height: 34px;
	margin-bottom: 0.42rem;
}

.wineSiteDetailsSectionHeaderMain {
	display: flex;
	align-items: center;
	gap: 0.55rem;

	min-width: 0;
}

.wineSiteDetailsSectionIcon {
	display: flex;
	flex: 0 0 30px;
	align-items: center;
	justify-content: center;

	width: 30px;
	height: 30px;

	font-size: 0.72rem;
	color: #ffffff;

	background: #2c4d34;
	border-radius: 7px;
	box-shadow: 0 2px 5px rgba(44, 77, 52, 0.14);
}

.wineSiteDetailsSectionHeader h2 {
	margin: 0;

	font-size: 0.86rem;
	font-weight: 700;
	line-height: 1.15;

	color: #35463a;
}

.wineSiteDetailsSectionHeader p {
	margin: 0.08rem 0 0;

	font-size: 0.63rem;
	line-height: 1.2;

	color: #758078;
}


/* =========================================================
   MAP SECTION
========================================================= */

.wineSiteDetailsMapSection {
	margin-bottom: 0.85rem;
}

.wineSiteDetailsMap {
	position: relative;

	width: 100%;
	height: clamp(270px, 33vh, 340px);

	overflow: hidden;

	background: #d9ddd8;
	border: 1px solid #c9d0ca;
	border-radius: 10px;
	box-shadow: 0 4px 12px rgba(45, 55, 47, 0.08);
}

.wineSiteDetailsMapVisual {
	display: block;

	width: 100%;
	height: 100%;
}

.wineSiteDetailsMapVisual MapEdit,
.wineSiteDetailsMapVisual .mapVisualEdit,
.wineSiteDetailsMapVisual .mapHolder,
.wineSiteDetailsMapVisual .mapContainer,
.wineSiteDetailsMapVisual .maplibregl-map {
	width: 100%;
	height: 100%;
}

.wineSiteDetailsMapOverlay {
	position: absolute;
	right: 0.55rem;
	bottom: 0.55rem;
	left: 0.55rem;

	z-index: 5;

	pointer-events: none;
}

.wineSiteDetailsCoordinateGroup {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.38rem;

	width: min(580px, 100%);
	margin-left: auto;
}

.wineSiteDetailsMapMetric {
	display: flex;
	flex-direction: column;
	gap: 0.08rem;

	min-width: 0;
	padding: 0.4rem 0.52rem;

	background: rgba(255, 255, 255, 0.95);
	border: 1px solid rgba(201, 208, 202, 0.96);
	border-radius: 7px;
	box-shadow: 0 3px 8px rgba(31, 39, 33, 0.14);
}

.wineSiteDetailsMapMetric span {
	font-size: 0.51rem;
	font-weight: 750;
	line-height: 1.1;
	letter-spacing: 0.045em;
	text-transform: uppercase;

	color: #7a847c;
}

.wineSiteDetailsMapMetric strong {
	overflow: hidden;

	font-size: 0.64rem;
	font-weight: 700;
	line-height: 1.2;
	text-overflow: ellipsis;
	white-space: nowrap;

	color: #35463a;
}


/* =========================================================
   LOWER TWO-COLUMN LAYOUT
========================================================= */

.wineSiteDetailsLowerLayout {
	display: grid;
	grid-template-columns:
		minmax(0, 1.7fr)
		minmax(270px, 0.75fr);
	align-items: start;
	gap: 0.9rem;
}

.wineSiteDetailsInformationSection,
.wineSiteDetailsSamplesSection {
	min-width: 0;
}


/* =========================================================
   SITE INFORMATION TABLE
========================================================= */

.wineSiteDetailsTableWrapper {
	overflow: hidden;

	max-width: 400px;

	background: #ffffff;
	border: 1px solid #d7ddd7;
	border-radius: 10px;
	box-shadow: 0 4px 12px rgba(45, 55, 47, 0.06);
}

.wineSiteDetailsTable {
	width: 100%;
	margin: 0;

	font-size: 0.68rem;

	border-collapse: collapse;
	table-layout: fixed;
}

.wineSiteDetailsTable th,
.wineSiteDetailsTable td {
	padding: 0.33rem 0.58rem;

	line-height: 1.23;
	text-align: left;
	vertical-align: middle;

	border-bottom: 1px solid #e4e8e4;
}

.wineSiteDetailsTable tr:last-child th,
.wineSiteDetailsTable tr:last-child td {
	border-bottom: 0;
}

.wineSiteDetailsTable tbody tr:not(
	.wineSiteDetailsTableSectionRow
):nth-child(odd) {
	background: #fafbfa;
}

.wineSiteDetailsTable tbody tr:not(
	.wineSiteDetailsTableSectionRow
):hover {
	background: #f4f7f4;
}

.wineSiteDetailsTable th[scope='row'] {
	width: 31%;

	font-size: 12px;
	font-weight: 700;

	color: #59665c;
	background: rgba(247, 249, 247, 0.58);
}

.wineSiteDetailsTable td {
	overflow-wrap: anywhere;

	font-weight: 500;

	color: #343a35;
}

.wineSiteDetailsTableSectionRow th {
	padding: 0.4rem 0.6rem;

	font-size: 14px;
	font-weight: 750;
	line-height: 1.2;
	letter-spacing: 0.075em;
	text-transform: uppercase;

	color: #ffffff;
	background: #708090;
	border-bottom-color: #708090;
}

.wineSiteDetailsAddress {
	line-height: 1.3;
}

.wineSiteDetailsEmptyValue {
	font-size: 14px;
	font-weight: 400;
	font-style: italic;

	color: #8a938c;
}


/* =========================================================
   LINKED SAMPLES
   Fixed height to approximately match the site tables
========================================================= */

.wineSiteDetailsSamplesSection {
	position: sticky;
	top: 0.75rem;

	display: flex;
	height: 290px;
	min-height: 290px;
	flex-direction: column;

	overflow: hidden;
}

/* Keep the title and search visible */
.wineSiteDetailsSamplesSection
.wineSiteDetailsSectionHeader,
.wineSiteDetailsSampleSearch {
	flex: 0 0 auto;
}

/* Only the sample rows scroll */
.wineSiteDetailsSampleList {
	flex: 1 1 auto;
	min-height: 0;

	overflow-x: hidden;
	overflow-y: auto;

	overscroll-behavior: contain;
	scrollbar-gutter: stable;
}

/* =========================================================
   EMPTY SAMPLES
========================================================= */

.wineSiteDetailsEmptySamples {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.55rem;

	min-height: 185px;
	padding: 1rem;

	text-align: center;

	background: #ffffff;
	border: 1px solid #d7ddd7;
	border-radius: 10px;
	box-shadow: 0 4px 12px rgba(45, 55, 47, 0.06);
}

.wineSiteDetailsEmptySamplesIcon {
	display: flex;
	align-items: center;
	justify-content: center;

	width: 38px;
	height: 38px;

	font-size: 0.78rem;

	color: #708090;
	background: #edf0f2;
	border-radius: 9px;
}

.wineSiteDetailsEmptySamplesText h3 {
	margin: 0;

	font-size: 0.75rem;
	font-weight: 700;

	color: #3f443f;
}

.wineSiteDetailsEmptySamplesText p {
	max-width: 240px;
	margin: 0.16rem auto 0;

	font-size: 0.62rem;
	line-height: 1.35;

	color: #7b857e;
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 1050px) {

	.wineSiteDetailsLowerLayout {
		grid-template-columns:
			minmax(0, 1.55fr)
			minmax(245px, 0.75fr);
	}

	.wineSiteDetailsTable th[scope='row'] {
		width: 34%;
	}

}


@media (max-width: 860px) {

	.wineSiteDetailsHeader {
		display: grid;
		grid-template-columns: 1fr auto;
		grid-template-areas:
			"back actions"
			"title title";
		align-items: center;
		row-gap: 0.75rem;

		min-height: auto;
	}

	.wineSiteDetailsBackLink {
		grid-area: back;
		justify-self: start;
	}

	.wineSiteDetailsTitleRow {
		grid-area: title;
		justify-self: center;
	}

	.wineSiteDetailsHeaderActions {
		grid-area: actions;
		justify-self: end;

		width: auto;
	}

	.wineSiteDetailsLowerLayout {
		grid-template-columns: 1fr;
	}

	.wineSiteDetailsSamplesSection {
		position: static;
	}

	.wineSiteDetailsSampleList {
		display: grid;
		grid-template-columns:
			repeat(2, minmax(0, 1fr));
	}

	.wineSiteDetailsSampleRow:nth-child(even) {
		background: #ffffff;
	}

	.wineSiteDetailsSampleRow:nth-child(4n + 2),
	.wineSiteDetailsSampleRow:nth-child(4n + 3) {
		background: #fafbfa;
	}

	.wineSiteDetailsSampleRow {
		border-right: 1px solid #e4e8e4;
	}

}


@media (max-width: 600px) {

	.wineSiteDetailsContent {
		width: calc(100% - 0.75rem);
		padding-top: 0.55rem;
	}
	

	.wineSiteDetailsHeader {
		width: calc(100% - 1rem);
		margin-top: 0.5rem;
		padding: 0.7rem 0.75rem;
		border-radius: 11px;
	}


	.wineSiteDetailsTitleIcon {
		flex-basis: 33px;

		width: 33px;
		height: 33px;
	}

	.wineSiteDetailsTitleText h1 {
		font-size: 1.15rem;
	}

	.wineSiteDetailsHeaderActions {
		display: grid;
		grid-template-columns: 1fr 1fr;
	}

	.wineSiteDetailsHeaderActions
		.wineSiteDetailsButton {
		width: 100%;
	}

	.wineSiteDetailsHeaderActions
		.wineSiteDetailsDeleteButton {
		grid-column: 1 / -1;
	}

	.wineSiteDetailsMap {
		height: 270px;
	}

	.wineSiteDetailsCoordinateGroup {
		grid-template-columns: 1fr;
	}

	.wineSiteDetailsMapMetric {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
	}

	.wineSiteDetailsTable th[scope='row'] {
		width: 42%;
	}

	.wineSiteDetailsSampleList {
		grid-template-columns: 1fr;
	}

	.wineSiteDetailsSampleRow {
		border-right: 0;
	}

	.wineSiteDetailsSampleRow:nth-child(even) {
		background: #fafbfa;
	}

	.wineSiteDetailsSampleRow:nth-child(odd) {
		background: #ffffff;
	}

}


@media (max-width: 420px) {

	.wineSiteDetailsHeaderActions {
		grid-template-columns: 1fr;
	}

	.wineSiteDetailsHeaderActions
		.wineSiteDetailsDeleteButton {
		grid-column: auto;
	}

	.wineSiteDetailsTable th,
	.wineSiteDetailsTable td {
		padding-right: 0.45rem;
		padding-left: 0.45rem;
	}

	.wineSiteDetailsTable th[scope='row'] {
		width: 44%;
	}

}

/* =========================================================
   SAMPLE DETAILS PAGE
========================================================= */

.sampleDetailsPage {
	width: 100%;
	min-height: calc(100vh - 95px);

	padding: 1rem 1.25rem 2rem;

	color: #3f443f;
	background: #f7f4eb;
}

.sampleDetailsPage *,
.sampleDetailsPage *::before,
.sampleDetailsPage *::after {
	box-sizing: border-box;
}


/* =========================================================
   PAGE HEADER
========================================================= */

.sampleDetailsHeader {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1.5rem;

	width: 100%;
	max-width: 1500px;
	margin: 0 auto 1rem;
	padding: 1rem 1.25rem;

	color: #ffffff;
	background: #2c4d34;

	border: 1px solid rgba(44, 77, 52, 0.3);
	border-radius: 14px;

	box-shadow: 0 5px 14px rgba(42, 55, 45, 0.11);
}

.sampleDetailsHeaderContent {
	min-width: 0;
	flex: 1 1 auto;
}

.sampleDetailsBackLink {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;

	margin-bottom: 0.65rem;

	color: rgba(255, 255, 255, 0.83);

	font-size: 0.78rem;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;

	transition:
		color 150ms ease,
		transform 150ms ease;
}

.sampleDetailsBackLink:hover {
	color: #ffffff;
	transform: translateX(-2px);
}

.sampleDetailsBackLink i {
	font-size: 0.72rem;
}

.sampleDetailsTitleRow {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	min-width: 0;
}

.sampleDetailsTitleIcon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;

	width: 42px;
	height: 42px;

	color: #ffffff;
	background: rgba(255, 255, 255, 0.13);

	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 11px;
}

.sampleDetailsTitleIcon i {
	font-size: 1.05rem;
}

.sampleDetailsTitleText {
	min-width: 0;
}

.sampleDetailsEyebrow {
	display: block;
	margin-bottom: 0.18rem;

	color: rgba(255, 255, 255, 0.7);

	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.09em;
	line-height: 1.2;
	text-transform: uppercase;
}

.sampleDetailsTitleText h1 {
	margin: 0;

	color: #ffffff;

	font-size: clamp(1.4rem, 2vw, 2rem);
	font-weight: 700;
	line-height: 1.08;
}

.sampleDetailsTitleText p {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem;

	margin: 0.32rem 0 0;

	color: rgba(255, 255, 255, 0.76);

	font-size: 0.8rem;
	line-height: 1.35;
}

.sampleDetailsHeaderDivider {
	color: rgba(255, 255, 255, 0.45);
}


/* =========================================================
   HEADER ACTIONS
========================================================= */

.sampleDetailsHeaderActions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	flex-wrap: wrap;
	gap: 0.5rem;

	flex: 0 0 auto;
}

.sampleDetailsButton {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.42rem;

	min-height: 38px;
	padding: 0.48rem 0.8rem;

	font-size: 0.78rem;
	font-weight: 650;
	line-height: 1.2;
	white-space: nowrap;

	border-radius: 9px;

	transition:
		background-color 150ms ease,
		border-color 150ms ease,
		color 150ms ease,
		box-shadow 150ms ease,
		transform 150ms ease;
}

.sampleDetailsButton:hover {
	transform: translateY(-1px);
}

.sampleDetailsButton:active {
	transform: translateY(0);
}

.sampleDetailsPrimaryButton {
	color: #2c4d34;
	background: #ffffff;
	border: 1px solid #ffffff;
}

.sampleDetailsPrimaryButton:hover,
.sampleDetailsPrimaryButton:focus {
	color: #203b28;
	background: #f4f7f4;
	border-color: #f4f7f4;
	box-shadow: 0 4px 9px rgba(0, 0, 0, 0.12);
}

.sampleDetailsDeleteButton {
	color: #ffffff;
	background: #7a2c37;
	border: 1px solid #7a2c37;
}

.sampleDetailsDeleteButton:hover,
.sampleDetailsDeleteButton:focus {
	color: #ffffff;
	background: #67242e;
	border-color: #67242e;
	box-shadow: 0 4px 9px rgba(45, 15, 20, 0.18);
}


/* =========================================================
   MAIN CONTENT
========================================================= */

.sampleDetailsContent {
	display: flex;
	flex-direction: column;
	gap: 1rem;

	width: 100%;
	max-width: 1500px;
	margin: 0 auto;
}


/* =========================================================
   SHARED SECTION STYLING
========================================================= */

.sampleDetailsOverviewSection,
.sampleDetailsMapSection,
.sampleDetailsInformationSection,
.sampleDetailsNotesSection,
.sampleDetailsAnalysisSection,
.sampleDetailsAnalysisCard,
.sampleDetailsVintageSection {
	min-width: 0;
	overflow: hidden;

	background: #ffffff;

	border: 1px solid #d9ded9;
	border-radius: 13px;

	box-shadow: 0 4px 12px rgba(53, 67, 57, 0.07);
}

.sampleDetailsSectionHeader {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;

	min-height: 66px;
	padding: 0.75rem 1rem;

	background: #ffffff;
	border-bottom: 1px solid #e2e6e2;
}

.sampleDetailsSectionHeaderMain {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	min-width: 0;
}

.sampleDetailsSectionIcon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;

	width: 34px;
	height: 34px;

	color: #2c4d34;
	background: #edf3ee;

	border: 1px solid #d6e2d8;
	border-radius: 9px;
}

.sampleDetailsSectionIcon i {
	font-size: 0.88rem;
}

.sampleDetailsSectionHeader h2 {
	margin: 0;

	color: #334138;

	font-size: 0.96rem;
	font-weight: 700;
	line-height: 1.2;
}

.sampleDetailsSectionHeader p {
	margin: 0.16rem 0 0;

	color: #758078;

	font-size: 0.72rem;
	line-height: 1.3;
}

.sampleDetailsSmallButton {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	flex: 0 0 auto;

	min-height: 32px;
	padding: 0.38rem 0.65rem;

	color: #ffffff;
	background: #7a2c37;

	font-size: 0.7rem;
	font-weight: 650;
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;

	border: 1px solid #7a2c37;
	border-radius: 8px;

	transition:
		background-color 150ms ease,
		border-color 150ms ease,
		box-shadow 150ms ease,
		transform 150ms ease;
}

.sampleDetailsSmallButton:hover,
.sampleDetailsSmallButton:focus {
	color: #ffffff;
	background: #67242e;
	border-color: #67242e;
	box-shadow: 0 3px 7px rgba(74, 31, 39, 0.16);
	transform: translateY(-1px);
}


/* =========================================================
   TOP LAYOUT
========================================================= */

.sampleDetailsTopLayout {
	display: grid;
	grid-template-columns: minmax(0, 1.65fr) minmax(300px, 0.75fr);
	gap: 1rem;
	align-items: stretch;
}


/* =========================================================
   SAMPLE OVERVIEW
========================================================= */

.sampleDetailsOverviewGrid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0;

	padding: 0.15rem 1rem 0.85rem;
}

.sampleDetailsOverviewItem {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 0.18rem;

	min-width: 0;
	min-height: 67px;
	padding: 0.7rem 0.8rem;

	border-right: 1px solid #e5e9e5;
	border-bottom: 1px solid #e5e9e5;
}

.sampleDetailsOverviewItem:nth-child(4n) {
	border-right: 0;
}

.sampleDetailsOverviewItem:nth-last-child(-n + 4) {
	border-bottom: 0;
}

.sampleDetailsOverviewItem span {
	color: #79837b;

	font-size: 0.64rem;
	font-weight: 700;
	letter-spacing: 0.045em;
	line-height: 1.2;
	text-transform: uppercase;
}

.sampleDetailsOverviewItem strong,
.sampleDetailsOverviewItem a {
	overflow: hidden;

	color: #39473e;

	font-size: 0.82rem;
	font-weight: 650;
	line-height: 1.3;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.sampleDetailsOverviewItem a {
	color: #7a2c37;
	text-decoration: none;
}

.sampleDetailsOverviewItem a:hover {
	color: #5f2029;
	text-decoration: underline;
}


/* =========================================================
   SMALL LINKED-SITE MAP
   MATCHES SITE CARD THUMBNAIL
========================================================= */

.sampleDetailsMapSection {
	display: flex;
	flex-direction: column;
}


/*
 * The Site Card thumbnail is exactly 150px tall on desktop.
 * Using the same height and internal wrapper rules gives this
 * map the same aspect ratio and camera calculation.
 */
.sampleDetailsMap {
	position: relative;

	flex: 0 0 150px;

	width: 100%;
	height: 150px;
	min-height: 150px;

	overflow: hidden;

	background-color: #d7dcd7;
	border-radius: 0 0 12px 12px;
}


/* Angular MapEdit host */
.sampleDetailsMapVisual {
	position: absolute;
	inset: 0;
	z-index: 2;

	display: block;

	width: 100%;
	height: 100%;
	min-width: 0;
	min-height: 0;

	overflow: hidden;
	pointer-events: none;
}


/*
 * These are the actual internal wrapper classes used by
 * MapVisualEdit.html and matched by the working Site Cards.
 */
.sampleDetailsMapVisual .vineyardMapCanvas {
	position: absolute;
	inset: 0;

	display: block;

	width: 100% !important;
	height: 100% !important;
	min-width: 0;
	min-height: 0;

	margin: 0 !important;
	padding: 0 !important;

	overflow: hidden;
	pointer-events: none;
}

.sampleDetailsMapVisual .vineyardMap {
	position: absolute;
	inset: 0;

	display: block;

	width: 100% !important;
	height: 100% !important;
	min-width: 0;
	min-height: 0;

	margin: 0 !important;
	padding: 0 !important;

	overflow: hidden;
	pointer-events: none;
}


/* MapLibre elements */
.sampleDetailsMapVisual .maplibregl-map,
.sampleDetailsMapVisual .maplibregl-canvas-container,
.sampleDetailsMapVisual .maplibregl-canvas {
	width: 100% !important;
	height: 100% !important;
	min-width: 0;
	min-height: 0;

	pointer-events: none !important;
}

.sampleDetailsMapVisual .maplibregl-control-container {
	display: none !important;
}


/* =========================================================
   LINKED-SITE MAP RESPONSIVE
========================================================= */

@media (max-width: 1199.98px) {

	.sampleDetailsMap {
		flex-basis: 145px;

		height: 145px;
		min-height: 145px;
	}

}


@media (max-width: 767.98px) {

	.sampleDetailsMap {
		flex-basis: 165px;

		height: 165px;
		min-height: 165px;
	}

}


@media (max-width: 419.98px) {

	.sampleDetailsMap {
		flex-basis: 155px;

		height: 155px;
		min-height: 155px;
	}

}

/* =========================================================
   OPTIONAL MAP OVERLAY
========================================================= */

.sampleDetailsMapOverlay {
	position: absolute;
	right: 0.65rem;
	bottom: 0.65rem;
	left: 0.65rem;

	z-index: 5;

	display: flex;
	align-items: center;

	padding: 0.52rem 0.65rem;

	background: rgba(255, 255, 255, 0.92);
	border: 1px solid rgba(207, 215, 208, 0.92);
	border-radius: 9px;

	box-shadow: 0 3px 8px rgba(44, 55, 47, 0.13);
	backdrop-filter: blur(4px);

	pointer-events: none;
}

.sampleDetailsMapSite {
	display: flex;
	flex-direction: column;
	gap: 0.08rem;

	min-width: 0;
}

.sampleDetailsMapSite span {
	color: #788279;

	font-size: 0.58rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.2;
	text-transform: uppercase;
}

.sampleDetailsMapSite strong {
	overflow: hidden;

	color: #344138;

	font-size: 0.76rem;
	font-weight: 700;
	line-height: 1.25;
	text-overflow: ellipsis;
	white-space: nowrap;
}


/* =========================================================
   LINKED-SITE MAP RESPONSIVE
========================================================= */

@media (max-width: 991.98px) {

	.sampleDetailsMap {
		height: 176px;
		min-height: 176px;
	}

}


@media (max-width: 767.98px) {

	.sampleDetailsMap {
		height: 176px;
		min-height: 176px;
	}

}

/* =========================================================
   SAMPLE INFORMATION AND NOTES
========================================================= */

.sampleDetailsMiddleLayout {
	display: grid;
	grid-template-columns: minmax(0, 1.7fr) minmax(280px, 0.7fr);
	gap: 1rem;
	align-items: start;
}

.sampleDetailsMiddleLayout > :only-child {
	grid-column: 1 / -1;
}

.sampleDetailsNotesContent {
	padding: 1rem;

	color: #505c53;

	font-size: 0.8rem;
	line-height: 1.55;
	white-space: pre-wrap;
}


/* =========================================================
   INFORMATION TABLE
========================================================= */

.sampleDetailsTableWrapper {
	width: 100%;
	overflow-x: auto;
}

.sampleDetailsTable {
	width: 100%;

	color: #3f4b42;

	font-size: 0.76rem;
	line-height: 1.3;

	border-collapse: collapse;
	table-layout: fixed;
}

.sampleDetailsTable th,
.sampleDetailsTable td {
	padding: 0.5rem 0.8rem;
	vertical-align: middle;

	border-bottom: 1px solid #e8ebe8;
}

.sampleDetailsTable tbody tr:last-child th,
.sampleDetailsTable tbody tr:last-child td {
	border-bottom: 0;
}

.sampleDetailsTable th[scope="row"] {
	width: 42%;

	color: #566159;
	background: #fafbfa;

	font-weight: 650;
	text-align: left;
}

.sampleDetailsTable td {
	color: #37433b;
	background: #ffffff;

	font-weight: 500;
	overflow-wrap: anywhere;
}

.sampleDetailsTable tbody tr:not(.sampleDetailsTableSectionRow):hover th,
.sampleDetailsTable tbody tr:not(.sampleDetailsTableSectionRow):hover td {
	background: #f8faf8;
}

.sampleDetailsTableSectionRow th {
	padding: 0.42rem 0.8rem;

	color: #2c4d34;
	background: #edf3ee;

	font-size: 13px;
	font-weight: 750;
	letter-spacing: 0.055em;
	line-height: 1.2;
	text-align: left;
	text-transform: uppercase;

	border-top: 1px solid #dce5dd;
	border-bottom: 1px solid #dce5dd;
}

.sampleDetailsTableSectionRow:first-child th {
	border-top: 0;
}

.sampleDetailsEmptyValue {
	color: #98a09a;
	font-style: italic;
	font-weight: 400;
}

.sampleDetailsUnit {
	margin-left: 0.15rem;
	color: #68736b;
	font-size: 0.72rem;
	font-weight: 500;
}


/* =========================================================
   ANALYSIS SECTION
========================================================= */

.sampleDetailsAnalysisSection {
	overflow: visible;
}

.sampleDetailsAnalysisGrid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.85rem;

	padding: 0.85rem;
}

.sampleDetailsAnalysisCard {
	box-shadow: none;
}

.sampleDetailsAnalysisCardHeader {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;

	min-height: 57px;
	padding: 0.65rem 0.8rem;

	background: #fafbfa;
	border-bottom: 1px solid #e1e5e1;
}

.sampleDetailsAnalysisCardTitle {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	min-width: 0;
}

.sampleDetailsAnalysisCardIcon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;

	width: 31px;
	height: 31px;

	color: #7a2c37;
	background: #f5eaec;

	border: 1px solid #ead5d9;
	border-radius: 8px;
}

.sampleDetailsAnalysisCardIcon i {
	font-size: 0.78rem;
}

.sampleDetailsAnalysisCardTitle h3 {
	margin: 0;

	color: #39463e;

	font-size: 0.82rem;
	font-weight: 700;
	line-height: 1.2;
}

.sampleDetailsAnalysisCardTitle span {
	display: block;
	margin-top: 0.1rem;

	color: #849087;

	font-size: 0.62rem;
	line-height: 1.2;
}


/* =========================================================
   ANALYSIS TABLES
========================================================= */

.sampleDetailsAnalysisTableWrapper {
	width: 100%;
	max-height: 360px;
	overflow: auto;
}

.sampleDetailsAnalysisTable {
	width: 100%;

	color: #3e4941;

	font-size: 0.71rem;
	line-height: 1.25;

	border-collapse: collapse;
	table-layout: fixed;
}

.sampleDetailsAnalysisTable thead {
	position: sticky;
	top: 0;
	z-index: 2;
}

.sampleDetailsAnalysisTable thead th {
	padding: 0.46rem 0.65rem;

	color: #ffffff;
	background: #708090;

	font-size: 0.62rem;
	font-weight: 700;
	letter-spacing: 0.035em;
	text-align: left;
	text-transform: uppercase;

	border-bottom: 1px solid #657583;
}

.sampleDetailsAnalysisTable thead th:last-child {
	width: 35%;
	text-align: right;
}

.sampleDetailsAnalysisTable tbody th,
.sampleDetailsAnalysisTable tbody td {
	padding: 0.45rem 0.65rem;
	vertical-align: middle;

	border-bottom: 1px solid #e6e9e6;
}

.sampleDetailsAnalysisTable tbody tr:last-child th,
.sampleDetailsAnalysisTable tbody tr:last-child td {
	border-bottom: 0;
}

.sampleDetailsAnalysisTable tbody tr:nth-child(even) th,
.sampleDetailsAnalysisTable tbody tr:nth-child(even) td {
	background: #f7f9f7;
}

.sampleDetailsAnalysisTable tbody tr:hover th,
.sampleDetailsAnalysisTable tbody tr:hover td {
	background: #eef3ef;
}

.sampleDetailsAnalysisTable tbody th {
	color: #4b574f;

	font-weight: 600;
	text-align: left;
	overflow-wrap: anywhere;
}

.sampleDetailsAnalysisTable tbody td {
	color: #38443c;
	text-align: right;
	white-space: nowrap;
}

.sampleDetailsAnalysisTable tbody td strong {
	font-weight: 700;
}

.sampleDetailsNoAnalysisData {
	display: flex;
	align-items: center;
	justify-content: center;

	min-height: 100px;
	padding: 1rem;

	color: #929a94;
	background: #fafbfa;

	font-size: 0.72rem;
	font-style: italic;
	text-align: center;
}


/* =========================================================
   SCROLLBARS
========================================================= */

.sampleDetailsAnalysisTableWrapper::-webkit-scrollbar {
	width: 7px;
	height: 7px;
}

.sampleDetailsAnalysisTableWrapper::-webkit-scrollbar-track {
	background: #f0f2f0;
}

.sampleDetailsAnalysisTableWrapper::-webkit-scrollbar-thumb {
	background: #b6beb8;
	border-radius: 999px;
}

.sampleDetailsAnalysisTableWrapper::-webkit-scrollbar-thumb:hover {
	background: #99a49c;
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 1199.98px) {

	.sampleDetailsTopLayout {
		grid-template-columns: minmax(0, 1.45fr) minmax(275px, 0.75fr);
	}

	.sampleDetailsOverviewGrid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.sampleDetailsOverviewItem:nth-child(4n) {
		border-right: 1px solid #e5e9e5;
	}

	.sampleDetailsOverviewItem:nth-child(2n) {
		border-right: 0;
	}

	.sampleDetailsOverviewItem:nth-last-child(-n + 4) {
		border-bottom: 1px solid #e5e9e5;
	}

	.sampleDetailsOverviewItem:nth-last-child(-n + 2) {
		border-bottom: 0;
	}

	.sampleDetailsAnalysisGrid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.sampleDetailsAnalysisCard:last-child:nth-child(odd) {
		grid-column: 1 / -1;
	}
}


/* =========================================================
   SMALL TABLET
========================================================= */

@media (max-width: 991.98px) {

	.sampleDetailsPage {
		padding: 0.85rem 0.85rem 1.5rem;
	}

	.sampleDetailsHeader {
		align-items: flex-start;
		flex-direction: column;

		padding: 0.9rem 1rem;
	}

	.sampleDetailsHeaderActions {
		width: 100%;
		justify-content: flex-start;
	}

	.sampleDetailsTopLayout,
	.sampleDetailsMiddleLayout {
		grid-template-columns: 1fr;
	}


	.sampleDetailsAnalysisGrid {
		grid-template-columns: 1fr;
	}

	.sampleDetailsAnalysisCard:last-child:nth-child(odd) {
		grid-column: auto;
	}
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 767.98px) {

	.sampleDetailsPage {
		padding: 0.65rem 0.55rem 1.25rem;
	}

	.sampleDetailsHeader {
		margin-bottom: 0.75rem;
		padding: 0.85rem;

		border-radius: 11px;
	}

	.sampleDetailsTitleRow {
		align-items: flex-start;
	}

	.sampleDetailsTitleIcon {
		width: 38px;
		height: 38px;
	}

	.sampleDetailsTitleText h1 {
		font-size: 1.35rem;
	}

	.sampleDetailsTitleText p {
		font-size: 0.73rem;
	}

	.sampleDetailsHeaderActions {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.sampleDetailsButton {
		width: 100%;
	}

	.sampleDetailsContent {
		gap: 0.75rem;
	}

	.sampleDetailsTopLayout,
	.sampleDetailsMiddleLayout {
		gap: 0.75rem;
	}

	.sampleDetailsSectionHeader {
		min-height: 60px;
		padding: 0.65rem 0.75rem;
	}

	.sampleDetailsSectionHeader p {
		display: none;
	}

	.sampleDetailsOverviewGrid {
		padding: 0.1rem 0.65rem 0.65rem;
	}

	.sampleDetailsOverviewItem {
		min-height: 62px;
		padding: 0.6rem;
	}

	.sampleDetailsOverviewItem strong,
	.sampleDetailsOverviewItem a {
		font-size: 0.76rem;
	}


	.sampleDetailsTable {
		font-size: 0.72rem;
	}

	.sampleDetailsTable th,
	.sampleDetailsTable td {
		padding: 0.48rem 0.6rem;
	}

	.sampleDetailsTable th[scope="row"] {
		width: 46%;
	}

	.sampleDetailsAnalysisGrid {
		gap: 0.7rem;
		padding: 0.7rem;
	}

	.sampleDetailsVintageSummary {
		min-height: 54px;
		padding: 0.6rem 0.7rem;
	}

	.sampleDetailsVintageSummary p {
		display: none;
	}
}


/* =========================================================
   VERY SMALL MOBILE
========================================================= */

@media (max-width: 480px) {

	.sampleDetailsHeaderActions {
		grid-template-columns: 1fr;
	}

	.sampleDetailsOverviewGrid {
		grid-template-columns: 1fr;
	}

	.sampleDetailsOverviewItem {
		border-right: 0;
		border-bottom: 1px solid #e5e9e5;
	}

	.sampleDetailsOverviewItem:nth-child(2n),
	.sampleDetailsOverviewItem:nth-child(4n) {
		border-right: 0;
	}

	.sampleDetailsOverviewItem:nth-last-child(-n + 2) {
		border-bottom: 1px solid #e5e9e5;
	}

	.sampleDetailsOverviewItem:last-child {
		border-bottom: 0;
	}

	.sampleDetailsSmallButton span {
		display: none;
	}

	.sampleDetailsSmallButton {
		width: 32px;
		padding-right: 0;
		padding-left: 0;
	}

	.sampleDetailsTable th[scope="row"] {
		width: 49%;
	}

	.sampleDetailsAnalysisTable thead th:last-child {
		width: 39%;
	}

	.sampleDetailsVintageChevron span {
		display: none;
	}
}


/* =========================================================
   COLLAPSIBLE SAMPLE INFORMATION
========================================================= */

.sampleDetailsVintageSection {
	min-width: 0;
	overflow: hidden;

	background: #ffffff;
	border: 1px solid #d9ded9;
	border-radius: 13px;
	box-shadow: 0 4px 12px rgba(53, 67, 57, 0.07);
}

.sampleDetailsVintageSummary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;

	min-height: 60px;
	padding: 0.7rem 0.9rem;

	list-style: none;
	cursor: pointer;
	user-select: none;

	background: #ffffff;

	transition:
		background-color 150ms ease,
		border-color 150ms ease;
}

.sampleDetailsVintageSummary::-webkit-details-marker {
	display: none;
}

.sampleDetailsVintageSummary::marker {
	content: "";
}

.sampleDetailsVintageSummary:hover {
	background: #f8faf8;
}

.sampleDetailsVintageSection[open]
	.sampleDetailsVintageSummary {
	background: #f8faf8;
	border-bottom: 1px solid #e2e6e2;
}

.sampleDetailsVintageSummaryMain {
	display: flex;
	align-items: center;
	gap: 0.7rem;

	min-width: 0;
}

.sampleDetailsVintageSummary h2 {
	margin: 0;

	color: #334138;

	font-size: 0.92rem;
	font-weight: 700;
	line-height: 1.2;
}

.sampleDetailsVintageSummary p {
	margin: 0.14rem 0 0;

	color: #758078;

	font-size: 0.69rem;
	line-height: 1.3;
}


/* =========================================================
   COLLAPSIBLE SAMPLE INFORMATION TOGGLE
========================================================= */

.sampleDetailsVintageChevron {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: flex-end;
	gap: 0.45rem;

	color: #68736b;

	font-size: 0.66rem;
	font-weight: 650;
	line-height: 1.2;
	white-space: nowrap;
}

.sampleDetailsVintageChevron i {
	color: #7a2c37;

	font-size: 0.62rem;

	transition: transform 180ms ease;
}

.sampleDetailsVintageOpenText {
	display: none;
}

.sampleDetailsVintageSection[open]
	.sampleDetailsVintageClosedText {
	display: none;
}

.sampleDetailsVintageSection[open]
	.sampleDetailsVintageOpenText {
	display: inline;
}

.sampleDetailsVintageSection[open]
	.sampleDetailsVintageChevron i {
	transform: rotate(180deg);
}


/* =========================================================
   COLLAPSIBLE SAMPLE INFORMATION CONTENT
========================================================= */

.sampleDetailsVintageContent {
	padding: 0;
}

.sampleDetailsVintageContent .sampleDetailsTableWrapper {
	overflow-x: auto;

	border: 0;
	border-radius: 0;
	box-shadow: none;
}

/* =========================================================
   COMPACT SAMPLE INFORMATION TABLE
========================================================= */

.sampleDetailsVintageContent .sampleDetailsTable {
	table-layout: fixed;
}

.sampleDetailsCompactRow th {
	width: 18%;
}

.sampleDetailsCompactRow td {
	width: 32%;
}

.sampleDetailsCompactMeasurementRow th {
	width: 32%;
}

.sampleDetailsCompactMeasurementRow td {
	width: 68%;
}

.sampleDetailsVintageContent .sampleDetailsTable th,
.sampleDetailsVintageContent .sampleDetailsTable td {
	padding: 0.38rem 0.6rem;
}

.sampleDetailsVintageContent
	.sampleDetailsCompactRow th[scope="row"] {
	width: 18%;
}

.sampleDetailsVintageContent
	.sampleDetailsCompactMeasurementRow th[scope="row"] {
	width: 32%;
}


/* =========================================================
   COMPACT SAMPLE INFORMATION RESPONSIVE
========================================================= */

@media (max-width: 767.98px) {

	.sampleDetailsVintageContent .sampleDetailsTable {
		width: 100%;
		table-layout: auto;
	}

	.sampleDetailsVintageContent .sampleDetailsTable tbody {
		display: block;
		width: 100%;
	}

	.sampleDetailsVintageContent
		.sampleDetailsTableSectionRow {
		display: table;
		width: 100%;
		table-layout: fixed;
	}

	.sampleDetailsCompactRow,
	.sampleDetailsCompactMeasurementRow {
		display: grid;
		width: 100%;
	}

	/*
	 * Date and practice rows contain:
	 * label, value, label, value.
	 *
	 * On mobile, display each pair as its own full-width row.
	 */
	.sampleDetailsCompactRow {
		grid-template-columns: minmax(0, 42%) minmax(0, 58%);
	}

	.sampleDetailsCompactRow th,
	.sampleDetailsCompactRow td,
	.sampleDetailsCompactMeasurementRow th,
	.sampleDetailsCompactMeasurementRow td {
		display: block;
		width: auto !important;
		min-width: 0;

		box-sizing: border-box;

		white-space: normal;
		word-break: normal;
		overflow-wrap: anywhere;
	}

	.sampleDetailsCompactRow th {
		grid-column: 1;
	}

	.sampleDetailsCompactRow td {
		grid-column: 2;
	}

	.sampleDetailsCompactRow th:nth-child(1),
	.sampleDetailsCompactRow td:nth-child(2) {
		grid-row: 1;
	}

	.sampleDetailsCompactRow th:nth-child(3),
	.sampleDetailsCompactRow td:nth-child(4) {
		grid-row: 2;

		border-top: 1px solid #e8ebe8;
	}

	.sampleDetailsCompactMeasurementRow {
		grid-template-columns: minmax(0, 42%) minmax(0, 58%);
	}

	.sampleDetailsCompactMeasurementRow th {
		grid-column: 1;
	}

	.sampleDetailsCompactMeasurementRow td {
		grid-column: 2;

		/*
		 * Overrides colspan="3" so the value stays
		 * beside its measurement label on mobile.
		 */
		grid-row: 1;
	}

	.sampleDetailsCompactRow td[colspan],
	.sampleDetailsCompactMeasurementRow td[colspan] {
		grid-column: 2;
	}

	.sampleDetailsVintageContent .sampleDetailsEmptyValue {
		display: inline;

		white-space: normal;
		word-break: normal;
		overflow-wrap: normal;
	}
}

/* =========================================================
   LINKED SAMPLES — MATCH TABLE HEIGHT + INTERNAL SCROLL
========================================================= */

/*
 * Stretch both columns to the same grid-row height.
 * The row height is determined by the taller of the site-table
 * area and the linked-samples panel.
 */

/*
 * Keep the heading and search field fixed while only the list scrolls.
 */
.wineSiteDetailsSamplesSection .wineSiteDetailsSectionHeader,
.wineSiteDetailsSampleSearch {
	flex: 0 0 auto;
}

/* =========================================================
   LINKED SAMPLE LIST CARD
========================================================= */

.wineSiteDetailsSampleList {
	flex: 1 1 auto;
	min-height: 0;
	overflow-x: hidden;
	overflow-y: auto;

	background: #ffffff;
	border: 1px solid #d7ddd7;
	border-radius: 10px;
	box-shadow: 0 4px 12px rgba(45, 55, 47, 0.06);

	overscroll-behavior: contain;
	scrollbar-gutter: stable;
}


/* =========================================================
   LINKED SAMPLE ROW
========================================================= */

.wineSiteDetailsSampleRow {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.6rem;

	min-height: 48px;
	padding: 0.48rem 0.58rem;

	color: #3f443f;
	background: #ffffff;
	border-bottom: 1px solid #e4e8e4;

	text-decoration: none;

	transition:
		background-color 150ms ease,
		color 150ms ease,
		padding-left 150ms ease;
}

.wineSiteDetailsSampleRow:last-child {
	border-bottom: 0;
}

.wineSiteDetailsSampleRow:nth-child(even) {
	background: #fafbfa;
}

.wineSiteDetailsSampleRow:hover {
	padding-left: 0.68rem;

	color: #2c4d34;
	background: #f1f5f1;
	text-decoration: none;
}


/* =========================================================
   SAMPLE ROW CONTENT
========================================================= */

.wineSiteDetailsSampleMain {
	display: flex;
	align-items: center;
	gap: 0.48rem;

	min-width: 0;
	flex: 1 1 auto;
}

.wineSiteDetailsSampleIcon {
	display: flex;
	flex: 0 0 27px;
	align-items: center;
	justify-content: center;

	width: 27px;
	height: 27px;

	color: #7a2c37;
	background: #f4eaec;
	border-radius: 6px;

	font-size: 0.62rem;
}

.wineSiteDetailsSampleText {
	display: flex;
	min-width: 0;
	flex-direction: column;
	gap: 0.08rem;
}

.wineSiteDetailsSampleText strong {
	display: block;
	overflow: hidden;

	color: #3f443f;

	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;

	text-overflow: ellipsis;
	white-space: nowrap;
}

.wineSiteDetailsSampleText span {
	display: block;

	color: #8a938c;

	font-size: 0.6rem;
	line-height: 1.15;
}

.wineSiteDetailsSampleChevron {
	flex: 0 0 auto;

	color: #9aa39c;

	font-size: 0.55rem;
}


/* =========================================================
   SAMPLE LIST SCROLLBAR
========================================================= */

.wineSiteDetailsSampleList::-webkit-scrollbar {
	width: 7px;
}

.wineSiteDetailsSampleList::-webkit-scrollbar-track {
	background: #f0f2f0;
}

.wineSiteDetailsSampleList::-webkit-scrollbar-thumb {
	background: #b6beb8;
	border-radius: 999px;
}

.wineSiteDetailsSampleList::-webkit-scrollbar-thumb:hover {
	background: #99a49c;
}

/* =========================================================
   LINKED SAMPLE SEARCH
========================================================= */

.wineSiteDetailsSampleSearch {
	position: relative;
	display: flex;
	align-items: center;
	margin-bottom: 0.42rem;
}

.wineSiteDetailsSampleSearch > .fa-search {
	position: absolute;
	left: 0.68rem;
	z-index: 2;
	color: #7c8880;
	font-size: 0.68rem;
	pointer-events: none;
}

.wineSiteDetailsSampleSearch .form-control {
	width: 100%;
	min-height: 34px;
	padding: 0.42rem 2rem 0.42rem 1.9rem;
	color: #3f443f;
	background: #ffffff;
	border: 1px solid #d7ddd7;
	border-radius: 8px;
	font-size: 0.72rem;
	line-height: 1.2;
	box-shadow: none;
}

.wineSiteDetailsSampleSearch .form-control:focus {
	border-color: #708090;
	box-shadow: 0 0 0 3px rgba(112, 128, 144, 0.12);
	outline: none;
}

.wineSiteDetailsSampleSearchClear {
	position: absolute;
	right: 0.38rem;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	padding: 0;
	color: #7b857e;
	background: transparent;
	border: 0;
	border-radius: 50%;
	font-size: 0.65rem;
	cursor: pointer;
}

.wineSiteDetailsSampleSearchClear:hover,
.wineSiteDetailsSampleSearchClear:focus {
	color: #7a2c37;
	background: #f4eaec;
	outline: none;
}

/*
 * This is the only part of the Linked Samples card that scrolls.
 * It expands to the bottom edge of the taller site-information table.
 */
.wineSiteDetailsSampleList {
	flex: 1 1 auto;
	min-height: 0;
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-gutter: stable;
}

/* Scrollbar treatment */
.wineSiteDetailsSampleList::-webkit-scrollbar {
	width: 7px;
}

.wineSiteDetailsSampleList::-webkit-scrollbar-track {
	background: #f0f2f0;
}

.wineSiteDetailsSampleList::-webkit-scrollbar-thumb {
	background: #b6beb8;
	border-radius: 999px;
}

.wineSiteDetailsSampleList::-webkit-scrollbar-thumb:hover {
	background: #99a49c;
}

.wineSiteDetailsNoSearchResults {
	flex: 1 1 auto;
	min-height: 0;
}

/*
 * Once the layout stacks, use a practical capped list height rather
 * than trying to match a table in a different row.
 */
@media (max-width: 860px) {
	.wineSiteDetailsSamplesSection {
		height: auto;
	}

	.wineSiteDetailsSampleList {
		max-height: 360px;
	}
}

@media (max-width: 600px) {
	.wineSiteDetailsSampleList {
		max-height: 320px;
	}
}