/* Strona „Studia medyczne za granicą” (MCQP_Study_Abroad, 0.49.28). Bazuje na recognition.css (.rc-*), tu tylko elementy własne. */

.sa-hero { background: radial-gradient(90% 120% at 100% 0%, rgba(79, 184, 255, .16), transparent 60%), radial-gradient(80% 100% at 0% 100%, rgba(240, 165, 0, .1), transparent 60%), var(--mq-card); }
.sa .rc-stop--to .rc-ico { animation: sa-bob 3.6s ease-in-out infinite; }
@keyframes sa-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }

/* sześć kroków zamiast pięciu */
.sa-steps { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.sa-steps::before, .sa-steps::after { left: 8.3%; right: 8.3%; }
.sa-steps::after { right: auto; width: calc(83.4% * var(--p)); }

/* wybór uczelni: kampus + kryteria */
.sa-choose { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 14px; align-items: stretch; }
.sa-campus-card { display: grid; grid-template-rows: minmax(0, 1fr) auto; min-height: 340px; border: 1px solid var(--mq-line); border-radius: 22px; background: var(--mq-card); overflow: hidden; }
.sa-campus-art { position: relative; min-height: 200px; overflow: hidden; }
.sa-campus { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.sa-campus-body { position: relative; z-index: 1; display: grid; gap: 8px; padding: 16px 22px 22px; background: var(--mq-card); color: var(--mq-soft); line-height: 1.6; }
.sa-campus-body strong { color: var(--mq-strong); font-size: 1.15rem; line-height: 1.3; }
.sa-moon { fill: #fff3c9; opacity: .9; }
.sa-cloud { fill: #fff; opacity: .14; animation: sa-cloud 26s linear infinite; }
.sa-cloud--b { animation-duration: 34s; animation-delay: -12s; }
.sa-hill { fill: #1a2d22; }
.sa-wing, .sa-roof, .sa-step, .sa-col { fill: #e9e4d8; }
.sa-wing { fill: #d8d1c2; }
.sa-roof { fill: #f2ede2; }
.sa-col { fill: #f6f2ea; }
.sa-win { fill: #ffc94d; opacity: .7; }
.sa-win--b { animation: sa-win 5s ease-in-out infinite; }
.sa-clock { fill: #1b2738; stroke: #f0a500; stroke-width: 2; }
.sa-hand { stroke: #f0a500; stroke-width: 2; stroke-linecap: round; transform-box: view-box; transform-origin: 300px 112px; animation: sa-clock 8s linear infinite; }
.sa-tree path { stroke: #4a3826; stroke-width: 4; }
.sa-tree circle { fill: #2f6b45; animation: sa-sway 5s ease-in-out infinite; transform-box: fill-box; transform-origin: 50% 100%; }
.sa-tree--b circle { animation-delay: -2s; }
.sa-cap { fill: #11161f; stroke: #11161f; stroke-width: 1.5; stroke-linejoin: round; opacity: 0; transform: translate(var(--x), 220px); animation: sa-toss 5.5s cubic-bezier(.3, .7, .4, 1) infinite; }
.sa-cap-tassel { fill: none; stroke: #f0a500; stroke-width: 2; stroke-linecap: round; }
@keyframes sa-toss {
	0% { opacity: 0; transform: translate(var(--x), 210px) rotate(0); }
	8% { opacity: 1; }
	45% { opacity: 1; transform: translate(calc(var(--x) + 14px), 60px) rotate(200deg); }
	80% { opacity: 1; transform: translate(calc(var(--x) + 22px), 150px) rotate(330deg); }
	92%, 100% { opacity: 0; transform: translate(calc(var(--x) + 24px), 200px) rotate(360deg); }
}
@keyframes sa-cloud { from { transform: translateX(-120px); } to { transform: translateX(640px); } }
@keyframes sa-win { 0%, 100% { opacity: .7; } 40% { opacity: .12; } 60% { opacity: .95; } }
@keyframes sa-clock { to { transform: rotate(360deg); } }
@keyframes sa-sway { 0%, 100% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } }

.sa-criteria { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0; padding: 0; list-style: none; }
.sa-crit { display: flex; gap: 12px; align-items: flex-start; padding: 16px; border: 1px solid var(--mq-line); border-radius: 18px; background: var(--mq-card); transition: border-color .25s ease, transform .25s ease; }
.sa-crit:hover { border-color: var(--mq-primary); transform: translateY(-2px); }
.sa-crit .rc-ico { width: 40px; height: 40px; padding: 9px; box-sizing: border-box; border-radius: 12px; background: var(--mq-primary-bg); color: var(--mq-ptext); }
.sa-crit h3 { margin: 2px 0 4px; color: var(--mq-strong); font-size: .98rem; line-height: 1.3; }
.sa-crit p { margin: 0; color: var(--mq-soft); font-size: .85rem; line-height: 1.55; }
.rc-i-turn { transform-box: fill-box; transform-origin: 50% 50%; }
.sa-crit:hover .rc-i-turn, .rc-why-card:hover .rc-i-turn { animation: sa-spin 1.2s ease-in-out; }
@keyframes sa-spin { to { transform: rotate(360deg); } }

/* dyplom w UE i poza UE */
.sa-two { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.sa-panel { --pc: #4fb8ff; position: relative; padding: 24px 24px 22px; border: 1px solid var(--mq-line); border-radius: 22px; background: radial-gradient(110% 120% at 100% 0%, color-mix(in srgb, var(--pc) 14%, transparent), transparent 60%), var(--mq-card); overflow: hidden; }
.sa-panel--out { --pc: #f0a500; }
.sa-panel-ico .rc-ico { width: 48px; height: 48px; padding: 10px; box-sizing: border-box; border-radius: 50%; background: color-mix(in srgb, var(--pc) 18%, transparent); color: var(--pc); }
.sa-i-stars { animation: sa-spin 18s linear infinite; transform-box: view-box; transform-origin: 12px 12px; stroke-width: 2.6; }
.sa-panel h3 { margin: 14px 0 8px; color: var(--mq-strong); font-size: 1.12rem; }
.sa-panel p { margin: 0 0 10px; color: var(--mq-soft); line-height: 1.65; }
.sa-panel-small { font-size: .85rem; color: var(--mq-muted) !important; }
.sa-panel-link { color: var(--mq-ptext); font-weight: 700; text-decoration: none; }
.sa-panel-link:hover span { display: inline-block; animation: rc-nudge .6s ease-in-out infinite; }

/* pytania */
.sa-faq { display: grid; gap: 10px; }
.sa-faq details { border: 1px solid var(--mq-line); border-radius: 16px; background: var(--mq-card); transition: border-color .2s ease; }
.sa-faq details[open] { border-color: var(--mq-primary); }
.sa-faq summary { position: relative; padding: 16px 48px 16px 18px; color: var(--mq-strong); font-weight: 700; cursor: pointer; list-style: none; }
.sa-faq summary::-webkit-details-marker { display: none; }
.sa-faq summary::after { content: ""; position: absolute; right: 20px; top: 50%; width: 9px; height: 9px; margin-top: -7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .25s ease, margin .25s ease; }
.sa-faq details[open] summary::after { transform: rotate(225deg); margin-top: -2px; }
.sa-faq details p { margin: 0; padding: 0 18px 18px; color: var(--mq-soft); line-height: 1.65; }

@media (max-width: 960px) {
	.sa-steps { grid-template-columns: 1fr; }
	.sa-steps::before, .sa-steps::after { left: 23px; right: auto; }
	.sa-steps::after { width: 3px; }
	.sa-choose, .sa-two { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
	.sa-criteria { grid-template-columns: 1fr; }
	.sa-campus-card { min-height: 0; }
}
@media (prefers-reduced-motion: reduce) {
	.sa-cap { display: none; }
}

/* wybór kierunku */
.sa-kinds { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin: 0; padding: 0; list-style: none; }
.sa-kind { display: grid; gap: 6px; justify-items: start; height: 100%; box-sizing: border-box; padding: 18px; border: 1px solid var(--mq-line); border-radius: 18px; background: var(--mq-card); color: var(--mq-soft); text-decoration: none; transition: border-color .25s ease, transform .25s ease; }
.sa-kind:hover { border-color: var(--mq-primary); transform: translateY(-3px); }
.sa-kind .rc-ico { width: 44px; height: 44px; padding: 10px; box-sizing: border-box; border-radius: 13px; background: var(--mq-primary-bg); color: var(--mq-ptext); }
.sa-kind strong { color: var(--mq-strong); font-size: 1.05rem; }
.sa-kind small { font-size: .82rem; line-height: 1.45; }
@media (max-width: 960px) { .sa-kinds { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 560px) { .sa-kinds { grid-template-columns: 1fr 1fr; } }

/* strony kierunków (MCQP_Study_Field) */
.sf-facts { display: grid; align-content: center; }
.sf-facts-h { margin: 0 0 12px; color: var(--mq-muted); font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.sf-facts ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.sf-facts li { display: grid; gap: 2px; padding: 12px 16px; border: 1px solid var(--mq-line); border-radius: 14px; background: var(--mq-bg); animation: sf-pop .6s cubic-bezier(.2, .8, .3, 1) both; animation-delay: calc(var(--i) * 140ms + .2s); }
.sf-facts strong { color: var(--mq-ptext); font-size: 1.5rem; line-height: 1.15; letter-spacing: -.01em; }
.sf-facts span { color: var(--mq-soft); font-size: .85rem; line-height: 1.4; }
@keyframes sf-pop { from { opacity: 0; transform: translateY(12px) scale(.96); } to { opacity: 1; transform: none; } }
.sf-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sf-steps::before, .sf-steps::after { left: 12.5%; right: 12.5%; }
.sf-steps::after { right: auto; width: calc(75% * var(--p)); }

.sf-tablist { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.sf-tab { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px 10px 12px; border: 1px solid var(--mq-line); border-radius: 999px; background: var(--mq-card); color: var(--mq-soft); font: inherit; font-weight: 700; cursor: pointer; transition: border-color .2s ease, background .2s ease, color .2s ease; }
.sf-tab .rc-ico { width: 22px; height: 22px; }
.sf-tab:hover { border-color: var(--mq-primary); color: var(--mq-strong); }
.sf-tab.is-on { border-color: var(--mq-primary); background: var(--mq-primary); color: var(--mq-on-primary); }
.sf-js .sf-panel { display: none; }
.sf-js .sf-panel.is-on { display: block; animation: sf-fade .35s ease both; }
@keyframes sf-fade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.sf-panel { padding: 22px 24px; border: 1px solid var(--mq-line); border-radius: 22px; background: var(--mq-card); }
.sf-path { display: grid; gap: 14px; margin: 0 0 6px; padding: 0; list-style: none; }
.sf-path li { display: flex; gap: 14px; align-items: flex-start; color: var(--mq-soft); line-height: 1.6; animation: sf-fade .5s ease both; animation-delay: calc(var(--i) * 110ms); }
.sf-dot { flex: none; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--mq-primary-bg); color: var(--mq-ptext); font-size: .8rem; font-weight: 800; }
.sf-panel .sa-panel-link { display: inline-block; margin-top: 12px; }

.sf-ready { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 26px; align-items: center; padding: 24px 28px; border: 1px solid var(--mq-line); border-radius: 22px; background: var(--mq-card); transition: border-color .3s ease; }
.sf-ready.is-done { border-color: var(--mq-primary); }
.sf-ring { position: relative; width: 112px; height: 112px; }
.sf-ring svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.sf-ring circle { fill: none; stroke-width: 7; }
.sf-ring-bg { stroke: var(--mq-line); }
.sf-ring-fg { stroke: var(--mq-primary); stroke-linecap: round; stroke-dasharray: 100; stroke-dashoffset: 100; transition: stroke-dashoffset .5s cubic-bezier(.3, .8, .3, 1); }
.sf-ring-n { position: absolute; inset: 0; display: grid; place-items: center; color: var(--mq-strong); font-size: 1.3rem; }
.sf-checks { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.sf-checks label { display: flex; gap: 12px; align-items: center; color: var(--mq-soft); line-height: 1.45; cursor: pointer; }
.sf-checks input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.sf-box { position: relative; flex: none; width: 22px; height: 22px; border: 2px solid var(--mq-line); border-radius: 7px; transition: background .2s ease, border-color .2s ease; }
.sf-box::after { content: ""; position: absolute; left: 6px; top: 2px; width: 5px; height: 10px; border: solid var(--mq-on-primary); border-width: 0 2.5px 2.5px 0; transform: rotate(45deg) scale(0); transition: transform .2s ease; }
.sf-checks input:checked + .sf-box { border-color: var(--mq-primary); background: var(--mq-primary); }
.sf-checks input:checked + .sf-box::after { transform: rotate(45deg) scale(1); }
.sf-checks input:checked ~ span:last-child { color: var(--mq-strong); }
.sf-checks input:focus-visible + .sf-box { outline: 2px solid var(--mq-primary); outline-offset: 2px; }
.sf-ready-msg { min-height: 1.4em; margin: 12px 0 0; color: var(--mq-ptext); font-weight: 700; }
.sf-others { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sf-others .sa-kind { grid-template-columns: auto 1fr; align-items: center; }
@media (max-width: 960px) {
	.sf-steps { grid-template-columns: 1fr; }
	.sf-steps::before, .sf-steps::after { left: 23px; right: auto; }
	.sf-steps::after { width: 3px; }
	.sf-others { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
	.sf-ready { grid-template-columns: 1fr; justify-items: center; padding: 20px 16px; }
	.sf-checks { justify-self: stretch; }
	.sf-panel { padding: 18px 16px; }
}
@media (prefers-reduced-motion: reduce) {
	.sf-facts li, .sf-path li, .sf-js .sf-panel.is-on { animation: none; }
	.sf-ring-fg { transition: none; }
}

/* ilustracje kierunków (0.49.33) */
.sf-scene { position: relative; z-index: 1; border-radius: 22px; overflow: hidden; box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .85), 0 0 0 1px rgba(255, 255, 255, .06); animation: sf-pop .8s cubic-bezier(.2, .8, .3, 1) both; }
.sf-scene svg { display: block; width: 100%; height: auto; }
.sf-scene svg [class] { transform-box: fill-box; transform-origin: 50% 50%; }
.sf-s-glow { animation: sf-glow 6s ease-in-out infinite; }
.sf-s-twinkle { animation: sf-twinkle 2.6s ease-in-out infinite; }
.sf-s-blink { animation: sf-blink 1.2s steps(1) infinite; }
.sf-s-rise { animation: sf-rise 4.2s ease-in infinite; opacity: 0; }
.sf-s-bubble { animation: sf-bubble 4s ease-in infinite; opacity: 0; }
@keyframes sf-glow { 0%, 100% { opacity: .7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.08); } }
@keyframes sf-twinkle { 0%, 100% { transform: scale(.4) rotate(0); opacity: .3; } 50% { transform: scale(1) rotate(45deg); opacity: 1; } }
@keyframes sf-blink { 50% { opacity: .2; } }
@keyframes sf-rise { 0% { opacity: 0; transform: translateY(10px) scale(.6); } 20% { opacity: 1; } 100% { opacity: 0; transform: translateY(-70px) scale(1.1); } }
@keyframes sf-bubble { 0% { opacity: 0; transform: translateY(0) scale(.6); } 15% { opacity: .9; } 100% { opacity: 0; transform: translateY(-150px) scale(1.2); } }
/* medycyna */
.sf-m-trace { stroke-dasharray: 18 82; animation: sf-trace 2.8s linear infinite; filter: drop-shadow(0 0 4px #7fe3ff); }
@keyframes sf-trace { from { stroke-dashoffset: 100; } to { stroke-dashoffset: 0; } }
.sf-m-heart { animation: sf-beat 1.4s ease-in-out infinite; }
.sf-m-hr { animation: sf-beat 1.4s ease-in-out infinite; }
@keyframes sf-beat { 0%, 40%, 100% { transform: scale(1); } 15% { transform: scale(1.14); } 28% { transform: scale(.98); } }
.sf-m-chest { animation: sf-sway 3s ease-in-out infinite; }
@keyframes sf-sway { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(-8px); } }
/* stomatologia */
.sf-d-tooth { animation: sf-float 4s ease-in-out infinite; }
.sf-d-shadow { animation: sf-shadow 4s ease-in-out infinite; }
@keyframes sf-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-1.4px); } }
@keyframes sf-shadow { 0%, 100% { transform: scaleX(1); opacity: .35; } 50% { transform: scaleX(.85); opacity: .22; } }
.sf-scene .sf-d-mirror { transform-origin: 100% 100%; animation: sf-swing 3.4s ease-in-out infinite; }
@keyframes sf-swing { 0%, 100% { transform: rotate(-8deg); } 50% { transform: rotate(10deg); } }
/* farmacja */
.sf-f-wave { animation: sf-wave 3s linear infinite; }
@keyframes sf-wave { from { transform: translateX(0); } to { transform: translateX(-100px); } }
.sf-f-bubble { animation: sf-bubble 3.4s ease-in infinite; opacity: 0; }
.sf-f-pill { animation: sf-spin-float 7s ease-in-out infinite; }
@keyframes sf-spin-float { 0%, 100% { transform: translateY(0) rotate(-20deg); } 50% { transform: translateY(-12px) rotate(25deg); } }
.sf-f-hex { animation: sf-turn 16s linear infinite; }
@keyframes sf-turn { to { transform: rotate(360deg); } }
/* specjalizacja */
.sf-scene .sf-s-medal { transform-origin: 50% 0; animation: sf-medal 4s ease-in-out infinite; }
@keyframes sf-medal { 0%, 100% { transform: rotate(-4deg); } 50% { transform: rotate(4deg); } }
.sf-scene .sf-s-shine { transform-box: view-box; animation: sf-shine 3.2s ease-in-out infinite; }
@keyframes sf-shine { 0%, 30% { transform: translateX(-90px) rotate(20deg); } 70%, 100% { transform: translateX(140px) rotate(20deg); } }
.sf-scene .sf-s-bar { transform-origin: 50% 100%; animation: sf-bar 3.6s ease-in-out infinite; }
@keyframes sf-bar { 0% { transform: scaleY(0); } 30%, 80% { transform: scaleY(1); } 100% { transform: scaleY(0); } }
/* doktorat */
.sf-p-core { animation: sf-beat 2.4s ease-in-out infinite; filter: drop-shadow(0 0 10px #a58bff); }
.sf-scene .sf-p-page { transform-box: view-box; transform-origin: 200px 0; animation: sf-page 4.5s ease-in-out infinite; }
@keyframes sf-page { 0%, 25% { transform: scaleX(1); opacity: 1; } 60% { transform: scaleX(-1); opacity: 1; } 75%, 100% { transform: scaleX(-1); opacity: 0; } }
.sf-p-cap { animation: sf-cap 5s ease-in-out infinite; }
@keyframes sf-cap { 0%, 100% { transform: translateY(0) rotate(-6deg); } 50% { transform: translateY(-10px) rotate(6deg); } }

/* fakty pod nagłówkiem */
.sf-stats { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: -30px 28px 0; padding: 0; list-style: none; }
.sf-stats li { display: grid; gap: 4px; padding: 16px 20px; border: 1px solid var(--mq-line); border-radius: 18px; background: color-mix(in srgb, var(--mq-card) 88%, transparent); backdrop-filter: blur(10px); box-shadow: 0 20px 40px -26px rgba(0, 0, 0, .8); animation: sf-pop .6s cubic-bezier(.2, .8, .3, 1) both; animation-delay: calc(var(--i) * 140ms + .3s); }
.sf-stats strong { color: var(--mq-ptext); font-size: 1.6rem; line-height: 1.1; letter-spacing: -.01em; }
.sf-stats span { color: var(--mq-soft); font-size: .85rem; line-height: 1.4; }
.sf .rc-hero { padding-bottom: 60px; }
@media (max-width: 960px) {
	.sf-scene { max-width: 520px; width: 100%; justify-self: center; }
}
@media (max-width: 560px) {
	.sf-stats { grid-template-columns: 1fr; margin: -24px 12px 0; }
	.sf .rc-hero { padding-bottom: 48px; }
}
@media (prefers-reduced-motion: reduce) {
	.sf-scene *, .sf-stats li, .sf-scene { animation: none !important; }
	.sf-s-rise, .sf-s-bubble, .sf-f-bubble { opacity: 0; }
}
