/*
Theme Name: NucleaisTech
Description: Motyw spółki NUCLEAIS TECH sp. z o.o. — kolorystyka z logo (cyjan → błękit → fiolet na granacie).
Version: 2.0.1
Requires at least: 6.6
Requires PHP: 8.1
Text Domain: nucleaistech
*/

:root {
	--nt-gradient: linear-gradient(120deg, #00BEF0 0%, #2470F0 50%, #8B36F3 100%);
	--nt-ease: cubic-bezier(.16, 1, .3, 1);
}

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; overflow-x: hidden; }
:focus-visible { outline: 2px solid var(--wp--preset--color--accent); outline-offset: 3px; }
::selection { background: rgba(36, 112, 240, .18); }

/* Sekcje stykają się bez odstępów */
.wp-site-blocks > * + *, main.wp-block-group > .alignfull + .alignfull { margin-block-start: 0; }

/* Pasek postępu przewijania */
.nt-progress { position: fixed; top: 0; left: 0; height: 3px; width: 0; z-index: 1001; background: var(--nt-gradient); }

/* Nagłówek */
.nt-header { position: sticky; top: 0; z-index: 1000; transition: background .4s ease, box-shadow .4s ease; }
.admin-bar .nt-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .nt-header { top: 46px; } }
.nt-header.is-scrolled { background: rgba(10, 20, 48, .92) !important; backdrop-filter: blur(18px) saturate(1.3);
	-webkit-backdrop-filter: blur(18px) saturate(1.3); box-shadow: 0 1px 0 rgba(0, 190, 240, .15); }
.nt-header .wp-block-site-logo img { height: auto; }
.nt-header .wp-block-navigation-item__content { color: rgba(255, 255, 255, .7) !important; text-transform: uppercase;
	letter-spacing: .08em; font-weight: 500; padding: .45rem .7rem !important; transition: color .3s ease; }
.nt-header .wp-block-navigation-item__content:hover,
.nt-header .current-menu-item > .wp-block-navigation-item__content { color: #fff !important; }
.nt-header .current-menu-item > .wp-block-navigation-item__content { box-shadow: inset 0 -2px 0 #00BEF0; }
.nt-header .wp-block-navigation__responsive-container-open,
.nt-header .wp-block-navigation__responsive-container-close { color: #fff; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1.05rem; padding: .75rem 0 !important; }

/* Hero */
.nt-hero { position: relative; overflow: hidden; isolation: isolate; }
.nt-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background:
		radial-gradient(45rem 30rem at 8% 0%, rgba(0, 190, 240, .22), transparent 60%),
		radial-gradient(40rem 30rem at 100% 100%, rgba(139, 54, 243, .25), transparent 60%),
		radial-gradient(30rem 20rem at 70% 20%, rgba(36, 112, 240, .18), transparent 60%); }
.nt-hero > *:not(.nt-canvas-wrap) { position: relative; z-index: 1; }
.nt-canvas-wrap { position: absolute; inset: 0; z-index: 0; pointer-events: none; margin: 0 !important; max-width: none !important; }
.nt-canvas-wrap canvas { width: 100%; height: 100%; display: block; }
.nt-hero::after { content: ""; position: absolute; inset: auto 0 0 0; height: 2px; z-index: 1; background: var(--nt-gradient); opacity: .7; }
@media (max-width: 600px) { .nt-hero { min-height: 0 !important; } }

/* Tekst gradientowy (np. <em> w nagłówkach) */
.nt-gradient-text, .nt-hero-title em, h2 em.nt-g {
	font-style: normal; background: var(--nt-gradient); -webkit-background-clip: text; background-clip: text;
	-webkit-text-fill-color: transparent; color: transparent; }
.nt-lead { border-left: 3px solid; border-image: var(--nt-gradient) 1; padding-left: 1rem; }

/* Etykieta sekcji */
.nt-label { display: inline-block; font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .2em;
	color: var(--wp--preset--color--accent); background: var(--wp--preset--color--accent-light); padding: .3rem .75rem; border-radius: 999px; }
.has-dark-background-color .nt-label, .nt-hero .nt-label, .nt-card--dark .nt-label {
	color: #7FE3FF; background: rgba(0, 190, 240, .12); }
.nt-label--solid { color: #fff !important; background: var(--nt-gradient) !important; }

/* Przyciski */
.wp-block-button__link { transition: transform .3s var(--nt-ease), box-shadow .3s ease, background .3s ease; }
.wp-block-button__link:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(36, 112, 240, .3); }
.wp-block-button.is-style-outline > .wp-block-button__link { background: transparent; border: 1.5px solid rgba(255, 255, 255, .35); color: #fff; }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { border-color: #00BEF0; background: rgba(0, 190, 240, .1); box-shadow: none; }
:is(.has-white-background-color, .has-warm-white-background-color, .has-ivory-background-color, .entry-content) .wp-block-button.is-style-outline > .wp-block-button__link {
	color: var(--wp--preset--color--dark); border-color: var(--wp--preset--color--border); }
:is(.has-white-background-color, .has-warm-white-background-color, .has-ivory-background-color, .entry-content) .wp-block-button.is-style-outline > .wp-block-button__link:hover {
	border-color: var(--wp--preset--color--accent); color: var(--wp--preset--color--accent); }

/* Karty */
.nt-card { position: relative; border: 1px solid var(--wp--preset--color--border); border-radius: 16px; background: #fff;
	transition: transform .35s var(--nt-ease), box-shadow .35s ease, border-color .35s ease; }
.nt-card:hover { transform: translateY(-4px); border-color: rgba(36, 112, 240, .35); box-shadow: 0 18px 40px rgba(10, 20, 48, .08); }
.nt-card .wp-block-post-title a, .nt-card h3 a { color: var(--wp--preset--color--dark); text-decoration: none; }
.nt-card .wp-block-post-title a:hover { color: var(--wp--preset--color--accent); }
.nt-card .wp-block-post-featured-image img { border-radius: 16px 16px 0 0; }
.nt-card--dark { background: rgba(255, 255, 255, .04); border-color: rgba(255, 255, 255, .09); }
.nt-card--dark:hover { border-color: rgba(0, 190, 240, .4); box-shadow: 0 18px 40px rgba(0, 0, 0, .35); }
.nt-card--accent::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 3px; border-radius: 16px 16px 0 0; background: var(--nt-gradient); }
.nt-num { font-family: var(--wp--preset--font-family--display); font-weight: 600; line-height: 1;
	background: var(--nt-gradient); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.nt-more { font-weight: 600; font-size: .875rem; text-decoration: none; }
.nt-more::after { content: " →"; }
.has-dark-background-color .nt-more, .nt-card--dark .nt-more { color: #7FE3FF; }

/* Osoby (zarząd) */
.nt-avatar { width: 64px; height: 64px; border-radius: 50%; display: grid; place-items: center; color: #fff;
	font-family: var(--wp--preset--font-family--display); font-weight: 600; font-size: 1.35rem; letter-spacing: .02em;
	background: var(--nt-gradient); box-shadow: 0 8px 20px rgba(36, 112, 240, .25); margin: 0 !important; }
.nt-role { font-size: .75rem !important; font-weight: 700; text-transform: uppercase; letter-spacing: .15em; color: var(--wp--preset--color--accent); }

/* Tabela danych rejestrowych */
.nt-data table { border-collapse: collapse; width: 100%; font-size: .95rem; }
.nt-data td { border: 0 !important; border-bottom: 1px solid var(--wp--preset--color--border) !important; padding: .7rem .25rem !important; vertical-align: top; }
.nt-data td:first-child { color: var(--wp--preset--color--muted); width: 38%; }

/* Treść stron */
.entry-content > h2 { margin-top: 3rem; }
.entry-content > h2:first-child { margin-top: 0; }
.entry-content blockquote { border-left: 3px solid var(--wp--preset--color--accent); padding-left: 1.25rem; }
.entry-content img { border-radius: 12px; }
.entry-content ul { padding-left: 1.2rem; }
.entry-content li::marker { color: var(--wp--preset--color--accent); }

/* Stopka */
.nt-footer a { color: rgba(255, 255, 255, .55); text-decoration: none; }
.nt-footer a:hover { color: #fff; }
.nt-footer .wp-block-navigation-item__content { color: rgba(255, 255, 255, .55); padding: .15rem 0; }
.nt-footer .wp-block-navigation-item__content:hover { color: #fff; }

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; } }

/* Przycisk z własnym kolorem tła nie dziedziczy gradientu */
.wp-block-button__link.has-background:not([class*="-gradient-background"]) { background-image: none; }
