/*
Theme Name: Safe Cursuri
Template: twentytwentyfive
Description: Block theme for the S.A.F.E. training website (child of Twenty Twenty-Five). Templates, header, footer and sections are all editable in the Site Editor.
Version: 2.3.0
Requires at least: 6.6
Requires PHP: 8.0
Text Domain: safe-tema
License: GNU General Public License v2 or later
*/

/* Small visual details only; layout and content live in blocks. */
.wp-block-group.alignfull + .wp-block-group.alignfull { margin-block-start: 0; }
main.wp-block-group > * { margin-block-start: 0; }
.is-style-safe-card { transition: box-shadow .2s ease, transform .2s ease; }
.is-style-safe-card:hover { box-shadow: 0 12px 32px rgba(11, 18, 32, .10); transform: translateY(-2px); }
.safe-glass { backdrop-filter: blur(6px); }
.safe-badge {
	width: 2.4rem; height: 2.4rem; line-height: 2.4rem; padding: 0 !important; margin: 0;
	border-radius: 9px; flex-shrink: 0; font-size: 1.15rem;
}
.safe-step-num {
	width: 2.4rem; height: 2.4rem; line-height: 2.4rem; padding: 0 !important;
	border-radius: 999px; font-size: 1rem;
}
.safe-plain-list { list-style: none; padding-left: 0; line-height: 2; }
.safe-plain-list a, footer .wp-block-site-title a, header .wp-block-site-title a, .wp-block-navigation a,
.wp-block-post-title a, .wp-block-read-more, .wp-block-post-terms a { text-decoration: none; }
.wp-block-post-title a:hover, .safe-plain-list a:hover { color: var(--wp--preset--color--accent-1); }
.wp-block-details summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
.wp-block-details summary::after { content: "+"; color: var(--wp--preset--color--accent-1); font-weight: 800; }
.wp-block-details[open] summary::after { content: "–"; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-table th { background: var(--wp--preset--color--contrast); color: #fff; }
.wp-block-table td, .wp-block-table th { padding: .7em .9em; border-color: var(--wp--preset--color--accent-6); }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: rgba(255,255,255,.08); }
:focus-visible { outline: 2px solid var(--wp--preset--color--accent-1); outline-offset: 2px; }
@media (max-width: 781px) {
	.safe-tagline { display: none; }
}
.safe-badge, .safe-step-num { display: flex; align-items: center; justify-content: center; text-align: center; }
.has-text-align-center { text-align: center; }
.safe-check-list { list-style: none; padding-left: 0; }
.safe-check-list li { padding-left: 1.8em; position: relative; margin: .55em 0; }
.safe-check-list li::before { content: "✓"; position: absolute; left: 0; color: var(--wp--preset--color--accent-1); font-weight: 800; }
.safe-legal-badge a { display: inline-block; padding: .25em .8em; border: 1px solid rgba(255,255,255,.25); border-radius: 6px; text-decoration: none; }
.safe-client-logo img { filter: grayscale(1); opacity: .7; transition: all .2s; }
.safe-client-logo img:hover { filter: none; opacity: 1; }

/* ---------- Motion (disabled automatically for “reduce motion” users) ---------- */
.safe-motion .safe-reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); transition-delay: var(--safe-delay, 0ms); }
.safe-motion .safe-reveal.is-visible { opacity: 1; transform: none; }
.safe-motion .has-hero-gradient-background { background-size: 160% 160% !important; animation: safeGlow 16s ease-in-out infinite alternate; }
@keyframes safeGlow { 0% { background-position: 0% 0%; } 100% { background-position: 100% 60%; } }
.safe-motion .has-hero-gradient-background h1, .safe-motion .has-hero-gradient-background .wp-block-post-title { animation: safeUp .9s cubic-bezier(.2,.7,.2,1) both .1s; }
.safe-motion .has-hero-gradient-background p, .safe-motion .has-hero-gradient-background .wp-block-post-excerpt, .safe-motion .has-hero-gradient-background .wp-block-post-terms { animation: safeUp .9s cubic-bezier(.2,.7,.2,1) both .25s; }
.safe-motion .has-hero-gradient-background .wp-block-buttons { animation: safeUp .9s cubic-bezier(.2,.7,.2,1) both .4s; }
.safe-motion .has-hero-gradient-background .safe-glass { animation: safeUp 1s cubic-bezier(.2,.7,.2,1) both .5s; }
@keyframes safeUp { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
.is-style-safe-card { position: relative; transition: box-shadow .3s ease, transform .3s ease, border-color .3s ease; }
.is-style-safe-card::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; border-radius: inherit; background: var(--wp--preset--color--accent-1); transform: scaleX(0); transform-origin: left; transition: transform .35s ease; }
.is-style-safe-card:hover { box-shadow: 0 18px 40px rgba(11,18,32,.14); transform: translateY(-4px); border-color: var(--wp--preset--color--accent-1) !important; }
.is-style-safe-card:hover::after { transform: scaleX(1); }
.wp-block-button__link { transition: transform .2s ease, background-color .2s ease, box-shadow .2s ease; }
.wp-block-button__link:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(232,163,61,.25); }
.wp-block-read-more, .wp-block-post-title a { transition: color .2s ease, letter-spacing .2s ease; }
.wp-block-read-more:hover { letter-spacing: .02em; color: var(--wp--preset--color--accent-1); }
.wp-block-post-featured-image img { transition: transform .5s ease; } .wp-block-post-featured-image { overflow: hidden; }
.wp-block-post:hover .wp-block-post-featured-image img { transform: scale(1.04); }
.wp-block-details { transition: background-color .2s ease; } .wp-block-details:hover summary { color: var(--wp--preset--color--accent-1); }
.wp-block-navigation a { position: relative; } .wp-block-navigation .wp-block-navigation-item__content::after { content: ""; position: absolute; left: 0; right: 0; bottom: -4px; height: 2px; background: var(--wp--preset--color--accent-1); transform: scaleX(0); transition: transform .25s ease; }
.wp-block-navigation .wp-block-navigation-item__content:hover::after { transform: scaleX(1); }
.safe-motion .safe-marquee { flex-wrap: nowrap !important; overflow: hidden; justify-content: flex-start !important; gap: 0 !important; mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.safe-marquee__track { display: flex; flex-shrink: 0; gap: 3.5rem; padding-right: 3.5rem; align-items: center; }
.safe-motion .safe-marquee__track { animation: safeMarquee 28s linear infinite; }
.safe-marquee:hover .safe-marquee__track { animation-play-state: paused; }
@keyframes safeMarquee { from { transform: translateX(0); } to { transform: translateX(-100%); } }
.safe-marquee__track > p { margin: 0 !important; white-space: nowrap; }

/* ---------- Mobile ---------- */
@media (max-width: 781px) {
	.wp-block-group.is-layout-grid { grid-template-columns: 1fr !important; }
	.is-style-safe-card .wp-block-group.is-layout-grid, .is-style-safe-card.is-layout-grid { grid-template-columns: 1fr 1fr !important; }
	.has-hero-gradient-background { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; }
	section.wp-block-group.alignfull { padding-top: 3.25rem !important; padding-bottom: 3.25rem !important; padding-left: 1.25rem !important; padding-right: 1.25rem !important; }
	.wp-block-group.alignfull > .wp-block-group.alignwide[style*="border-radius:22px"] { padding: 2.5rem 1.5rem !important; }
	h2.has-xx-large-font-size { font-size: 2rem !important; }
	.is-style-safe-card { padding: 1.5rem !important; }
	.is-style-safe-card:hover { transform: none; }
	.wp-block-buttons > .wp-block-button { flex: 1 1 100%; } .wp-block-buttons > .wp-block-button .wp-block-button__link { width: 100%; }
	header .wp-block-buttons > .wp-block-button { flex: 0 0 auto; } header .wp-block-buttons .wp-block-button__link { width: auto; padding: .6em 1.1em; font-size: .85rem; }
	.wp-block-post-template.is-layout-grid { grid-template-columns: 1fr !important; }
	.wp-block-columns { gap: 1.5rem !important; }
	.wp-block-table { overflow-x: auto; } .wp-block-table table { min-width: 520px; }
	footer .wp-block-columns { gap: 2rem !important; }
}
@media (max-width: 420px) {
	header .wp-block-site-title { font-size: 1rem !important; }
	header .wp-block-buttons .wp-block-button__link { padding: .55em .9em; font-size: .8rem; }
}

/* ---------- v2.2: dynamic heroes, stats, collage, trainer cards ---------- */
.safe-hero-fx { position: relative; overflow: hidden; isolation: isolate; }
.safe-hero-fx::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background-image: linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
	background-size: 56px 56px; -webkit-mask-image: radial-gradient(ellipse 70% 80% at 75% 40%, #000, transparent 75%); mask-image: radial-gradient(ellipse 70% 80% at 75% 40%, #000, transparent 75%); }
.safe-hero-fx::after { content: ""; position: absolute; z-index: -1; pointer-events: none; width: min(70vw, 680px); aspect-ratio: 1; right: -14%; top: 50%; margin-top: calc(min(70vw, 680px) / -2); border-radius: 50%;
	background: conic-gradient(from 0deg, rgba(232,163,61,.26), rgba(232,163,61,0) 16%, transparent 100%), repeating-radial-gradient(circle, transparent 0 63px, rgba(232,163,61,.13) 64px 65px);
	-webkit-mask-image: radial-gradient(circle, #000 52%, transparent 71%); mask-image: radial-gradient(circle, #000 52%, transparent 71%); }
.safe-motion .safe-hero-fx::after { animation: safeRadar 8s linear infinite; }
.safe-motion .safe-hero-fx::before { animation: safeGrid 24s linear infinite; }
@keyframes safeRadar { to { transform: rotate(360deg); } }
@keyframes safeGrid { to { background-position: 56px 56px, 56px 56px; } }
.safe-hero-fx > * { position: relative; }
.safe-hero-fx h1 em { font-style: normal; color: var(--wp--preset--color--accent-1); background: linear-gradient(currentColor, currentColor) 0 100% / 100% 4px no-repeat; padding-bottom: .04em; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.safe-motion .safe-hero-fx h1 em { background-size: 0 4px; animation: safeLine 1s cubic-bezier(.2,.7,.2,1) .9s forwards; }
@keyframes safeLine { to { background-size: 100% 4px; } }

.safe-stat { transition: transform .3s ease, border-color .3s ease, background-color .3s ease; }
.safe-stat:hover { transform: translateY(-4px); border-color: rgba(232,163,61,.6) !important; background-color: rgba(232,163,61,.08) !important; }
.safe-stat p { margin: 0; }
.safe-motion .safe-stats .safe-stat { animation: safeUp .8s cubic-bezier(.2,.7,.2,1) both; }
.safe-motion .safe-stats .safe-stat:nth-child(2) { animation-delay: .12s; }
.safe-motion .safe-stats .safe-stat:nth-child(3) { animation-delay: .24s; }
.safe-motion .safe-stats .safe-stat:nth-child(4) { animation-delay: .36s; }

.safe-collage { position: relative; min-height: 460px; }
.safe-collage > .wp-block-image { position: absolute; width: 60%; margin: 0 !important; }
.safe-collage > .wp-block-image img { border-radius: 18px; border: 1px solid rgba(255,255,255,.14); box-shadow: 0 30px 60px rgba(0,0,0,.45); width: 100%; transition: transform .4s ease; }
.safe-collage > .wp-block-image:first-child { left: 0; top: 0; transform: rotate(-4deg); z-index: 1; }
.safe-collage > .wp-block-image:last-child { right: 0; bottom: 0; transform: rotate(4deg); z-index: 2; }
.safe-collage > .wp-block-image:hover { z-index: 3; }
.safe-collage > .wp-block-image:hover img { transform: scale(1.04); }
.safe-collage figcaption { position: absolute; left: 14px; bottom: 14px; margin: 0 !important; padding: .35rem .8rem; border-radius: 999px; background: var(--wp--preset--color--accent-1); color: var(--wp--preset--color--contrast); font-size: .8rem; font-weight: 800; }
.safe-motion .safe-collage > .wp-block-image:first-child img { animation: safeFloat 6s ease-in-out infinite alternate; }
.safe-motion .safe-collage > .wp-block-image:last-child img { animation: safeFloat 6s ease-in-out -3s infinite alternate; }
@keyframes safeFloat { from { translate: 0 0; } to { translate: 0 -14px; } }

.safe-trainer-card { overflow: hidden; }
.safe-trainer-card .wp-block-post-featured-image { margin: 0; overflow: hidden; }
.safe-trainer-card .wp-block-post-featured-image img { object-position: center 22%; transition: transform .7s cubic-bezier(.2,.7,.2,1); }
.safe-trainer-card:hover .wp-block-post-featured-image img { transform: scale(1.06); }
.safe-trainer-card .wp-block-post-featured-image { position: relative; }
.safe-trainer-card .wp-block-post-featured-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(11,18,32,.55)); pointer-events: none; }

.safe-chip { margin: 0 !important; }
.safe-chip a { display: inline-block; padding: .45rem 1rem; border-radius: 999px; border: 1px solid var(--wp--preset--color--accent-6); background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast); text-decoration: none; font-weight: 700; transition: all .25s ease; }
.safe-chip a:hover { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); border-color: var(--wp--preset--color--contrast); }

.safe-letter { transition: transform .4s cubic-bezier(.2,.7,.2,1), text-shadow .4s ease; display: inline-block; }
.is-style-safe-card:hover .safe-letter { transform: translateY(-6px) scale(1.08); text-shadow: 0 0 28px rgba(232,163,61,.55); }
.safe-join { background: linear-gradient(120deg, var(--wp--preset--color--base) 60%, rgba(232,163,61,.12)); }

.safe-progress { position: fixed; top: 0; left: 0; height: 3px; width: 100%; transform-origin: 0 50%; transform: scaleX(0); background: var(--wp--preset--color--accent-1); z-index: 99999; pointer-events: none; }

@media (max-width: 781px) {
	.safe-stats.is-layout-grid { grid-template-columns: 1fr 1fr !important; }
	.safe-stat { padding: 1.1rem !important; }
	.safe-stat .safe-count { font-size: 1.45rem !important; white-space: nowrap; }
	.is-layout-grid:has(> .is-style-safe-card .safe-letter) { grid-template-columns: 1fr 1fr !important; }
	.safe-letter { font-size: 3rem !important; }
	.safe-collage { min-height: 380px; margin-top: 1rem; }
	.safe-collage > .wp-block-image { width: 58%; }
	.safe-hero-fx::after { width: 110vw; margin-top: -55vw; right: -55vw; opacity: .7; }
	.safe-join { padding: 1.75rem !important; }
	.safe-trainer-card > .wp-block-group { padding: 1.5rem !important; }
}

/* Language switcher */
.safe-lang { display: inline-flex; gap: 2px; padding: 3px; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; font-size: .78rem; font-weight: 800; letter-spacing: .06em; }
.safe-lang__item { padding: .3rem .6rem; border-radius: 999px; line-height: 1; color: inherit; text-decoration: none; opacity: .75; transition: all .2s ease; }
a.safe-lang__item:hover { opacity: 1; background: rgba(255,255,255,.1); }
.safe-lang__item.is-current { background: var(--wp--preset--color--accent-1); color: var(--wp--preset--color--contrast); opacity: 1; }
header .wp-block-shortcode, header p:has(> .safe-lang) { margin: 0; }
@media (max-width: 600px) {
	header .wp-block-buttons:has(.wp-block-button) { display: none; }
	header .is-layout-flex { gap: .75rem !important; }
}
