/*
 * WNYpress App
 * Shares the WNYpress Main design tokens while retaining the App Store's
 * product, pricing and interactive demo presentation.
 */
:root {
	--wny-shadow-sm: 0 1px 2px rgba(16, 24, 40, 0.05);
	--wny-shadow-md: 0 12px 34px rgba(16, 24, 40, 0.09);
	--wny-shadow-lg: 0 28px 70px rgba(16, 24, 40, 0.13);
	--wny-radius-sm: 8px;
	--wny-radius: 14px;
	--wny-radius-lg: 24px;
	--wny-green: #169653;
	--wny-soft-green: #eaf8f0;
}

:root :where(.wp-site-blocks) { overflow-wrap: anywhere; }
html { scroll-behavior: smooth; scroll-padding-top: 110px; }
.wp-site-blocks > main { margin-top: 0; }

/* Local App Store header. Global Core owns the ecosystem header/footer. */
.wny-local-header {
	border-bottom: 1px solid var(--wp--preset--color--line);
	background: rgba(255, 255, 255, 0.97);
	position: relative;
	z-index: 20;
}
.wny-local-header__inner { min-height: 76px; gap: 1.5rem; }
.wny-local-brand { margin: 0; font-size: 1.55rem; font-weight: 780; letter-spacing: -0.035em; line-height: 1; }
.wny-local-brand a,
.wny-local-header .wp-block-navigation-item__content { color: var(--wp--preset--color--charcoal); text-decoration: none; }
.wny-local-header .wp-block-navigation-item__content:hover,
.wny-local-header .wp-block-navigation-item__content:focus-visible { color: var(--wp--preset--color--brand); }
.wny-local-header .wp-block-navigation__responsive-container-open,
.wny-local-header .wp-block-navigation__responsive-container-close { border-radius: 7px; padding: .35rem; }

/* Shared section language. */
.wny-section { padding-top: clamp(4rem, 8vw, 7rem); padding-bottom: clamp(4rem, 8vw, 7rem); }
.wny-product-section { margin-top: clamp(3.5rem, 7vw, 6rem); margin-bottom: clamp(3.5rem, 7vw, 6rem); }
.wny-anchor-offset { scroll-margin-top: 110px; }
.wny-eyebrow {
	display: inline-flex; align-items: center; gap: .45rem; margin: 0 0 .7rem;
	font-size: .78rem; font-weight: 800; line-height: 1; letter-spacing: .12em;
	text-transform: uppercase; color: var(--wp--preset--color--brand);
}
.wny-eyebrow::before { content: ""; width: 1.6rem; height: 2px; background: currentColor; border-radius: 999px; }
.wny-eyebrow--light { color: #b9c8ff; }
.wny-lede { color: var(--wp--preset--color--muted); max-width: 720px; }
.wny-small { color: var(--wp--preset--color--muted); font-size: .92rem; }
.wny-section-heading { align-items: flex-end; gap: 1.5rem; margin-bottom: 1.8rem; }
.wny-section-heading > p { max-width: 420px; margin: 0; }

/* Generic cards and product-content patterns. */
.wny-card,
.wny-demo-action,
.wny-empty-catalog {
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wny-radius);
	background: #fff;
	box-shadow: var(--wny-shadow-sm);
}
.wny-card { padding: clamp(1.3rem, 2.8vw, 2rem); }
.wny-card h3 { margin-top: 0; }
.wny-card p:last-child { margin-bottom: 0; }
.wny-soft-panel {
	padding: clamp(1.5rem, 4vw, 3rem);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wny-radius-lg);
	background: linear-gradient(135deg, #f8faff, #fff);
}
.wny-feature-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.wny-feature-grid--four { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 1.7rem; }
.wny-icon {
	display: grid; place-items: center; width: 44px; height: 44px; margin: 0 0 1rem;
	border-radius: 11px; background: var(--wp--preset--color--mist); color: var(--wp--preset--color--brand);
	font-weight: 900;
}
.wny-badge {
	display: inline-flex; align-items: center; width: max-content; padding: .3rem .65rem;
	border-radius: 999px; color: var(--wp--preset--color--brand-dark); background: #eef3ff;
	font-size: .78rem; font-weight: 800;
}
.wny-badge--green { color: #0f6e3c; background: var(--wny-soft-green); }

/* Storefront hero. */
.wny-storefront-hero {
	position: relative; overflow: hidden;
	background: radial-gradient(circle at 88% 15%, rgba(47,91,231,.15), transparent 29rem), linear-gradient(180deg,#fff 0%,#f7f9ff 100%);
}
.wny-storefront-hero::after {
	content: ""; position: absolute; right: -10rem; bottom: -13rem; width: 34rem; height: 34rem;
	border: 1px solid rgba(47,91,231,.12); border-radius: 50%; pointer-events: none;
}
.wny-storefront-hero-grid {
	position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0,1fr) minmax(390px,.88fr);
	gap: clamp(2.5rem, 6vw, 5.5rem); align-items: center;
}
.wny-storefront-hero h1 { max-width: 760px; margin-top: 0; }
.wny-storefront-window {
	position: relative; overflow: hidden; border: 1px solid #d8e0ee; border-radius: var(--wny-radius-lg);
	background: rgba(255,255,255,.92); box-shadow: var(--wny-shadow-lg);
}
.wny-storefront-window-top { display: flex; align-items: center; gap: 7px; padding: .85rem 1rem; border-bottom: 1px solid #e2e6ec; background: #f8fafc; }
.wny-storefront-window-top span { width: 8px; height: 8px; border-radius: 50%; background: #cbd5e1; }
.wny-storefront-window-top strong { margin-left: auto; color: var(--wp--preset--color--muted); font-size: .75rem; }
.wny-storefront-window-body { padding: 1rem; }
.wny-window-product {
	display: flex; align-items: center; justify-content: space-between; gap: 1.25rem;
	min-height: 150px; padding: 1.25rem; border: 1px solid #e1e5eb; border-radius: 16px; background: #fff;
}
.wny-window-product + .wny-window-product { margin-top: .85rem; }
.wny-window-product--featured { border-color: #c9d8ff; background: linear-gradient(135deg,#f7f9ff,#fff); }
.wny-window-product h3 { margin: .7rem 0 .3rem; font-size: 1.8rem; }
.wny-window-product p { max-width: 260px; margin: 0; color: var(--wp--preset--color--muted); }
.wny-window-price { display: grid; justify-items: end; line-height: 1; }
.wny-window-price strong { color: var(--wp--preset--color--brand-dark); font-size: 2.25rem; font-weight: 800; letter-spacing: -.05em; }
.wny-window-price span { margin-top: .35rem; color: var(--wp--preset--color--muted); font-size: .9rem; font-weight: 700; }
.wny-window-symbol { display: grid; place-items: center; width: 72px; height: 72px; flex: 0 0 72px; border-radius: 20px; color: #fff; background: #202735; font-size: 1.8rem; font-weight: 800; }
.wny-window-footer { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem .15rem .15rem; color: var(--wp--preset--color--muted); font-size: .82rem; font-weight: 700; }

/* Native Post query = software catalog. */
.wny-product-query .wp-block-post-template { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.5rem; margin: 0; }
.wny-product-query .wp-block-post { margin: 0; }
.wny-product-card {
	height: 100%; overflow: hidden; padding: 1.2rem;
	border: 1px solid var(--wp--preset--color--line); border-radius: var(--wny-radius);
	background: #fff; box-shadow: var(--wny-shadow-sm);
	transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}
.wny-product-card:hover { transform: translateY(-3px); border-color: #c7d5fb; box-shadow: var(--wny-shadow-md); }
.wny-product-card-image { overflow: hidden; margin: -1.2rem -1.2rem 1.25rem; border-bottom: 1px solid var(--wp--preset--color--line); background: linear-gradient(145deg,#eef3ff,#f8fbff); }
.wny-product-card-image img { width: 100%; transition: transform .2s ease; }
.wny-product-card:hover .wny-product-card-image img { transform: scale(1.015); }
.wny-product-card h2, .wny-product-card h3 { margin: .75rem 0 .7rem; }
.wny-product-card h2 a, .wny-product-card h3 a { color: var(--wp--preset--color--charcoal); text-decoration: none; }
.wny-product-card h2 a:hover, .wny-product-card h3 a:hover { color: var(--wp--preset--color--brand); }
.wny-product-card .wp-block-post-excerpt { color: var(--wp--preset--color--muted); }
.wny-product-terms { margin-bottom: .4rem; font-size: .78rem; font-weight: 750; }
.wny-product-terms a { display: inline-flex; margin: 0 .35rem .25rem 0; padding: .28rem .6rem; border-radius: 999px; color: var(--wp--preset--color--brand-dark); background: #eef3ff; text-decoration: none; }
.wny-product-read-more, .wp-block-read-more { display: inline-flex; margin-top: .35rem; font-weight: 750; text-decoration: none; }
.wny-empty-catalog { padding: 2rem; border-style: dashed; }

/* Interactive MBOS demo explorer preserved from prior theme. */
.wny-demo-explorer { padding: clamp(1.5rem,4vw,2.5rem); border: 1px solid var(--wp--preset--color--line); border-radius: var(--wny-radius-lg); background: #fff; box-shadow: var(--wny-shadow-md); }
.wny-demo-editor-preview { padding: 1.5rem; border: 1px dashed #9ab9ef; border-radius: var(--wny-radius); background: #f7f9ff; }
.wny-demo-tabs { display: flex; flex-wrap: wrap; gap: .7rem; margin: 1.35rem 0; }
.wny-demo-tab { appearance: none; border: 1px solid #d7dce5; border-radius: 999px; padding: .55rem .85rem; color: var(--wp--preset--color--charcoal); background: #fff; font: inherit; font-size: .88rem; font-weight: 700; cursor: pointer; }
.wny-demo-tab:hover { border-color: #b9c9f5; color: var(--wp--preset--color--brand); }
.wny-demo-tab[aria-selected="true"] { border-color: var(--wp--preset--color--brand); color: #fff; background: var(--wp--preset--color--brand); }
.wny-demo-tab:focus-visible { outline: 3px solid rgba(47,91,231,.20); outline-offset: 2px; }
.wny-demo-panel { display: none; }
.wny-demo-panel.is-active { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.25rem; }
.wny-demo-action { padding: 1.4rem; background: linear-gradient(145deg,#fbfcff,#f6f8fc); }
.wny-demo-action h3 { margin-top: .85rem; }
.wny-demo-action a { margin-top: .75rem; }
.wny-demo-credentials { display: grid; gap: .25rem; margin-top: 1rem; padding: .8rem .9rem; border: 1px solid #dce2eb; border-radius: .65rem; background: #fff; font-size: .88rem; line-height: 1.45; }
.wny-demo-credentials strong { color: var(--wp--preset--color--charcoal); }
.wny-demo-credentials code { padding: .08rem .3rem; border-radius: .3rem; background: #eef2f7; color: var(--wp--preset--color--charcoal); font: inherit; font-weight: 700; }

/* MBOS pricing and product patterns. */
.wny-license-panel { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(300px,.75fr); gap: clamp(2rem,5vw,4rem); padding: clamp(1.5rem,4vw,3rem); border: 1px solid #d5def8; border-radius: var(--wny-radius-lg); background: linear-gradient(135deg,#eef3ff,#f8fbff); }
.wny-license-copy h2 { margin-top: 0; }
.wny-license-includes { padding-left: 1.25rem; }
.wny-license-price-card { padding: clamp(1.5rem,4vw,2.35rem); border: 1px solid rgba(47,91,231,.18); border-radius: var(--wny-radius); background: #fff; box-shadow: var(--wny-shadow-md); }
.wny-license-term { margin: 0; color: var(--wp--preset--color--brand-dark); font-size: .78rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.wny-license-price { display: flex; align-items: baseline; gap: .55rem; margin: .45rem 0 .7rem; line-height: 1; }
.wny-license-price strong { font-size: clamp(3rem,6vw,4.5rem); letter-spacing: -.06em; }
.wny-license-price span { color: var(--wp--preset--color--muted); font-size: 1.05rem; font-weight: 700; }
.wny-license-renewal { color: var(--wp--preset--color--muted); }
.wny-license-actions, .wny-license-actions .wp-block-button, .wny-license-actions .wp-block-button__link { width: 100%; }
.wny-license-account-note { color: var(--wp--preset--color--muted); font-size: .86rem; text-align: center; }

/* Single product. */
.wny-single-product-hero { background: radial-gradient(circle at 86% 18%,rgba(47,91,231,.10),transparent 25rem), #f7f9ff; }
.wny-single-product-hero-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(380px,.85fr); gap: clamp(2rem,5vw,4.5rem); align-items: center; }
.wny-single-product-hero .wp-block-post-excerpt { max-width: 690px; color: var(--wp--preset--color--muted); }
.wny-single-product-image { overflow: hidden; border: 1px solid var(--wp--preset--color--line); border-radius: var(--wny-radius-lg); background: #fff; box-shadow: var(--wny-shadow-md); }
.wny-single-product-image img { width: 100%; }
.wny-product-content { padding-top: clamp(2.5rem,5vw,4.5rem); padding-bottom: clamp(3rem,6vw,5rem); }
.wny-product-content > .wp-block-post-content > *:first-child { margin-top: 0; }
.wny-product-content .alignwide { max-width: 1200px; }
.wny-product-split { gap: clamp(2rem,5vw,4rem); }
.wny-media-placeholder { display: grid; place-items: center; min-height: 340px; padding: 2rem; border: 1px dashed #aebed1; border-radius: var(--wny-radius-lg); color: var(--wp--preset--color--muted); background: linear-gradient(145deg,#f4f8ff,#fff); text-align: center; }
.wny-media-placeholder strong { display: block; margin-top: .25rem; color: var(--wp--preset--color--charcoal); font-size: 1.25rem; }

.wny-dark-cta { padding: clamp(1.8rem,5vw,3.5rem); border-radius: var(--wny-radius-lg); color: #fff; background: linear-gradient(135deg,#0d1b34,#1f43b8); box-shadow: var(--wny-shadow-lg); }
.wny-dark-cta h2, .wny-dark-cta h3, .wny-dark-cta p { color: #fff; }
.wny-dark-cta .wp-block-button.is-style-outline .wp-block-button__link { border-color: rgba(255,255,255,.55); color: #fff; }

/* Focus treatment. */
:where(a, button, input, textarea, select):focus-visible { outline: 3px solid rgba(47,91,231,.22); outline-offset: 2px; }

@media (max-width: 980px) {
	.wny-storefront-hero-grid, .wny-single-product-hero-grid, .wny-license-panel { grid-template-columns: 1fr; }
	.wny-storefront-window { max-width: 680px; }
	.wny-feature-grid--four { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 720px) {
	.wny-local-header__inner { min-height: 68px; }
	.wny-product-query .wp-block-post-template, .wny-feature-grid, .wny-feature-grid--four, .wny-demo-panel.is-active { grid-template-columns: 1fr; }
	.wny-section { padding-top: 3.2rem; padding-bottom: 3.2rem; }
	.wny-product-section { margin-top: 3rem; margin-bottom: 3rem; }
	.wny-window-product { align-items: flex-start; flex-direction: column; }
	.wny-window-price { justify-items: start; }
	.wny-section-heading { align-items: flex-start; }
}
@media (max-width: 480px) {
	.wny-local-brand { font-size: 1.3rem; }
	.wny-storefront-window-top strong { display: none; }
	.wny-demo-explorer { padding: 1.2rem; }
	.wny-license-panel { padding: 1.25rem; }
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.wny-product-card, .wny-product-card-image img, .wp-element-button, .wp-block-button__link { transition: none !important; }
	.wny-product-card:hover { transform: none; }
}

/* Block-editor normalization. */
p.wny-icon { margin-top: 0; margin-right: 0; margin-left: 0; }
.wny-storefront-hero-grid > .wp-block-html { margin: 0; }

/* --------------------------------------------------------------------------
 * WNYpress network 404
 * -------------------------------------------------------------------------- */
.wny-404 {
	box-sizing: border-box;
	padding: clamp(2.25rem, 5vw, 4.25rem) 1.25rem clamp(3rem, 6vw, 5rem);
	background: #ffffff;
	color: #142239;
}

.wny-404__inner {
	max-width: 760px !important;
	margin-inline: auto;
	text-align: center;
}

.wny-404__code {
	margin: 0 0 .25rem;
	color: #d9dce2;
	font-size: clamp(4.75rem, 10vw, 7.5rem);
	font-weight: 800;
	letter-spacing: -.065em;
	line-height: .82;
}

.wny-404__title {
	margin: 0 auto clamp(1rem, 2vw, 1.35rem);
	max-width: 720px;
	color: #142239;
	font-size: clamp(2rem, 4.5vw, 3rem);
	font-weight: 750;
	letter-spacing: -.035em;
	line-height: 1.08;
}

.wny-404-media {
	width: min(100%, 410px);
	margin: 0 auto .55rem;
}

.wny-404-media__window {
	padding: 3px;
	border: 1px solid #202020;
	background: #bfbfbf;
	box-shadow:
		0 0 0 1px #f4f4f4 inset,
		0 0 0 2px #6d6d6d,
		0 10px 24px rgba(20, 34, 57, .14);
}

.wny-404-media__titlebar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 27px;
	padding: 3px 5px 3px 8px;
	background: #07379b;
	color: #ffffff;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px;
	line-height: 1;
	text-align: left;
	user-select: none;
}

.wny-404-media__close {
	display: grid;
	width: 20px;
	height: 20px;
	place-items: center;
	border: 1px solid #1f1f1f;
	background: #d6d6d6;
	box-shadow: 1px 1px 0 #ffffff inset, -1px -1px 0 #707070 inset;
	color: #111111;
	font-size: 14px;
	font-weight: 800;
	line-height: 1;
}

.wny-404-media video {
	display: block;
	width: 100%;
	height: auto;
	margin: 0;
	background: #000000;
}

.wny-404-media__hear {
	display: inline-flex;
	gap: .42rem;
	align-items: center;
	justify-content: center;
	margin: .7rem auto 0;
	padding: .2rem .35rem;
	border: 0;
	background: transparent;
	color: #064cc9;
	font: inherit;
	font-size: .95rem;
	font-weight: 650;
	line-height: 1.35;
	cursor: pointer;
}

.wny-404-media__hear:hover,
.wny-404-media__hear:focus-visible {
	text-decoration: underline;
}

.wny-404-media__hear:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

.wny-404-media__speaker {
	font-size: 1.05rem;
	line-height: 1;
}

.wny-404__subtitle {
	margin: .65rem auto .35rem;
	max-width: 640px;
	color: #142239;
	font-size: clamp(1.12rem, 2vw, 1.35rem);
	font-weight: 750;
	line-height: 1.25;
}

.wny-404__copy {
	max-width: 560px;
	margin: 0 auto 1.15rem;
	color: #4e5b6d;
	font-size: 1rem;
	line-height: 1.55;
}

.wny-404__actions {
	gap: .8rem;
	margin: 0 auto 1.1rem;
}

.wny-404__actions .wp-block-button__link {
	min-width: 190px;
	padding: .78rem 1.15rem;
	border-radius: 6px;
	font-weight: 700;
}

.wny-404__home .wp-block-button__link::before {
	content: "⌂";
	margin-right: .45rem;
	font-size: 1.15em;
	vertical-align: -.03em;
}

.wny-404__support .wp-block-button__link::before {
	content: "?";
	display: inline-grid;
	width: 1.2em;
	height: 1.2em;
	margin-right: .45rem;
	place-items: center;
	border: 1.5px solid currentColor;
	border-radius: 50%;
	font-size: .78em;
	font-weight: 800;
	line-height: 1;
	vertical-align: .1em;
}

.wny-404__search-wrap {
	max-width: 410px !important;
	margin-inline: auto;
}

.wny-404__search-label {
	margin: 0 0 .35rem;
	color: #7a828d;
	font-size: .8rem;
}

.wny-404__search.wp-block-search {
	margin: 0;
}

.wny-404__search .wp-block-search__inside-wrapper {
	min-height: 42px;
	padding: 0;
	border: 1px solid #d4d9e0;
	border-radius: 6px;
	background: #ffffff;
	overflow: hidden;
}

.wny-404__search .wp-block-search__input {
	min-width: 0;
	padding: .65rem .8rem;
	border: 0;
	outline: 0;
	background: transparent;
	color: #142239;
	font: inherit;
}

.wny-404__search .wp-block-search__button {
	margin: 0;
	padding: .55rem .7rem;
	border: 0;
	background: transparent;
	color: #334155;
}

.wny-404__search .wp-block-search__button:hover,
.wny-404__search .wp-block-search__button:focus-visible {
	background: #f3f5f8;
}

@media (max-width: 600px) {
	.wny-404 {
		padding-inline: 1rem;
	}

	.wny-404__code {
		font-size: clamp(4.25rem, 24vw, 6rem);
	}

	.wny-404__title {
		font-size: clamp(1.7rem, 8vw, 2.2rem);
	}

	.wny-404-media {
		width: min(100%, 360px);
	}

	.wny-404__actions {
		align-items: stretch;
		flex-direction: column;
	}

	.wny-404__actions .wp-block-button,
	.wny-404__actions .wp-block-button__link {
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.wny-404-media video {
		scroll-behavior: auto;
	}
}



/* Transformas List Bullets to Check Marks in Gutenburg */
.green-check-list {
    list-style: none;
    padding-left: 0;
}

.green-check-list li {
    position: relative;
    padding-left: 1.75rem;
}

.green-check-list li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: #22c55e;
    font-size: 1.1em;
    font-weight: 700;
}
