/**
 * Harvest Calendar & Dynamic Pre-Orders Stylesheet
 */

:root {
	--hcp-primary: #2e7d32;
	--hcp-primary-dark: #1b5e20;
	--hcp-accent: #e65100;
	--hcp-text: #2c3e50;
	--hcp-bg-light: #f8fafc;
	--hcp-border: #e2e8f0;
	--hcp-radius: 10px;
	--hcp-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.07), 0 2px 4px -1px rgba(0, 0, 0, 0.04);
}

.hcp-calendar-container {
	max-width: 1200px;
	margin: 2rem auto;
	padding: 0 1rem;
	font-family: inherit;
	color: var(--hcp-text);
}

.hcp-calendar-header {
	text-align: center;
	margin-bottom: 2rem;
}

.hcp-calendar-title {
	font-size: 2rem;
	font-weight: 700;
	color: #1a202c;
	margin-bottom: 0.5rem;
}

.hcp-calendar-subtitle {
	font-size: 1.05rem;
	color: #64748b;
	max-width: 700px;
	margin: 0 auto;
}

/* Filter Bar */
.hcp-filter-bar {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	background: #ffffff;
	padding: 1.25rem;
	border-radius: var(--hcp-radius);
	box-shadow: var(--hcp-shadow);
	border: 1px solid var(--hcp-border);
	margin-bottom: 2rem;
	align-items: flex-end;
}

.hcp-filter-group {
	flex: 1;
	min-width: 200px;
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
}

.hcp-filter-group label {
	font-size: 0.88rem;
	font-weight: 600;
	color: #475569;
}

.hcp-select, .hcp-input {
	width: 100%;
	padding: 0.65rem 0.85rem;
	border: 1px solid var(--hcp-border);
	border-radius: 6px;
	background-color: #fff;
	font-size: 0.95rem;
	color: #1e293b;
	outline: none;
	transition: border-color 0.2s;
}

.hcp-select:focus, .hcp-input:focus {
	border-color: var(--hcp-primary);
}

.hcp-btn-primary, .hcp-btn-secondary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.65rem 1.25rem;
	border-radius: 6px;
	font-size: 0.95rem;
	font-weight: 600;
	cursor: pointer;
	border: none;
	text-decoration: none !important;
	transition: all 0.2s;
}

.hcp-btn-primary {
	background: var(--hcp-primary);
	color: #ffffff !important;
}

.hcp-btn-primary:hover {
	background: var(--hcp-primary-dark);
}

.hcp-btn-secondary {
	background: #f1f5f9;
	color: #475569 !important;
}

.hcp-btn-secondary:hover {
	background: #e2e8f0;
}

/* Crops Grid */
.hcp-crops-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 1.5rem;
}

/* Crop Card */
.hcp-crop-card {
	background: #ffffff;
	border-radius: var(--hcp-radius);
	border: 1px solid var(--hcp-border);
	overflow: hidden;
	box-shadow: var(--hcp-shadow);
	display: flex;
	flex-direction: column;
	transition: transform 0.2s, box-shadow 0.2s;
}

.hcp-crop-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}

.hcp-crop-thumb-wrap {
	position: relative;
	width: 100%;
	height: 180px;
	background: #f1f5f9;
}

.hcp-crop-thumb {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.hcp-crop-badge {
	position: absolute;
	top: 10px;
	left: 10px;
	padding: 4px 8px;
	border-radius: 4px;
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	color: #fff;
}

.hcp-badge-booking_open { background: var(--hcp-accent); }
.hcp-badge-cultivating { background: #1565c0; }
.hcp-badge-harvesting { background: var(--hcp-primary); }
.hcp-badge-completed { background: #64748b; }

.hcp-crop-body {
	padding: 1.25rem;
	display: flex;
	flex-direction: column;
	flex: 1;
}

.hcp-crop-name {
	font-size: 1.15rem;
	font-weight: 700;
	margin: 0 0 0.4rem;
	color: #0f172a;
}

.hcp-crop-farmer {
	font-size: 0.88rem;
	color: #64748b;
	margin-bottom: 0.8rem;
}

.hcp-crop-meta-row {
	display: flex;
	justify-content: space-between;
	font-size: 0.85rem;
	margin-bottom: 0.4rem;
	color: #475569;
}

.hcp-crop-price {
	font-size: 1.2rem;
	font-weight: 800;
	color: var(--hcp-primary);
	margin: 0.8rem 0;
}

.hcp-crop-actions {
	margin-top: auto;
	padding-top: 1rem;
}

/* Modal */
.hcp-modal {
	position: fixed;
	top: 0; left: 0; width: 100%; height: 100%;
	background: rgba(0, 0, 0, 0.6);
	backdrop-filter: blur(2px);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 99999;
}

.hcp-modal-content {
	background: #fff;
	padding: 2rem;
	border-radius: var(--hcp-radius);
	max-width: 450px;
	width: 90%;
	position: relative;
	box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.2);
}

.hcp-modal-close {
	position: absolute;
	top: 15px; right: 15px;
	font-size: 1.5rem;
	background: none;
	border: none;
	cursor: pointer;
	color: #94a3b8;
}

.hcp-form-row {
	margin-bottom: 1rem;
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
}

/* Spinner */
.hcp-loading {
	text-align: center;
	padding: 3rem 0;
}

.hcp-spinner {
	width: 40px;
	height: 40px;
	border: 3px solid #e2e8f0;
	border-top-color: var(--hcp-primary);
	border-radius: 50%;
	animation: hcp-spin 0.8s linear infinite;
	margin: 0 auto 10px;
}

@keyframes hcp-spin {
	to { transform: rotate(360deg); }
}

.hcp-empty-state {
	text-align: center;
	padding: 4rem 1rem;
	background: #fff;
	border-radius: var(--hcp-radius);
	border: 1px dashed var(--hcp-border);
}

/* ──────────────────────────────────────────────────────────────
 * Customer Dashboard Portal Styles
 * ────────────────────────────────────────────────────────────── */
.hcp-customer-dashboard-wrap {
	max-width: 1000px;
	margin: 1.5rem auto;
	font-family: inherit;
	color: #1e293b;
}

.hcp-dash-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 1rem;
	margin-bottom: 1.8rem;
}

.hcp-dash-title {
	font-size: 1.6rem;
	font-weight: 700;
	margin: 0 0 0.3rem;
	display: flex;
	align-items: center;
	gap: 0.5rem;
	color: #0f172a;
}

.hcp-dash-subtitle {
	margin: 0;
	color: #64748b;
	font-size: 0.95rem;
}

/* Summary Metrics */
.hcp-metrics-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 1rem;
	margin-bottom: 2rem;
}

.hcp-metric-card {
	background: #ffffff;
	border-radius: var(--hcp-radius);
	padding: 1.2rem;
	display: flex;
	justify-content: space-between;
	align-items: center;
	box-shadow: var(--hcp-shadow);
	border: 1px solid var(--hcp-border);
	transition: transform 0.2s ease;
}

.hcp-metric-card:hover {
	transform: translateY(-2px);
}

.hcp-metric-blue { border-left: 4px solid #1565c0; }
.hcp-metric-green { border-left: 4px solid #2e7d32; }
.hcp-metric-orange { border-left: 4px solid #e65100; }
.hcp-metric-purple { border-left: 4px solid #7c3aed; }

.hcp-metric-content {
	display: flex;
	flex-direction: column;
}

.hcp-metric-label {
	font-size: 0.82rem;
	font-weight: 600;
	color: #64748b;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.hcp-metric-num {
	font-size: 1.75rem;
	font-weight: 800;
	color: #0f172a;
	margin-top: 0.2rem;
}

.hcp-metric-icon {
	font-size: 1.8rem;
	color: #cbd5e1;
}

/* Customer Booking Card */
.hcp-customer-bookings-list {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.hcp-customer-card {
	background: #ffffff;
	border-radius: var(--hcp-radius);
	border: 1px solid var(--hcp-border);
	box-shadow: var(--hcp-shadow);
	overflow: hidden;
	padding: 1.5rem;
}

.hcp-card-top {
	display: flex;
	gap: 1.25rem;
	margin-bottom: 1.25rem;
	flex-wrap: wrap;
}

.hcp-card-thumb-wrap {
	position: relative;
	width: 130px;
	height: 110px;
	border-radius: 8px;
	overflow: hidden;
	background: #f1f5f9;
	flex-shrink: 0;
}

.hcp-card-thumb {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.hcp-organic-badge {
	position: absolute;
	bottom: 6px;
	left: 6px;
	background: #2e7d32;
	color: #fff;
	font-size: 0.68rem;
	font-weight: 700;
	padding: 2px 6px;
	border-radius: 4px;
}

.hcp-card-main-info {
	flex: 1;
	min-width: 250px;
}

.hcp-card-header-line {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	margin-bottom: 0.4rem;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.hcp-card-crop-title {
	font-size: 1.25rem;
	font-weight: 700;
	margin: 0;
	color: #0f172a;
}

.hcp-crop-variety {
	font-size: 0.95rem;
	font-weight: normal;
	color: #64748b;
	margin-left: 0.3rem;
}

.hcp-card-farmer-line {
	font-size: 0.88rem;
	color: #64748b;
	margin-bottom: 0.8rem;
	display: flex;
	align-items: center;
	gap: 0.4rem;
	flex-wrap: wrap;
}

.hcp-dot-sep {
	color: #cbd5e1;
}

.hcp-card-meta-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
}

.hcp-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	padding: 0.35rem 0.7rem;
	border-radius: 6px;
	font-size: 0.82rem;
	color: #334155;
}

.hcp-chip-harvest {
	background: #f0fdf4;
	border-color: #bbf7d0;
	color: #166534;
}

/* Status Pills */
.hcp-status-pill {
	display: inline-block;
	padding: 0.25rem 0.7rem;
	border-radius: 9999px;
	font-size: 0.78rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.02em;
}

.hcp-pill-amber { background: #fef3c7; color: #92400e; }
.hcp-pill-blue  { background: #dbeafe; color: #1e40af; }
.hcp-pill-teal  { background: #ccfbf1; color: #115e59; }
.hcp-pill-green { background: #dcfce7; color: #166534; }
.hcp-pill-red   { background: #fee2e2; color: #991b1b; }
.hcp-pill-gray  { background: #f1f5f9; color: #475569; }

/* Growth Lifecycle Stepper */
.hcp-growth-preview {
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	padding: 0.9rem 1.1rem;
	margin-bottom: 1rem;
}

.hcp-growth-title {
	font-size: 0.85rem;
	margin-bottom: 0.6rem;
	display: flex;
	align-items: center;
	gap: 0.4rem;
}

.hcp-growth-stepper {
	display: flex;
	justify-content: space-between;
	position: relative;
	gap: 0.5rem;
}

.hcp-step-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	flex: 1;
	opacity: 0.45;
	transition: opacity 0.2s ease;
}

.hcp-step-item.hcp-step-done {
	opacity: 0.85;
}

.hcp-step-item.hcp-step-active {
	opacity: 1;
	transform: scale(1.05);
}

.hcp-step-icon {
	font-size: 1.3rem;
	margin-bottom: 0.2rem;
}

.hcp-step-label {
	font-size: 0.74rem;
	font-weight: 600;
	color: #334155;
}

/* Accordion for Farm Updates */
.hcp-updates-accordion {
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	margin-bottom: 1rem;
	overflow: hidden;
}

.hcp-accordion-summary {
	padding: 0.75rem 1rem;
	font-size: 0.88rem;
	font-weight: 600;
	color: #1e293b;
	cursor: pointer;
	display: flex;
	justify-content: space-between;
	align-items: center;
	user-select: none;
}

.hcp-accordion-content {
	padding: 0.75rem 1rem 1rem;
	border-top: 1px solid #e2e8f0;
	background: #fff;
	display: flex;
	flex-direction: column;
	gap: 0.8rem;
}

.hcp-update-row {
	display: flex;
	gap: 0.8rem;
	align-items: flex-start;
	padding-bottom: 0.8rem;
	border-bottom: 1px solid #f1f5f9;
}

.hcp-update-row:last-child {
	border-bottom: none;
	padding-bottom: 0;
}

.hcp-update-meta-col {
	min-width: 80px;
	font-size: 0.8rem;
}

.hcp-sub-stage {
	display: block;
	font-size: 0.72rem;
	color: #64748b;
}

.hcp-update-photo-col {
	width: 90px;
	flex-shrink: 0;
}

.hcp-update-img {
	width: 100%;
	height: 60px;
	object-fit: cover;
	border-radius: 6px;
	border: 1px solid #e2e8f0;
}

.hcp-update-notes-col p {
	margin: 0;
	font-size: 0.85rem;
	color: #475569;
	line-height: 1.4;
}

/* Actions Bar */
.hcp-card-actions-bar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.8rem;
	padding-top: 0.5rem;
}

.hcp-btn-whatsapp {
	background: #25d366;
	color: #ffffff !important;
	border: none;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.45rem 0.9rem;
	border-radius: 6px;
	font-size: 0.88rem;
	font-weight: 600;
	text-decoration: none !important;
	transition: background 0.2s ease;
}

.hcp-btn-whatsapp:hover {
	background: #1eb956;
}

.hcp-btn-sm {
	padding: 0.45rem 0.85rem;
	font-size: 0.85rem;
}

/* Empty State Card */
.hcp-empty-state-card {
	text-align: center;
	padding: 3.5rem 1.5rem;
	background: #ffffff;
	border-radius: var(--hcp-radius);
	border: 1px dashed var(--hcp-border);
}

.hcp-empty-icon {
	font-size: 3rem;
	margin-bottom: 0.8rem;
}


/* Calendar 1.2: scoped layout; no theme, WooCommerce or Dokan containers are resized. */
[data-hcp-calendar] { container-type:inline-size; box-sizing:border-box; width:100%; padding:0; margin-top:36px; margin-bottom:48px; text-align:left; }
[data-hcp-calendar][data-wide="yes"] { max-width:none; }
[data-hcp-calendar] *, .hcp-detail-dialog * { box-sizing:border-box; }
[data-hcp-calendar] [hidden] { display:none !important; }
[data-hcp-calendar] button, .hcp-detail-dialog button { font-family:inherit; line-height:1.4; }
[data-hcp-calendar] button:focus-visible, [data-hcp-calendar] a:focus-visible, [data-hcp-calendar] input:focus-visible, [data-hcp-calendar] select:focus-visible, [data-hcp-calendar] summary:focus-visible { outline:3px solid #bd6d22; outline-offset:3px; }
[data-hcp-calendar] button:disabled { opacity:.6; cursor:wait; }
[data-hcp-calendar] .hcp-calendar-header { text-align:left; border-bottom:1px solid #dce5d9; padding-bottom:26px; margin-bottom:26px; }
.hcp-eyebrow { display:block; color:#567346; font-size:11px; font-weight:800; letter-spacing:.13em; margin-bottom:10px; }
[data-hcp-calendar] .hcp-calendar-title { font-size:clamp(25px,2.7vw,42px); line-height:1.16; margin:0 0 12px; letter-spacing:-.035em; color:#20351e; }
[data-hcp-calendar] .hcp-calendar-subtitle { max-width:850px; margin:0; font-size:16px; line-height:1.6; }
[data-hcp-calendar] .hcp-filter-bar { box-shadow:none; border:1px solid #e1e7dc; background:#f6f8f2; padding:18px 22px; margin-bottom:18px; gap:18px; }
[data-hcp-calendar] .hcp-filter-group { flex:0 1 280px; min-width:180px; }
[data-hcp-calendar] .hcp-select { min-height:44px; }
.hcp-results-bar { display:flex; align-items:center; justify-content:space-between; gap:15px; color:#6b7767; font-size:13px; margin-bottom:18px; }
.hcp-results-bar p { margin:0; font-weight:600; }
[data-hcp-calendar] .hcp-crops-grid { grid-template-columns:minmax(0,1fr); gap:20px; }
@container (min-width: 520px) { [data-hcp-calendar] .hcp-crops-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@container (min-width: 780px) { [data-hcp-calendar] .hcp-crops-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@container (min-width: 1080px) { [data-hcp-calendar] .hcp-crops-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@container (min-width: 1440px) { [data-hcp-calendar] .hcp-crops-grid { grid-template-columns:repeat(6,minmax(0,1fr)); } }
[data-hcp-calendar] .hcp-crop-card { min-width:0; box-shadow:0 2px 7px #23361a08; border-color:#e2e7df; border-radius:14px; }
[data-hcp-calendar] .hcp-crop-card:hover { transform:translateY(-3px); box-shadow:0 8px 24px #23361a12; }
.hcp-photo-button { border:0; padding:0; width:100%; height:170px; display:block; background:#edf2e8; cursor:pointer; overflow:hidden; }
.hcp-photo-placeholder { width:100%; height:100%; min-height:130px; background:linear-gradient(135deg,#e8efe0,#f5f0dd); color:#72905b; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; }
.hcp-photo-placeholder svg { width:60px; height:60px; }
.hcp-photo-placeholder span { font-size:11px; letter-spacing:.03em; }
[data-hcp-calendar] .hcp-crop-thumb { display:block; margin:0; width:100%; height:100%; object-fit:cover; }
[data-hcp-calendar] .hcp-crop-body { padding:18px; }
.hcp-status-label { align-self:flex-start; font-size:10px; font-weight:750; text-transform:uppercase; letter-spacing:.06em; color:#626f51; background:#f0f3e9; border-radius:20px; padding:4px 8px; margin-bottom:12px; }
.hcp-status-label.hcp-is-open { color:#32703c; background:#e9f6e8; }
[data-hcp-calendar] .hcp-crop-name { font-size:17px; line-height:1.3; margin:0 0 6px; overflow-wrap:anywhere; }
[data-hcp-calendar] .hcp-crop-name button { text-align:left; color:#21351e; padding:0; border:0; background:none; font-size:inherit; font-weight:750; cursor:pointer; }
[data-hcp-calendar] .hcp-crop-farmer { font-size:12px; margin:0 0 4px; color:#4e6047; }
.hcp-card-location { font-size:11px; color:#7a8374; margin:0 0 18px; min-height:2.8em; line-height:1.4; overflow-wrap:anywhere; }
[data-hcp-calendar] .hcp-crop-meta-row { font-size:11px; gap:8px; margin:0 0 8px; }
[data-hcp-calendar] .hcp-crop-meta-row strong { text-align:right; }
[data-hcp-calendar] .hcp-crop-price { margin:12px 0; font-size:21px; color:#2e6630; }
[data-hcp-calendar] .hcp-crop-price small { font-size:12px; font-weight:400; color:#6f7b67; }
[data-hcp-calendar] .hcp-crop-actions { padding-top:8px; }
[data-hcp-calendar] .hcp-crop-actions button { width:100%; font-size:12px; padding:12px 8px; min-height:44px; }
.hcp-load-more { text-align:center; margin-top:26px; }
.hcp-inline-error { padding:18px; background:#fff2e9; border:1px solid #e8c8af; border-radius:10px; margin-bottom:20px; color:#79381e; }
.hcp-detail-dialog { width:min(1120px,calc(100vw - 32px)); max-width:1120px; max-height:90dvh; padding:0; margin:auto; border:0; border-radius:20px; box-shadow:0 30px 100px #0004; color:#263823; background:#fff; overflow:auto; overscroll-behavior:contain; text-align:left; font-family:inherit; }
.hcp-detail-dialog::backdrop { background:#15220fcc; backdrop-filter:blur(4px); }
.hcp-dialog-close { position:sticky; float:right; top:12px; margin:12px 12px -56px 0; z-index:2; width:40px; height:40px; border:1px solid #dce3d5; border-radius:50%; background:#fff; color:#263823; font-size:26px; cursor:pointer; }
.hcp-detail-layout { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr); }
.hcp-detail-main { min-width:0; }
.hcp-detail-photo { height:280px; background:#edf2e8; }
.hcp-detail-photo .hcp-crop-thumb { width:100%; height:100%; object-fit:cover; }
.hcp-detail-copy { padding:28px; }
.hcp-detail-copy h2 { font-size:30px; line-height:1.2; margin:0 0 8px; color:#23391f; }
.hcp-detail-copy p { font-size:14px; line-height:1.65; overflow-wrap:anywhere; }
.hcp-detail-farmer { color:#6b785f; }
.hcp-detail-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 22px; margin:22px 0; }
.hcp-detail-facts div { padding:13px 0; border-top:1px solid #e8ece3; }
.hcp-detail-facts dt { font-size:11px; color:#738269; margin-bottom:5px; }
.hcp-detail-facts dd { font-size:13px; font-weight:600; margin:0; overflow-wrap:anywhere; }
.hcp-detail-booking { padding:52px 28px 28px; background:#f8faf5; border-left:1px solid #e4eadc; }
.hcp-detail-booking h3 { font-size:20px; margin:0 0 12px; }
.hcp-detail-booking .hcp-crop-price { font-size:28px; }
.hcp-booking-alert { font-size:13px; line-height:1.6; padding:14px; border-radius:8px; background:#fff1dc; color:#7f551c; margin:16px 0; }
.hcp-alert-open { background:#e8f3e4; color:#356237; }
.hcp-book-form { display:grid; gap:10px; }
.hcp-book-form label, .hcp-notify-form label { font-size:13px; font-weight:600; }
.hcp-book-form input { max-width:100%; }
.hcp-book-form small { font-size:11px; color:#718065; }
.hcp-estimate { display:flex; justify-content:space-between; gap:10px; font-size:13px; margin:10px 0; }
.hcp-shipping-note, .hcp-reservation-note { font-size:12px; color:#617354; line-height:1.6; margin:14px 0; }
.hcp-reservation-note { font-size:11px; }
.hcp-notify-section { border-top:1px solid #dfe7d6; margin-top:24px; padding-top:18px; }
.hcp-notify-section summary, .hcp-progress summary { cursor:pointer; font-size:14px; font-weight:700; min-height:30px; }
.hcp-notify-section p { font-size:12px; line-height:1.6; }
.hcp-notify-form { display:grid; gap:14px; margin-top:16px; }
.hcp-notify-form input:not([type=checkbox]) { display:block; margin-top:6px; }
.hcp-consent { display:flex; gap:8px; align-items:flex-start; font-size:11px !important; font-weight:400 !important; }
.hcp-consent input { flex:0 0 auto; margin:2px 0 0; }
.hcp-notify-message { margin:0; }
.hcp-product-link { display:inline-block; font-size:12px; margin-top:22px; color:#346539; }
.hcp-progress ol { padding:0 0 0 18px; }
.hcp-progress li { padding:12px 0; border-bottom:1px solid #e5ebdf; }
.hcp-progress small { display:block; font-size:11px; color:#78866f; }
.hcp-progress img { max-width:100%; width:180px; border-radius:8px; }
.hcp-dialog-loading { padding:50px 28px; min-height:180px; }
@media(max-width:700px) {
    .hcp-detail-dialog { width:calc(100vw - 20px); max-height:94dvh; border-radius:14px; }
    .hcp-detail-layout { grid-template-columns:minmax(0,1fr); }
    .hcp-detail-photo { height:200px; }
    .hcp-detail-copy, .hcp-detail-booking { padding:22px; }
    .hcp-detail-booking { border-left:0; border-top:1px solid #e4eadc; }
    .hcp-detail-copy h2 { font-size:25px; }
    [data-hcp-calendar] .hcp-filter-group { flex:1 1 100%; min-width:0; }
    [data-hcp-calendar] .hcp-filter-bar > button { width:100%; }
    .hcp-results-bar > span { display:none; }
}
@media(prefers-reduced-motion:reduce) { [data-hcp-calendar] * { animation:none !important; transition:none !important; } }

.hcp-mobile-jump { display:none; }
@media(max-width:700px) { .hcp-mobile-jump { display:flex; width:100%; margin:16px 0; } }
