/**
 * Baseline styling only — enough for the marketplace to be usable and
 * legible during development/QA. The design pass to actually match
 * indiscapes.com's visual identity (colors, type, spacing tokens) is a
 * separate task for whoever owns the theme/Elementor work; nothing
 * here is meant to be final.
 */

:root {
	--indiscapes-accent: #111;
	--indiscapes-accent-dark: #000;
	--indiscapes-surface: #f5f5f7;
	--indiscapes-border: #dcdce3;
	--indiscapes-radius: 8px;
}

/* Site-wide centered wrapper. The plugin doesn't own the theme's own
   header/footer/content markup, so every top-level template and
   shortcode this plugin renders wraps its own output in this
   constrained, centered column rather than stretching edge-to-edge. */

.indiscapes-page-wrap {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 1.5rem;
	box-sizing: border-box;
}

.indiscapes-page-wrap * {
	box-sizing: border-box;
}

/* Listings/search/archive pages read better full-width — more columns
   visible at once, sidebar filters don't eat a large share of a
   constrained column. Single-listing pages keep the narrower,
   reading-width wrap above. */

/* `max-width: 100%` only ever fills whatever container the theme's own
   page template wraps content in — on a plain WordPress Page (like
   /submit-listing/) that container is usually a narrower reading
   column, so this needed the same viewport-relative breakout used for
   the My Account area to actually reach the edges of the browser
   window regardless of the theme's own container width. */
.indiscapes-page-wrap-full {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding: 0 clamp(1.25rem, 4vw, 3rem);
	box-sizing: border-box;
}

.indiscapes-page-wrap-full * {
	box-sizing: border-box;
}

.indiscapes-archive-header {
	text-align: center;
}

.indiscapes-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 1.75rem;
	margin: 1.5rem 0;
}

.indiscapes-card {
	position: relative;
	border: 1px solid #e5e5e5;
	border-radius: var(--indiscapes-radius);
	overflow: hidden;
	background: #fff;
	transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.indiscapes-card:hover {
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08);
	transform: translateY(-2px);
}

.indiscapes-card-media {
	display: block;
	position: relative;
	aspect-ratio: 16 / 10;
	background: #f2f2f2;
	overflow: hidden;
}

.indiscapes-card-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.indiscapes-card-media-placeholder {
	width: 100%;
	height: 100%;
	background: #eee;
}

.indiscapes-card-badge {
	position: absolute;
	top: 8px;
	left: 8px;
	background: rgba(0, 0, 0, 0.65);
	color: #fff;
	font-size: 0.7rem;
	padding: 2px 8px;
	border-radius: 4px;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.indiscapes-card-body {
	padding: 0.75rem;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 0.5rem;
}

.indiscapes-card-title {
	font-size: 0.9rem;
	font-weight: 600;
	color: inherit;
	text-decoration: none;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.indiscapes-card-price {
	font-size: 0.8rem;
	color: #555;
	white-space: nowrap;
}

.indiscapes-favorite-btn {
	position: absolute;
	top: 8px;
	right: 8px;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	border: none;
	background: rgba(255, 255, 255, 0.9);
	color: #999;
	cursor: pointer;
	font-size: 1rem;
	line-height: 1;
}

.indiscapes-favorite-btn.is-favorited {
	color: #e0245e;
}

.indiscapes-favorite-btn.is-loading {
	opacity: 0.5;
	pointer-events: none;
}

/* Flat material-design form fields — shared across the search form and
   any other plugin-rendered inputs/selects/textareas on the front end. */

.indiscapes-page-wrap input[type="text"],
.indiscapes-page-wrap input[type="search"],
.indiscapes-page-wrap input[type="email"],
.indiscapes-page-wrap input[type="number"],
.indiscapes-page-wrap input[type="tel"],
.indiscapes-page-wrap input[type="url"],
.indiscapes-page-wrap select,
.indiscapes-page-wrap textarea {
	appearance: none;
	-webkit-appearance: none;
	background: var(--indiscapes-surface);
	border: none;
	border-bottom: 2px solid var(--indiscapes-border);
	border-radius: 6px 6px 0 0;
	padding: 0.7rem 0.9rem;
	font-family: inherit; /* form controls don't inherit font by default — without this they render in the browser's UI font instead of the theme's */
	font-size: 0.95rem;
	color: #222;
	transition: background 0.15s ease, border-color 0.15s ease;
}

.indiscapes-page-wrap select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23666' stroke-width='2' fill='none' fill-rule='evenodd'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.9rem center;
	padding-right: 2.25rem;
}

.indiscapes-page-wrap input[type="text"]:hover,
.indiscapes-page-wrap input[type="search"]:hover,
.indiscapes-page-wrap input[type="email"]:hover,
.indiscapes-page-wrap input[type="number"]:hover,
.indiscapes-page-wrap input[type="tel"]:hover,
.indiscapes-page-wrap input[type="url"]:hover,
.indiscapes-page-wrap select:hover,
.indiscapes-page-wrap textarea:hover {
	background: #eeeef2;
}

.indiscapes-page-wrap input[type="text"]:focus,
.indiscapes-page-wrap input[type="search"]:focus,
.indiscapes-page-wrap input[type="email"]:focus,
.indiscapes-page-wrap input[type="number"]:focus,
.indiscapes-page-wrap input[type="tel"]:focus,
.indiscapes-page-wrap input[type="url"]:focus,
.indiscapes-page-wrap select:focus,
.indiscapes-page-wrap textarea:focus {
	outline: none;
	background: #fff;
	border-color: var(--indiscapes-accent);
	box-shadow: 0 1px 0 0 var(--indiscapes-accent);
}

.indiscapes-page-wrap button,
.indiscapes-page-wrap .indiscapes-btn,
.indiscapes-page-wrap input[type="submit"] {
	appearance: none;
	-webkit-appearance: none;
	border: none;
	border-radius: 6px;
	font-family: inherit;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.15s ease, box-shadow 0.15s ease;
}

/* Search: sidebar filter card + results column */

.indiscapes-search {
	display: grid;
	grid-template-columns: 280px 1fr;
	gap: 2rem;
	align-items: start;
}

@media (max-width: 880px) {
	.indiscapes-search {
		grid-template-columns: 1fr;
	}
}

.indiscapes-search-form {
	margin: 0;
}

.indiscapes-search-filters {
	background: #fff;
	border: 1px solid #e5e5e5;
	border-radius: 16px;
	padding: 1.75rem 1.5rem;
}

.indiscapes-filter-group {
	margin-bottom: 1.75rem;
}

.indiscapes-filter-group:last-of-type {
	margin-bottom: 1.5rem;
}

.indiscapes-filter-heading {
	font-size: 1.05rem;
	font-weight: 700;
	margin: 0 0 0.9rem;
}

.indiscapes-filter-group select {
	width: 100%;
	margin: 0;
}

.indiscapes-radio-option {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	font-size: 1rem;
	color: #222;
	cursor: pointer;
	margin-bottom: 0.9rem;
}

.indiscapes-radio-option:last-child {
	margin-bottom: 0;
}

.indiscapes-radio-option input[type="radio"] {
	appearance: none;
	-webkit-appearance: none;
	width: 20px;
	height: 20px;
	flex: 0 0 auto;
	margin: 0;
	border: 2px solid #222;
	border-radius: 50%;
	background: #fff;
	cursor: pointer;
	transition: border-color 0.15s ease;
}

.indiscapes-radio-option input[type="radio"]:checked {
	border-width: 6px;
	border-color: var(--indiscapes-accent);
}

.indiscapes-filter-group input[type="radio"].screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
	padding: 0;
	margin: -1px;
}

.indiscapes-filter-submit {
	width: 100%;
	background: #fff;
	color: #222;
	border: 1.5px solid #222;
	border-radius: 10px;
	padding: 0.9rem 1rem;
	font-size: 1rem;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.15s ease;
}

.indiscapes-filter-submit:hover {
	background: var(--indiscapes-surface);
}

.indiscapes-filter-search {
	width: 100%;
}

.indiscapes-search-results.is-loading {
	opacity: 0.5;
}

.indiscapes-search-pagination {
	display: flex;
	gap: 0.35rem;
	justify-content: center;
	margin: 1.5rem 0;
}

.indiscapes-page-btn {
	border: none;
	background: var(--indiscapes-surface);
	padding: 0.5rem 0.9rem;
	border-radius: 6px;
	cursor: pointer;
	font-weight: 600;
	color: #444;
}

.indiscapes-page-btn:hover {
	background: #eeeef2;
}

.indiscapes-page-btn.is-current {
	background: var(--indiscapes-accent);
	color: #fff;
}

.indiscapes-no-results {
	text-align: center;
	color: #777;
	padding: 2rem 0;
}

/* Single listing: header */

.indiscapes-listing-header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 1rem;
	margin: 2rem 0 1rem;
}

.indiscapes-listing-header h1 {
	margin: 0 0 0.25rem;
}

.indiscapes-listing-author {
	color: #777;
	font-size: 0.9rem;
	margin: 0;
}

/* Single listing: two-column layout, media constrained (not full-bleed) */

.indiscapes-single-listing {
	display: grid;
	grid-template-columns: minmax(0, 640px) 320px;
	gap: 2rem;
	align-items: start;
}

@media (max-width: 780px) {
	.indiscapes-single-listing {
		grid-template-columns: 1fr;
	}
}

.indiscapes-listing-media img,
.indiscapes-listing-media video {
	width: 100%;
	max-height: 480px;
	object-fit: cover;
	border-radius: 8px;
	display: block;
}

/* Video preview watermark — see class-watermark.php's docblock for why
   this is a CSS overlay rather than baked into the video file itself
   (poster frame images DO get a baked-in watermark, same as any other
   preview image). Repeats the site name in a diagonal tiled pattern to
   roughly match the look of the baked-in image watermark, so a photo
   and video listing read consistently. Doesn't intercept clicks/taps
   on the player controls underneath it. */
.indiscapes-video-watermark-wrap {
	/* !important + isolation/contain here on purpose: the watermark
	   overlay below is `position: absolute; inset: 0`, which only stays
	   confined to the video box as long as THIS element is actually its
	   positioned ancestor. If the theme's CSS (or a video-player script
	   that rewraps the <video> — Utiliz has already overridden a plain
	   .indiscapes-page-wrap rule once this session, see frontend.css's
	   notes on the full-width regression) strips `position: relative`
	   here, the overlay falls back to being positioned against the
	   whole page instead of just this box — which is exactly "tiled
	   watermark text covering the entire page" rather than just the
	   video. `isolation: isolate` + `contain: layout paint` force this
	   element to stay the containing block for its absolutely (and even
	   fixed-) positioned descendants regardless of what else loads.
	   `overflow: hidden` additionally clips the overlay's own rotated/
	   scaled box (a transform is never contained by the transformed
	   element's own `overflow` — only an ancestor's `overflow` clips
	   that), so it can't visually spill past the video's edges either. */
	position: relative !important;
	overflow: hidden !important;
	isolation: isolate;
	contain: layout paint;
}

.indiscapes-video-watermark {
	position: absolute !important;
	inset: 0 !important;
	pointer-events: none;
	overflow: hidden;
	border-radius: 8px;
	display: flex;
	flex-wrap: wrap;
	align-content: space-around;
	justify-content: space-around;
	transform: rotate(-30deg) scale(1.4);
	max-width: 100%;
	max-height: 100%;
}

.indiscapes-video-watermark span {
	color: rgba(255, 255, 255, 0.55);
	font-size: 0.85rem;
	font-weight: 700;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
	white-space: nowrap;
	margin: 1.5rem 2.5rem;
}

.indiscapes-listing-media-col h2 {
	margin-top: 1.5rem;
	font-size: 1.1rem;
}

.indiscapes-listing-buybox-col {
	position: sticky;
	top: 1rem;
}

.indiscapes-report-link {
	display: block;
	text-align: center;
	margin-top: 1rem;
	font-size: 0.85rem;
	color: #666;
}

/* Tiered pricing ("download plans") */

:root {
	--indiscapes-plan-radio: #e2453f;
}

.indiscapes-buy-tiers {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	margin-bottom: 1rem;
}

.indiscapes-tier-option {
	display: flex;
	align-items: center;
	gap: 1rem;
	background: #eee;
	border-radius: 10px;
	padding: 1.1rem 1.25rem;
	cursor: pointer;
	transition: background 0.15s ease;
}

.indiscapes-tier-option:has(input:checked) {
	background: #e6e6e6;
}

.indiscapes-tier-option input[type="radio"] {
	appearance: none;
	-webkit-appearance: none;
	width: 24px;
	height: 24px;
	flex: 0 0 auto;
	margin: 0;
	border: 2px solid var(--indiscapes-plan-radio);
	border-radius: 50%;
	background: #fff;
	cursor: pointer;
	transition: border-width 0.15s ease;
}

.indiscapes-tier-option input[type="radio"]:checked {
	border-width: 7px;
}

.indiscapes-tier-info {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	flex: 1;
}

.indiscapes-tier-info strong {
	font-size: 1.05rem;
}

.indiscapes-tier-downloads {
	font-size: 0.9rem;
	color: #555;
}

.indiscapes-tier-price {
	text-align: right;
	font-weight: 700;
	font-size: 1.05rem;
	white-space: nowrap;
}

.indiscapes-tier-price del {
	color: #666;
	font-weight: 400;
	margin-right: 0.4rem;
	font-size: 0.85em;
}

.indiscapes-tier-price ins {
	text-decoration: none;
	background: #fff3a3;
	padding: 0.1rem 0.3rem;
	border-radius: 3px;
}

.indiscapes-download-btn {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.6rem;
	font-size: 1.05rem;
	padding: 1rem 1.25rem;
	border-radius: 12px;
}

.indiscapes-btn-secondary.indiscapes-download-btn {
	background: #fff;
	border: 1.5px solid #222;
}

.indiscapes-btn-secondary.indiscapes-download-btn:hover {
	background: var(--indiscapes-surface);
}

.indiscapes-download-icon {
	flex: 0 0 auto;
}

/* Single listing: description */

.indiscapes-buy-box {
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
	margin: 1rem 0;
}

/* Separates the two independent pricing options (credits vs. single
   purchase) when a listing has both configured — see
   indiscapes_render_buy_box() in template-functions.php. Also reused
   generically as `.indiscapes-divider` anywhere else a plain "or"
   divider is needed (e.g. between social login buttons and a form —
   see class-social-login.php). */
.indiscapes-buy-divider,
.indiscapes-divider {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin: 0.25rem 0;
	color: #999;
	font-size: 0.8rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.indiscapes-buy-divider::before,
.indiscapes-buy-divider::after,
.indiscapes-divider::before,
.indiscapes-divider::after {
	content: '';
	flex: 1;
	height: 1px;
	background: #e5e5e5;
}

/* Social login: Nextend Social Login renders its own provider icon
   buttons (see class-social-login.php) — this just gives the block
   consistent spacing above/below wherever it's dropped into a form. */
.indiscapes-social-login {
	margin-bottom: 1.5rem;
}

.indiscapes-social-login .indiscapes-divider {
	margin: 1rem 0;
}

.indiscapes-btn {
	display: inline-block;
	text-align: center;
	padding: 0.85rem 1.25rem;
	border-radius: 6px;
	text-decoration: none;
	font-weight: 600;
	cursor: pointer;
	border: none;
}

.indiscapes-btn-primary {
	background: var(--indiscapes-accent);
	color: #fff;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

.indiscapes-btn-primary:hover {
	background: var(--indiscapes-accent-dark);
}

.indiscapes-btn-secondary {
	background: var(--indiscapes-surface);
	color: #222;
	border: none;
}

.indiscapes-btn-secondary:hover {
	background: #eeeef2;
}

/* Outlined variant — white fill, black border, fills solid on hover.
   Used wherever a black solid .indiscapes-btn-primary would be too
   heavy for the action (e.g. secondary actions sitting next to a
   primary one, or a toolbar with several buttons of equal weight).

   Selector is deliberately `.indiscapes-btn.indiscapes-btn-outline`
   (both classes), not `.indiscapes-btn-outline` alone: any bare
   <button> inside `.indiscapes-page-wrap` gets `border: none` forced
   on it by the generic `.indiscapes-page-wrap button` rule above,
   which — being a class+element selector — is MORE specific than a
   single class selector and would silently win and erase the border.
   Two classes together outrank it. Same trick already used by
   .indiscapes-btn-secondary.indiscapes-download-btn below. */
.indiscapes-btn.indiscapes-btn-outline {
	background: #fff;
	color: #111;
	border: 1.5px solid #111;
	box-shadow: none;
}

.indiscapes-btn.indiscapes-btn-outline:hover {
	background: #111;
	color: #fff;
}

/* Compact size for a button sitting inline in a toolbar next to a
   <select> and a plain text link, rather than standing alone as a
   full-size call to action. */
.indiscapes-btn-sm {
	padding: 0.5rem 0.9rem;
	font-size: 0.85rem;
}

.indiscapes-listing-meta {
	list-style: none;
	padding: 0;
	margin: 1rem 0;
	font-size: 0.9rem;
	color: #444;
}

.indiscapes-listing-meta li {
	padding: 0.25rem 0;
	border-bottom: 1px solid #f0f0f0;
}

.indiscapes-listing-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin: 1rem 0;
}

.indiscapes-tag {
	font-size: 0.8rem;
	background: #f2f2f2;
	color: #333;
	padding: 0.2rem 0.6rem;
	border-radius: 999px;
	text-decoration: none;
}

.indiscapes-related-heading {
	margin-top: 2.5rem;
	text-align: center;
}

.indiscapes-notice {
	background: #fff8e1;
	border: 1px solid #f0d989;
	padding: 0.6rem 0.9rem;
	border-radius: 6px;
	font-size: 0.85rem;
}

/* Redeem/download feedback (Commerce's listing-buy.js) — includes an
   actionable "Buy credits" link whenever the server can point to one,
   so an insufficient-balance response is never a dead end. */

.indiscapes-redeem-message {
	margin-top: 0.75rem;
	padding: 0.85rem 1rem;
	border-radius: 8px;
	font-size: 0.9rem;
}

.indiscapes-redeem-message p {
	margin: 0 0 0.6rem;
}

.indiscapes-redeem-message p:last-child {
	margin-bottom: 0;
}

.indiscapes-redeem-message.is-error {
	background: #fdecec;
	border: 1px solid #f3c3c3;
	color: #7a2020;
}

.indiscapes-redeem-buy-link {
	display: inline-block;
	padding: 0.6rem 1.1rem;
	font-size: 0.9rem;
}

.indiscapes-archive-header {
	margin: 2rem 0 1rem;
}

/* ---------------------------------------------------------------
 * Contributor public profile page (/contributor/{nicename}/)
 * ------------------------------------------------------------- */

.indiscapes-contributor-header {
	display: flex;
	gap: 1.25rem;
	align-items: flex-start;
	padding: 1.5rem 0 2rem;
	border-bottom: 1px solid #eee;
	margin-bottom: 2rem;
}

.indiscapes-contributor-header img {
	border-radius: 50%;
	flex-shrink: 0;
}

.indiscapes-contributor-header-info h1 {
	margin: 0 0 0.25rem;
}

.indiscapes-contributor-specialty {
	font-weight: 600;
	color: #111;
	margin: 0 0 0.35rem;
}

.indiscapes-contributor-count {
	font-size: 0.85rem;
	color: #666;
	margin: 0 0 0.5rem;
}

.indiscapes-contributor-bio {
	max-width: 56ch;
	color: #333;
	margin: 0;
}

.indiscapes-contributor-fallback-card {
	display: block;
	text-decoration: none;
	color: inherit;
}

.indiscapes-contributor-fallback-card img {
	width: 100%;
	border-radius: 6px;
	display: block;
	margin-bottom: 0.4rem;
}

/* ---------------------------------------------------------------
 * My Account: Wallet / Downloads / Listings / Payouts
 * (WooCommerce's own account tables are unstyled by default — this
 * brings them in line with the flat/material look used everywhere
 * else on the site rather than leaving WooCommerce's default skin.)
 * ------------------------------------------------------------- */

.indiscapes-wallet-balance {
	font-size: 1.15rem;
	background: #f7f7f7;
	border-radius: 6px;
	padding: 0.9rem 1.1rem;
	margin-bottom: 0.75rem;
}

.indiscapes-wallet-lifetime {
	font-size: 0.85rem;
	color: #666;
	margin: 0 0 1.25rem;
}

.indiscapes-buy-credits-link {
	display: inline-block;
	margin-bottom: 1.5rem;
}

.woocommerce-MyAccount-content .woocommerce-orders-table th,
.woocommerce-MyAccount-content .woocommerce-orders-table td {
	padding: 0.75rem 0.9rem;
}

.indiscapes-portfolio-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 1rem;
	margin-top: 1rem;
}

.indiscapes-portfolio-item {
	border: 1px solid #eee;
	border-radius: 6px;
	overflow: hidden;
}

.indiscapes-portfolio-thumb {
	position: relative;
	aspect-ratio: 16 / 10;
	background: #f2f2f2;
}

.indiscapes-portfolio-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.indiscapes-portfolio-thumb-placeholder {
	width: 100%;
	height: 100%;
}

.indiscapes-portfolio-status {
	position: absolute;
	top: 0.5rem;
	left: 0.5rem;
	font-size: 0.7rem;
	padding: 0.15rem 0.5rem;
	border-radius: 999px;
	background: #333;
	color: #fff;
}

.indiscapes-portfolio-status.is-live {
	background: #1e8e3e;
}

.indiscapes-portfolio-status.is-pending {
	background: #b8860b;
}

.indiscapes-portfolio-status.is-draft {
	background: #666;
}

.indiscapes-portfolio-body {
	padding: 0.6rem 0.75rem;
	font-size: 0.85rem;
}

.indiscapes-portfolio-meta {
	display: block;
	color: #777;
	font-size: 0.78rem;
	margin-top: 0.15rem;
}

.indiscapes-portfolio-feedback {
	margin-top: 0.4rem;
	font-size: 0.78rem;
	color: #7a2020;
}

.indiscapes-application-status {
	background: #f7f7f7;
	border-radius: 6px;
	padding: 1rem 1.25rem;
}

.indiscapes-application-status.is-rejected {
	background: #fdecec;
	color: #7a2020;
}

.indiscapes-application-status.is-pending {
	background: #fff8e1;
	color: #6b5100;
}

/* ---------------------------------------------------------------
 * WooCommerce My Account — completely unstyled out of the box
 * (default WC table borders/link colors), so it looked nothing like
 * the rest of the site. Scoped to .woocommerce-account so this never
 * bleeds into unrelated WooCommerce pages (cart, checkout, shop).
 * ------------------------------------------------------------- */

/* Breaks the account page out of whatever max-width container the theme
   wraps page content in, so Dashboard/Wallet/Listings/etc. can use the
   full browser width like the listing archive pages do (see
   .indiscapes-page-wrap-full) rather than sitting in a narrow reading
   column. Works regardless of the theme's own container class/width,
   since it measures from the viewport rather than needing to override
   a specific theme selector. */
.woocommerce-account .woocommerce {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding: 0 clamp(1.25rem, 4vw, 3rem);
	box-sizing: border-box;
	gap: 3rem;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li {
	margin: 0 0 0.25rem;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	padding: 0.55rem 0.75rem;
	border-radius: 6px;
	color: #333;
	text-decoration: none;
	font-size: 0.92rem;
	transition: background 0.15s ease, color 0.15s ease;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
	background: #f2f2f2;
	color: #111;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
	background: #111;
	color: #fff;
	font-weight: 600;
}

/* Nav icons — one small line-icon per My Account tab, drawn the same
   currentColor-mask way as the header account-menu icon and the
   dashboard stat tiles, so they recolor automatically for hover/active
   states instead of needing separate icon assets per state. Selectors
   target the "--{endpoint}" class WooCommerce/WCFM already add to each
   <li>, so this needs no template changes on top of the CSS. */

.woocommerce-account .woocommerce-MyAccount-navigation ul li a::before {
	content: '';
	width: 18px;
	height: 18px;
	flex: 0 0 auto;
	display: block;
	background-color: currentColor;
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
}

.woocommerce-MyAccount-navigation-link--dashboard a::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Crect x='3' y='3' width='7' height='9' rx='1'/%3E%3Crect x='14' y='3' width='7' height='5' rx='1'/%3E%3Crect x='14' y='12' width='7' height='9' rx='1'/%3E%3Crect x='3' y='16' width='7' height='5' rx='1'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Crect x='3' y='3' width='7' height='9' rx='1'/%3E%3Crect x='14' y='3' width='7' height='5' rx='1'/%3E%3Crect x='14' y='12' width='7' height='9' rx='1'/%3E%3Crect x='3' y='16' width='7' height='5' rx='1'/%3E%3C/svg%3E");
}

.woocommerce-MyAccount-navigation-link--wallet a::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M21 12V7H5a2 2 0 0 1 0-4h14v4'/%3E%3Cpath d='M3 5v14a2 2 0 0 0 2 2h16v-5'/%3E%3Cpath d='M18 12a2 2 0 0 0 0 4h4v-4Z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M21 12V7H5a2 2 0 0 1 0-4h14v4'/%3E%3Cpath d='M3 5v14a2 2 0 0 0 2 2h16v-5'/%3E%3Cpath d='M18 12a2 2 0 0 0 0 4h4v-4Z'/%3E%3C/svg%3E");
}

.woocommerce-MyAccount-navigation-link--orders a::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4Z'/%3E%3Cpath d='M3 6h18'/%3E%3Cpath d='M16 10a4 4 0 0 1-8 0'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4Z'/%3E%3Cpath d='M3 6h18'/%3E%3Cpath d='M16 10a4 4 0 0 1-8 0'/%3E%3C/svg%3E");
}

.woocommerce-MyAccount-navigation-link--favorites a::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M20.8 4.6a5.5 5.5 0 0 0-7.8 0L12 5.6l-1-1a5.5 5.5 0 0 0-7.8 7.8l1 1L12 21l7.8-7.6 1-1a5.5 5.5 0 0 0 0-7.8Z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M20.8 4.6a5.5 5.5 0 0 0-7.8 0L12 5.6l-1-1a5.5 5.5 0 0 0-7.8 7.8l1 1L12 21l7.8-7.6 1-1a5.5 5.5 0 0 0 0-7.8Z'/%3E%3C/svg%3E");
}

.woocommerce-MyAccount-navigation-link--listings a::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Ccircle cx='8.5' cy='8.5' r='1.5'/%3E%3Cpath d='m21 15-5-5L5 21'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Ccircle cx='8.5' cy='8.5' r='1.5'/%3E%3Cpath d='m21 15-5-5L5 21'/%3E%3C/svg%3E");
}

.woocommerce-MyAccount-navigation-link--payouts a::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M9.5 9.5c0-1 1-1.5 2.5-1.5s2.5.6 2.5 1.5-1 1.3-2.5 1.5-2.5.6-2.5 1.5 1 1.5 2.5 1.5 2.5-.5 2.5-1.5'/%3E%3Cline x1='12' y1='6.5' x2='12' y2='7.7'/%3E%3Cline x1='12' y1='16.3' x2='12' y2='17.5'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M9.5 9.5c0-1 1-1.5 2.5-1.5s2.5.6 2.5 1.5-1 1.3-2.5 1.5-2.5.6-2.5 1.5 1 1.5 2.5 1.5 2.5-.5 2.5-1.5'/%3E%3Cline x1='12' y1='6.5' x2='12' y2='7.7'/%3E%3Cline x1='12' y1='16.3' x2='12' y2='17.5'/%3E%3C/svg%3E");
}

.woocommerce-MyAccount-navigation-link--assets a::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='7 10 12 15 17 10'/%3E%3Cline x1='12' y1='15' x2='12' y2='3'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='7 10 12 15 17 10'/%3E%3Cline x1='12' y1='15' x2='12' y2='3'/%3E%3C/svg%3E");
}

.woocommerce-MyAccount-navigation-link--edit-address a::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
}

.woocommerce-MyAccount-navigation-link--inquiry a::before,
.woocommerce-MyAccount-navigation-link--inquiries a::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M21 15a2 2 0 0 1-2 2H8l-5 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2Z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M21 15a2 2 0 0 1-2 2H8l-5 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2Z'/%3E%3C/svg%3E");
}

.woocommerce-MyAccount-navigation-link--edit-account a::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c0-4.4 3.6-8 8-8s8 3.6 8 8'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c0-4.4 3.6-8 8-8s8 3.6 8 8'/%3E%3C/svg%3E");
}

.woocommerce-MyAccount-navigation-link--customer-logout a::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4'/%3E%3Cpolyline points='16 17 21 12 16 7'/%3E%3Cline x1='21' y1='12' x2='9' y2='12'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4'/%3E%3Cpolyline points='16 17 21 12 16 7'/%3E%3Cline x1='21' y1='12' x2='9' y2='12'/%3E%3C/svg%3E");
}

.woocommerce-account .woocommerce-MyAccount-content {
	font-size: 0.95rem;
}

.woocommerce-account .woocommerce-MyAccount-content h1,
.woocommerce-account .entry-title {
	font-weight: 700;
	letter-spacing: -0.01em;
}

.woocommerce-account .woocommerce-orders-table,
.woocommerce-account table.shop_table {
	width: 100%;
	border-collapse: collapse;
	border: 1px solid #e5e5e5;
	border-radius: 8px;
	overflow: hidden;
}

.woocommerce-account .woocommerce-orders-table th,
.woocommerce-account table.shop_table th {
	background: #f7f7f7;
	text-align: left;
	font-size: 0.78rem;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: #666;
	padding: 0.75rem 1rem;
	border-bottom: 1px solid #e5e5e5;
}

.woocommerce-account .woocommerce-orders-table td,
.woocommerce-account table.shop_table td {
	padding: 0.85rem 1rem;
	border-bottom: 1px solid #f0f0f0;
	font-size: 0.9rem;
}

.woocommerce-account .woocommerce-orders-table tr:last-child td,
.woocommerce-account table.shop_table tr:last-child td {
	border-bottom: none;
}

.woocommerce-account .woocommerce-orders-table .button,
.woocommerce-account table.shop_table .button {
	font-size: 0.82rem;
	padding: 0.4rem 0.9rem;
}

.woocommerce-account .woocommerce-MyAccount-content > p:only-child {
	color: #666;
}

/* ---------------------------------------------------------------
 * My Account: Dashboard overview (class-dashboard.php)
 * ------------------------------------------------------------- */

.indiscapes-dashboard-greeting h2 {
	margin: 0 0 0.25rem;
	font-size: 1.5rem;
}

.indiscapes-dashboard-greeting p {
	margin: 0 0 1.75rem;
	color: #666;
}

.indiscapes-dashboard-stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1rem;
	margin-bottom: 2rem;
}

@media (max-width: 900px) {
	.indiscapes-dashboard-stats {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 560px) {
	.indiscapes-dashboard-stats {
		grid-template-columns: 1fr;
	}
}

.indiscapes-stat-tile {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	background: #fff;
	border: 1px solid #e5e5e5;
	border-radius: var(--indiscapes-radius);
	padding: 1.25rem 1.25rem 1.1rem;
	text-decoration: none;
	color: inherit;
	transition: box-shadow 0.15s ease, transform 0.15s ease, border-color 0.15s ease;
}

.indiscapes-stat-tile:hover {
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08);
	transform: translateY(-2px);
	border-color: #d5d5d5;
}

.indiscapes-stat-icon {
	width: 22px;
	height: 22px;
	display: block;
	margin-bottom: 0.15rem;
	background-color: #111;
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
}

.indiscapes-stat-icon-wallet {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M21 12V7H5a2 2 0 0 1 0-4h14v4'/%3E%3Cpath d='M3 5v14a2 2 0 0 0 2 2h16v-5'/%3E%3Cpath d='M18 12a2 2 0 0 0 0 4h4v-4Z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M21 12V7H5a2 2 0 0 1 0-4h14v4'/%3E%3Cpath d='M3 5v14a2 2 0 0 0 2 2h16v-5'/%3E%3Cpath d='M18 12a2 2 0 0 0 0 4h4v-4Z'/%3E%3C/svg%3E");
}

.indiscapes-stat-icon-download {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='7 10 12 15 17 10'/%3E%3Cline x1='12' y1='15' x2='12' y2='3'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='7 10 12 15 17 10'/%3E%3Cline x1='12' y1='15' x2='12' y2='3'/%3E%3C/svg%3E");
}

.indiscapes-stat-icon-heart {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M20.8 4.6a5.5 5.5 0 0 0-7.8 0L12 5.6l-1-1a5.5 5.5 0 0 0-7.8 7.8l1 1L12 21l7.8-7.6 1-1a5.5 5.5 0 0 0 0-7.8Z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M20.8 4.6a5.5 5.5 0 0 0-7.8 0L12 5.6l-1-1a5.5 5.5 0 0 0-7.8 7.8l1 1L12 21l7.8-7.6 1-1a5.5 5.5 0 0 0 0-7.8Z'/%3E%3C/svg%3E");
}

.indiscapes-stat-icon-image {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Ccircle cx='8.5' cy='8.5' r='1.5'/%3E%3Cpath d='m21 15-5-5L5 21'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Ccircle cx='8.5' cy='8.5' r='1.5'/%3E%3Cpath d='m21 15-5-5L5 21'/%3E%3C/svg%3E");
}

.indiscapes-stat-icon-chart {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M3 3v18h18'/%3E%3Cpath d='m19 9-5 5-4-4-4 4'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M3 3v18h18'/%3E%3Cpath d='m19 9-5 5-4-4-4 4'/%3E%3C/svg%3E");
}

.indiscapes-stat-icon-money {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M9.5 9.5c0-1 1-1.5 2.5-1.5s2.5.6 2.5 1.5-1 1.3-2.5 1.5-2.5.6-2.5 1.5 1 1.5 2.5 1.5 2.5-.5 2.5-1.5'/%3E%3Cline x1='12' y1='6.5' x2='12' y2='7.7'/%3E%3Cline x1='12' y1='16.3' x2='12' y2='17.5'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M9.5 9.5c0-1 1-1.5 2.5-1.5s2.5.6 2.5 1.5-1 1.3-2.5 1.5-2.5.6-2.5 1.5 1 1.5 2.5 1.5 2.5-.5 2.5-1.5'/%3E%3Cline x1='12' y1='6.5' x2='12' y2='7.7'/%3E%3Cline x1='12' y1='16.3' x2='12' y2='17.5'/%3E%3C/svg%3E");
}

.indiscapes-stat-value {
	font-size: 1.4rem;
	font-weight: 700;
	letter-spacing: -0.01em;
}

.indiscapes-stat-label {
	font-size: 0.82rem;
	color: #666;
}

.indiscapes-dashboard-columns {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 1.5rem;
	align-items: start;
}

@media (max-width: 780px) {
	.indiscapes-dashboard-columns {
		grid-template-columns: 1fr;
	}
}

.indiscapes-dashboard-panel {
	background: #fff;
	border: 1px solid #e5e5e5;
	border-radius: var(--indiscapes-radius);
	padding: 1.5rem;
}

.indiscapes-dashboard-panel h3 {
	margin: 0 0 1rem;
	font-size: 1rem;
}

.indiscapes-dashboard-empty {
	color: #777;
	font-size: 0.9rem;
	margin: 0;
}

.indiscapes-activity-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.indiscapes-activity-list li {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 0.1rem 1rem;
	padding: 0.7rem 0;
	border-bottom: 1px solid #f0f0f0;
}

.indiscapes-activity-list li:last-child {
	border-bottom: none;
	padding-bottom: 0;
}

.indiscapes-activity-list li:first-child {
	padding-top: 0;
}

.indiscapes-activity-title {
	grid-column: 1;
	font-weight: 600;
	font-size: 0.9rem;
}

.indiscapes-activity-meta {
	grid-column: 2;
	font-size: 0.85rem;
	color: #444;
	white-space: nowrap;
}

.indiscapes-activity-date {
	grid-column: 1;
	font-size: 0.78rem;
	color: #888;
}

.indiscapes-quicklinks {
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
}

.indiscapes-quicklink {
	display: block;
	background: var(--indiscapes-surface);
	color: #111;
	text-decoration: none;
	font-weight: 600;
	font-size: 0.9rem;
	padding: 0.8rem 1rem;
	border-radius: 8px;
	transition: background 0.15s ease;
}

.indiscapes-quicklink:hover {
	background: #eeeef2;
}
