/* ==========================================================================
   Appyn – Modern layer
   Loads after the base stylesheet. Everything is driven by CSS variables that
   are filled from  Appyn panel > Modern design  (colors, font, radius, ...).
   Only shape / spacing / shadow / typography is touched, so Light and Dark
   themes from the panel keep working.
   ========================================================================== */

body.appyn-modern {
	--am-accent: #1bbc9b;
	--am-accent2: #6366f1;
	--am-radius: 14px;
	--am-font: 'Open Sans', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
	--am-shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 4px 14px rgba(16, 24, 40, .06);
	--am-shadow-hover: 0 10px 30px rgba(16, 24, 40, .16);
	--am-border: rgba(128, 128, 128, .16);
	--am-ease: cubic-bezier(.2, .7, .2, 1);

	font-family: var(--am-font);
	font-size: 14px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

body.appyn-modern ::selection { background: var(--am-accent); color: #fff; }

body.appyn-modern h1,
body.appyn-modern h2,
body.appyn-modern h3,
body.appyn-modern h4 { letter-spacing: -.01em; line-height: 1.25; }

body.appyn-modern :focus-visible { outline: 2px solid var(--am-accent); outline-offset: 2px; }

/* ---------- Header ---------- */
body.appyn-modern #header { box-shadow: 0 2px 24px rgba(0, 0, 0, .14); }

body.appyn-modern.am-glass #header {
	background: rgba(20, 24, 33, .72);
	-webkit-backdrop-filter: saturate(180%) blur(16px);
	backdrop-filter: saturate(180%) blur(16px);
	border-bottom: 1px solid rgba(255, 255, 255, .08);
	box-shadow: none;
}

body.appyn-modern #header .logo a img { transition: transform .3s var(--am-ease); }
body.appyn-modern #header .logo a:hover img { transform: scale(1.04); }

/* ---------- Hero / sub-header ---------- */
body.appyn-modern #subheader {
	background: linear-gradient(135deg, #12151d 0%, #1d222d 45%, var(--am-accent2) 190%);
	padding: 56px 0 48px;
	overflow: hidden;
}

body.appyn-modern #subheader::after {
	content: '';
	position: absolute;
	inset: auto -10% -60% -10%;
	height: 90%;
	background: radial-gradient(closest-side, var(--am-accent), transparent 70%);
	opacity: .22;
	pointer-events: none;
}

body.appyn-modern #subheader h1 {
	font-size: clamp(26px, 4.2vw, 44px);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -.02em;
	padding-bottom: 14px;
}

body.appyn-modern #subheader h2 {
	font-size: clamp(14px, 1.6vw, 17px);
	opacity: .85;
	line-height: 1.7;
}

/* ---------- Search ---------- */
body.appyn-modern .sb_search[type=text],
body.appyn-modern #subheader.np .searchBox form input[type=text] {
	border-radius: 999px;
	border: 1px solid var(--am-border);
	transition: box-shadow .25s var(--am-ease), border-color .25s;
}

body.appyn-modern .sb_search[type=text]:focus,
body.appyn-modern #subheader.np .searchBox form input[type=text]:focus {
	box-shadow: 0 0 0 4px rgba(27, 188, 155, .22);
	border-color: var(--am-accent);
}

body.appyn-modern .sb_submit[type=submit],
body.appyn-modern #subheader.np .searchBox form button { border-radius: 999px; }

/* ---------- App cards ---------- */
body.appyn-modern .section .bav1 a,
body.appyn-modern .section .bav2 > a,
body.appyn-modern .bloque-blog,
body.appyn-modern .widget,
body.appyn-modern .app-s .box,
body.appyn-modern .app-p .box,
body.appyn-modern .single-product .product {
	border-radius: var(--am-radius);
	border: 1px solid var(--am-border);
	box-shadow: var(--am-shadow);
}

body.appyn-modern.am-card-flat .section .bav1 a,
body.appyn-modern.am-card-flat .section .bav2 > a,
body.appyn-modern.am-card-flat .bloque-blog,
body.appyn-modern.am-card-flat .widget,
body.appyn-modern.am-card-flat .app-s .box,
body.appyn-modern.am-card-flat .app-p .box { box-shadow: none; border-color: transparent; }

body.appyn-modern.am-card-outlined .section .bav1 a,
body.appyn-modern.am-card-outlined .section .bav2 > a,
body.appyn-modern.am-card-outlined .bloque-blog,
body.appyn-modern.am-card-outlined .widget,
body.appyn-modern.am-card-outlined .app-s .box,
body.appyn-modern.am-card-outlined .app-p .box { box-shadow: none; border-width: 2px; }

body.appyn-modern .section .bav1 a,
body.appyn-modern .section .bav2 > a {
	transition: transform .35s var(--am-ease), box-shadow .35s var(--am-ease), border-color .25s;
	overflow: hidden;
}

body.appyn-modern.am-hover .section .bav1 a:hover,
body.appyn-modern.am-hover .section .bav2 > a:hover {
	transform: translateY(-5px);
	box-shadow: var(--am-shadow-hover);
	border-color: var(--am-accent);
}

body.appyn-modern .section .bav1 a::before { border-radius: var(--am-radius); }
body.appyn-modern .bloque-imagen { border-radius: calc(var(--am-radius) * .75); overflow: hidden; }
body.appyn-modern .section .bav1 a > img { border-radius: calc(var(--am-radius) * .75); }
body.appyn-modern .section .bav1 .title { font-weight: 700; letter-spacing: -.005em; }

/* ---------- Section titles ---------- */
body.appyn-modern .section .title-section,
body.appyn-modern .box .box-title,
body.appyn-modern .widget .widget-title {
	font-weight: 800;
	letter-spacing: -.01em;
}

/* ---------- Ribbons, tags, pills ---------- */
body.appyn-modern .bloque-status { border-radius: 999px; padding-left: 10px; padding-right: 10px; }
body.appyn-modern .tags a,
body.appyn-modern .widget.widget_tag_cloud a,
body.appyn-modern .app-s .s2 .meta-cats a,
body.appyn-modern .catbar li a { border-radius: 999px; }

/* ---------- Buttons ---------- */
body.appyn-modern .buttond,
body.appyn-modern .app-s .readmore,
body.appyn-modern .section a.more,
body.appyn-modern #comments input[type=submit],
body.appyn-modern #list-downloadlinks li a.dapk_b {
	border-radius: calc(var(--am-radius) * .75);
	font-weight: 700;
	transition: transform .2s var(--am-ease), box-shadow .2s var(--am-ease), filter .2s;
}

body.appyn-modern .buttond:hover,
body.appyn-modern .app-s .readmore:hover,
body.appyn-modern .section a.more:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 20px rgba(0, 0, 0, .18);
}

body.appyn-modern .buttond:active { transform: translateY(0); }

/* Gradient accents (main color -> second color). Download button keeps its own color. */
body.appyn-modern.am-grad .sb_submit[type=submit],
body.appyn-modern.am-grad #subheader.np .searchBox form button,
body.appyn-modern.am-grad .app-s .readmore,
body.appyn-modern.am-grad .section a.more,
body.appyn-modern.am-grad #comments input[type=submit],
body.appyn-modern.am-grad .pagination .current,
body.appyn-modern.am-grad .section .bav1 a::after {
	background-image: linear-gradient(135deg, var(--am-accent), var(--am-accent2));
	border-color: transparent;
}

/* ---------- Form fields ---------- */
body.appyn-modern input[type=text],
body.appyn-modern input[type=email],
body.appyn-modern input[type=url],
body.appyn-modern input[type=search],
body.appyn-modern textarea,
body.appyn-modern select { border-radius: calc(var(--am-radius) * .6); }

/* ---------- Pagination ---------- */
body.appyn-modern .pagination a,
body.appyn-modern .pagination .page-numbers,
body.appyn-modern .pagination .current { border-radius: calc(var(--am-radius) * .6); }

/* ---------- Content ---------- */
body.appyn-modern .entry img,
body.appyn-modern .box-content img { border-radius: calc(var(--am-radius) * .6); }
body.appyn-modern .entry,
body.appyn-modern .app-s .entry { line-height: 1.8; font-size: 14.5px; }

/* ---------- Back to top (theme's own #backtotop button) ---------- */
body.appyn-modern #backtotop {
	background-image: linear-gradient(135deg, var(--am-accent), var(--am-accent2));
	box-shadow: 0 8px 24px rgba(0, 0, 0, .28);
}
body.appyn-modern #backtotop:hover { filter: brightness(1.1); }

/* ---------- Scroll reveal (class added by JS only, so content never stays hidden) ---------- */
body.am-anim .am-reveal { opacity: 0; transform: translateY(14px); transition: opacity .55s var(--am-ease), transform .55s var(--am-ease); }
body.am-anim .am-reveal.am-in { opacity: 1; transform: none; }

/* ---------- Mobile ---------- */
@media (max-width: 768px) {
	body.appyn-modern { font-size: 14px; }
	body.appyn-modern #subheader { padding: 36px 0 32px; }
}

@media (prefers-reduced-motion: reduce) {
	body.appyn-modern *,
	body.appyn-modern *::before,
	body.appyn-modern *::after { transition: none !important; animation: none !important; }
	body.am-anim .am-reveal { opacity: 1; transform: none; }
}
