/* =============================================================================
   Software Product Page — single-product-software.php
   Scoped to .andp-sw-* classes.
   ============================================================================= */

/* ── Wrapper ── */

.andp-sw-wrap {
	background-color: var(--andp-bg);
	color: var(--andp-text-primary);
	padding-bottom: 80px;
}

/* Force white headings — Blocksy overrides global color */
.andp-sw-wrap h1,
.andp-sw-wrap h2,
.andp-sw-wrap h3 {
	color: var(--andp-white) !important;
}

/* Global CSS draws the gold line via ::before — hide the redundant __line span */
.andp-sw-wrap .andp-section-label__line {
	display: none;
}


/* ── Breadcrumb ── */

.andp-breadcrumb {
	padding: 18px 40px;
	border-bottom: 1px solid var(--andp-border-light);
}

.andp-breadcrumb__list {
	display: flex;
	align-items: center;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
	font-family: var(--andp-font-mono);
	font-size: var(--andp-size-label);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--andp-text-ghost);
}

.andp-breadcrumb__list a {
	color: var(--andp-text-ghost);
	text-decoration: none;
}

.andp-breadcrumb__list a:hover {
	color: var(--andp-gold);
}

.andp-breadcrumb__sep {
	color: var(--andp-border-mid);
}

.andp-breadcrumb__current {
	color: var(--andp-text-mid);
}


/* ── Section label (shared) ── */

.andp-sw-wrap .andp-section-label {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 16px;
}

.andp-section-label__line {
	display: block;
	width: 24px;
	height: 1px;
	background-color: var(--andp-gold);
}

.andp-section-label__text {
	font-family: var(--andp-font-mono);
	font-size: var(--andp-size-label);
	text-transform: uppercase;
	letter-spacing: 0.15em;
	color: var(--andp-gold);
}

.andp-sw-section-header {
	margin-bottom: 40px;
}

.andp-sw-section-header__heading {
	margin: 0;
}


/* ── Hero ── */

.andp-sw-hero {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 64px;
	align-items: center;
	padding: 64px 40px;
	max-width: 1200px;
	margin: 0 auto;
}

@media (max-width: 900px) {
	.andp-sw-hero {
		grid-template-columns: 1fr;
		gap: 40px;
		padding: 40px 24px;
	}
}

.andp-sw-hero__name-row {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	flex-wrap: wrap;
	margin-bottom: 16px;
}

.andp-sw-hero__name {
	font-size: clamp(2rem, 4vw, 3rem);
	font-weight: 300;
	color: var(--andp-white);
	margin: 0;
	line-height: 1.1;
}

.andp-sw-hero__desc {
	font-size: 15px;
	color: var(--andp-text-mid);
	line-height: 1.65;
	margin: 0 0 28px;
}

.andp-sw-hero__platforms {
	display: flex;
	gap: 16px;
	margin-bottom: 32px;
}

.andp-sw-platform {
	display: flex;
	align-items: center;
	gap: 6px;
	font-family: var(--andp-font-mono);
	font-size: var(--andp-size-label);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--andp-text-muted);
}

.andp-sw-platform__icon {
	color: var(--andp-text-dim);
}

.andp-sw-platform__req {
	color: var(--andp-text-ghost);
}

.andp-sw-hero__purchase {
	margin-bottom: 20px;
}

.andp-sw-hero__price-block {
	margin-bottom: 16px;
}

.andp-sw-hero__price {
	font-size: 28px;
	font-weight: 300;
	color: var(--andp-white);
	line-height: 1;
	margin-bottom: 4px;
}

.andp-sw-hero__price .woocommerce-Price-amount {
	color: var(--andp-white);
}

.andp-sw-hero__price-note {
	font-family: var(--andp-font-mono);
	font-size: var(--andp-size-label);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--andp-text-muted);
}

/* WooCommerce add-to-cart in hero */
.andp-sw-hero__purchase .cart {
	display: flex;
	align-items: center;
	gap: 12px;
}

.andp-sw-hero__purchase .quantity {
	display: none; /* hide qty for software */
}

.andp-sw-hero__purchase .single_add_to_cart_button {
	flex: 1;
	padding: 14px 28px;
	background-color: var(--andp-gold) !important;
	color: #000 !important;
	font-family: var(--andp-font-mono) !important;
	font-size: var(--andp-size-label) !important;
	font-weight: 500 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.15em !important;
	border: none !important;
	cursor: pointer;
	transition: background-color var(--andp-transition);
	white-space: nowrap;
}

.andp-sw-hero__purchase .single_add_to_cart_button:hover {
	background-color: #b8821e !important;
}

.andp-sw-hero__trust {
	display: flex;
	align-items: center;
	gap: 6px;
	font-family: var(--andp-font-mono);
	font-size: var(--andp-size-label);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--andp-text-muted);
	margin: 0;
}

.andp-sw-hero__trust svg {
	color: var(--andp-gold);
	flex-shrink: 0;
}

.andp-sw-hero__screenshot-wrap {
	display: flex;
	justify-content: center;
}

.andp-sw-hero__screenshot-frame {
	width: 100%;
	border: 1px solid var(--andp-border-mid);
	overflow: hidden;
	background-color: var(--andp-surface);
}

.andp-sw-hero__screenshot {
	width: 100%;
	height: auto;
	display: block;
}


/* ── Shared section wrapper ── */

.andp-sw-features,
.andp-sw-how,
.andp-sw-screenshots,
.andp-sw-compat,
.andp-sw-description,
.andp-sw-versions,
.andp-sw-reviews {
	max-width: 1200px;
	margin: 0 auto;
	padding: 64px 40px;
	border-top: 1px solid var(--andp-border-light);
}

@media (max-width: 768px) {
	.andp-sw-features,
	.andp-sw-how,
	.andp-sw-screenshots,
	.andp-sw-compat,
	.andp-sw-description,
	.andp-sw-versions,
	.andp-sw-reviews {
		padding: 48px 24px;
	}
}


/* ── Features ── */

.andp-sw-feature-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 16px;
}

.andp-sw-feature-list__item {
	display: flex;
	align-items: flex-start;
	gap: 12px;
}

.andp-sw-feature-list__icon {
	flex-shrink: 0;
	margin-top: 2px;
	color: var(--andp-gold);
}

.andp-sw-feature-list__text {
	font-size: 14px;
	color: var(--andp-text-primary);
	line-height: 1.5;
}


/* ── How It Works ── */

.andp-sw-steps {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 32px;
}

@media (max-width: 768px) {
	.andp-sw-steps {
		grid-template-columns: 1fr;
		gap: 24px;
	}
}

.andp-sw-step {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.andp-sw-step__number {
	font-family: var(--andp-font-mono);
	font-size: 32px;
	font-weight: 300;
	color: var(--andp-gold-dim);
	line-height: 1;
}

.andp-sw-step__heading {
	font-size: 1rem;
	font-weight: 500;
	color: var(--andp-white);
	margin: 0;
}

.andp-sw-step__desc {
	font-size: 13px;
	color: var(--andp-text-muted);
	line-height: 1.6;
	margin: 0;
}


/* ── Extra screenshots ── */

.andp-sw-screenshots__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 16px;
}

.andp-sw-screenshots__item {
	margin: 0;
	border: 1px solid var(--andp-border-light);
	overflow: hidden;
}

.andp-sw-screenshots__img {
	width: 100%;
	height: auto;
	display: block;
}


/* ── Compatibility ── */

.andp-sw-compat-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 1px;
	background-color: var(--andp-border-light);
	border: 1px solid var(--andp-border-light);
	margin-bottom: 48px;
}

.andp-sw-compat-card {
	background-color: var(--andp-surface);
	padding: 24px;
}

.andp-sw-compat-card__app {
	font-size: 13px;
	font-weight: 500;
	color: var(--andp-white);
	margin: 0 0 8px;
}

.andp-sw-compat-card__detail {
	font-size: 12px;
	color: var(--andp-text-muted);
	line-height: 1.55;
	margin: 0;
}

.andp-sw-sysreq {
	border-top: 1px solid var(--andp-border-light);
	padding-top: 32px;
}

.andp-sw-sysreq__heading {
	font-family: var(--andp-font-mono);
	font-size: var(--andp-size-label);
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--andp-text-ghost);
	margin: 0 0 20px;
}

.andp-sw-sysreq__cols {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 32px;
}

.andp-sw-sysreq__os {
	display: flex;
	align-items: center;
	gap: 6px;
	font-family: var(--andp-font-mono);
	font-size: var(--andp-size-label);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--andp-text-mid);
	margin: 0 0 12px;
}

.andp-sw-sysreq__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.andp-sw-sysreq__list li {
	font-size: 12px;
	color: var(--andp-text-muted);
}


/* ── Full description ── */

.andp-sw-description__body {
	max-width: 720px;
}

.andp-prose p {
	color: var(--andp-text-primary);
	font-size: 14px;
	line-height: 1.7;
	margin-bottom: 16px;
}


/* ── Version history ── */

/* Tabs (Windows / macOS) — pure-CSS via hidden radio inputs.
   Each .andp-tabs is a self-contained scope; radio `name` attrs are
   made unique per instance in PHP so multiple blocks coexist on a page. */
.andp-tabs {
	position: relative;
}

.andp-tabs__input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.andp-tabs__nav {
	display: flex;
	gap: 0;
	border-bottom: 1px solid var(--andp-border-light);
	margin-bottom: 24px;
}

.andp-tabs__label {
	cursor: pointer;
	padding: 12px 20px;
	font-family: var(--andp-font-mono);
	font-size: var(--andp-size-label);
	color: var(--andp-text-muted);
	text-transform: uppercase;
	letter-spacing: 0.2em;
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
	transition: color 120ms ease, border-color 120ms ease;
}

.andp-tabs__label:hover {
	color: var(--andp-white);
}

.andp-tabs__panel {
	display: none;
}

.andp-tabs__input--win:checked ~ .andp-tabs__panel--win,
.andp-tabs__input--mac:checked ~ .andp-tabs__panel--mac {
	display: block;
}

.andp-tabs__input--win:checked ~ .andp-tabs__nav .andp-tabs__label[for$="-win"],
.andp-tabs__input--mac:checked ~ .andp-tabs__nav .andp-tabs__label[for$="-mac"] {
	color: var(--andp-white);
	border-bottom-color: var(--andp-gold);
}

.andp-tabs__input--win:focus-visible ~ .andp-tabs__nav .andp-tabs__label[for$="-win"],
.andp-tabs__input--mac:focus-visible ~ .andp-tabs__nav .andp-tabs__label[for$="-mac"] {
	outline: 2px solid var(--andp-gold);
	outline-offset: 2px;
}

.andp-sw-changelog__empty {
	color: var(--andp-text-muted);
	font-size: 13px;
	padding: 24px;
	text-align: center;
	border: 1px solid var(--andp-border-light);
	margin: 0;
}

.andp-sw-changelog {
	display: flex;
	flex-direction: column;
	gap: 0;
	border: 1px solid var(--andp-border-light);
}

.andp-sw-release {
	padding: 20px 24px;
	border-bottom: 1px solid var(--andp-border-light);
}

.andp-sw-release:last-child {
	border-bottom: none;
}

.andp-sw-release--latest {
	background-color: var(--andp-surface);
}

.andp-sw-release__meta {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 8px;
}

.andp-sw-release__version {
	font-family: var(--andp-font-mono);
	font-size: 13px;
	font-weight: 500;
	color: var(--andp-white);
}

.andp-sw-release__date {
	font-family: var(--andp-font-mono);
	font-size: var(--andp-size-label);
	color: var(--andp-text-ghost);
}

.andp-sw-release__notes {
	font-size: 13px;
	color: var(--andp-text-muted);
	margin: 0;
	line-height: 1.55;
}

.andp-sw-changelog__more {
	margin-top: 20px;
	display: flex;
	justify-content: flex-end;
}

.andp-sw-changelog__link {
	font-family: var(--andp-font-mono);
	font-size: var(--andp-size-label);
	color: var(--andp-gold);
	text-transform: uppercase;
	letter-spacing: 0.2em;
	text-decoration: none;
	transition: opacity 120ms ease;
}

.andp-sw-changelog__link:hover {
	opacity: 0.75;
}


/* ── Bottom CTA banner ── */

.andp-sw-cta-banner {
	background-color: var(--andp-surface);
	border-top: 1px solid var(--andp-border-light);
	border-bottom: 1px solid var(--andp-border-light);
	margin-top: 0;
}

.andp-sw-cta-banner__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 48px 40px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
	flex-wrap: wrap;
}

.andp-sw-cta-banner__heading {
	font-size: clamp(1.25rem, 2.5vw, 1.75rem);
	font-weight: 300;
	color: var(--andp-white);
	margin: 0 0 6px;
}

.andp-sw-cta-banner__sub {
	font-family: var(--andp-font-mono);
	font-size: var(--andp-size-label);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--andp-text-ghost);
	margin: 0;
}

.andp-sw-cta-banner__action {
	display: flex;
	align-items: center;
	gap: 24px;
	flex-shrink: 0;
}

.andp-sw-cta-banner__price {
	font-size: 24px;
	font-weight: 300;
	color: var(--andp-white);
	white-space: nowrap;
}

.andp-sw-cta-banner__price .woocommerce-Price-amount {
	color: var(--andp-white);
}

/* WooCommerce add-to-cart in CTA banner */
.andp-sw-cta-banner .cart {
	display: flex;
	align-items: center;
}

.andp-sw-cta-banner .quantity {
	display: none;
}

.andp-sw-cta-banner .single_add_to_cart_button {
	padding: 12px 24px;
	background-color: var(--andp-gold) !important;
	color: #000 !important;
	font-family: var(--andp-font-mono) !important;
	font-size: var(--andp-size-label) !important;
	font-weight: 500 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.15em !important;
	border: none !important;
	cursor: pointer;
	transition: background-color var(--andp-transition);
	white-space: nowrap;
}

.andp-sw-cta-banner .single_add_to_cart_button:hover {
	background-color: #b8821e !important;
}


/* ── Related film products ── */

.andp-related-products {
	max-width: 1200px;
	margin: 0 auto;
	padding: 64px 40px;
	border-top: 1px solid var(--andp-border-light);
}

.andp-section-header {
	display: flex;
	align-items: baseline;
	gap: 16px;
	margin-bottom: 32px;
	flex-wrap: wrap;
}

.andp-section-header__heading {
	margin: 0;
	flex: 1;
}

.andp-section-header__action {
	flex-shrink: 0;
}

.andp-product-grid--related {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

@media (max-width: 768px) {
	.andp-product-grid--related {
		grid-template-columns: 1fr;
	}
}

.andp-product-card {
	background-color: var(--andp-surface);
	border: 1px solid var(--andp-border-light);
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.andp-product-card__img-wrap {
	position: relative;
	overflow: hidden;
}

.andp-product-card__img-link {
	display: block;
}

.andp-product-card__img {
	width: 100%;
	height: 180px;
	object-fit: cover;
	display: block;
	transition: transform 0.3s ease;
}

.andp-product-card:hover .andp-product-card__img {
	transform: scale(1.03);
}

.andp-product-card__body {
	padding: 16px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	flex: 1;
}

.andp-product-card__title {
	margin: 0;
	font-size: 13px;
	font-weight: 500;
}

.andp-product-card__title-link {
	color: var(--andp-white);
	text-decoration: none;
}

.andp-product-card__title-link:hover {
	color: var(--andp-gold);
}

.andp-product-card__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: auto;
}

.andp-product-card__price .woocommerce-Price-amount {
	font-size: 14px;
	color: var(--andp-white);
}

.andp-img-credit {
	font-size: 10px;
	color: var(--andp-text-ghost);
	padding: 6px 8px;
	margin: 0;
}

.andp-img-credit a {
	color: var(--andp-text-ghost);
	text-decoration: none;
}


/* ── Reviews form ── */

.andp-sw-reviews #reply-title,
.andp-sw-reviews .comment-reply-title {
	color: var(--andp-white) !important;
	font-size: 1rem;
	font-weight: 500;
}

.andp-sw-reviews #respond input#submit,
.andp-sw-reviews #respond button#submit,
.andp-sw-reviews #respond button[type="submit"],
.andp-sw-reviews .form-submit input,
.andp-sw-reviews .form-submit button,
.andp-sw-reviews input[type="submit"],
.andp-sw-reviews button[type="submit"],
.andp-sw-reviews .submit {
	background-color: var(--andp-gold) !important;
	color: #000 !important;
	font-family: var(--andp-font-mono) !important;
	font-size: var(--andp-size-label) !important;
	font-weight: 500 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.15em !important;
	border: none !important;
	border-radius: 0 !important;
	padding: 12px 24px !important;
	cursor: pointer;
	transition: background-color var(--andp-transition);
	box-shadow: none !important;
}

.andp-sw-reviews #respond input#submit:hover,
.andp-sw-reviews #respond button#submit:hover,
.andp-sw-reviews #respond button[type="submit"]:hover,
.andp-sw-reviews .form-submit input:hover,
.andp-sw-reviews .form-submit button:hover,
.andp-sw-reviews input[type="submit"]:hover,
.andp-sw-reviews button[type="submit"]:hover,
.andp-sw-reviews .submit:hover {
	background-color: #b8821e !important;
}

.andp-sw-reviews label {
	color: var(--andp-text-muted);
	font-size: 12px;
}

.andp-sw-reviews textarea,
.andp-sw-reviews input[type="text"],
.andp-sw-reviews input[type="email"] {
	background-color: var(--andp-surface) !important;
	border: 1px solid var(--andp-border-mid) !important;
	color: var(--andp-text-primary) !important;
	font-family: var(--andp-font-sans) !important;
	font-size: 13px !important;
	padding: 10px 12px !important;
}


/* ── Version badge in hero ── */

.andp-badge--version-lg {
	font-size: 10px;
	padding: 4px 8px;
	margin-top: 6px;
}

.andp-sw-hero__versions {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 6px;
	align-items: center;
}

.andp-badge--version-platform {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.andp-badge__platform {
	display: inline-block;
	font-family: var(--andp-font-mono);
	font-size: 9px;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--andp-text-mid);
	border-right: 1px solid rgba(201, 146, 42, 0.3);
	padding-right: 6px;
	line-height: 1;
}
