/*
Theme Name: Astra Druxer
Theme URI: https://druxer.ehost.pl/
Description: Astra child theme for the Druxer / DruxMed / Medical Voice / BHP landing page.
Author: Expanding Web
Template: astra
Version: 2.4.0
Text Domain: astra-druxer
*/

:root {
	--druxer-bg:        #f3f3f3;
	--druxer-text:      #1a1a1a;
	--druxer-muted:     #5b5b5b;
	--druxer-accent:    #2ea7d9;
	--druxer-accent-ink:#0e6f9c; /* accent for text / under white text: 5.0:1 on #f3f3f3 (WCAG 1.4.3) */
	--druxer-focus:     #1a1a1a;
	--druxer-trust-bg:  #142a4d;
	--druxer-rule:      #d6d6d6;
	--druxer-card-bg:   #ffffff;
	--druxer-druxer-bg: #f4d03f;
	--druxer-druxmed-bg:#1f6fb0;
	--druxer-voice-bg:  #ffffff;
	--druxer-bhp-bg:    #f4d03f;
}

html, body {
	margin: 0 !important;
	padding: 0 !important;
	background: var(--druxer-bg) !important;
	font-family: "Montserrat", "Helvetica Neue", Arial, sans-serif;
	color: var(--druxer-text);
	-webkit-font-smoothing: antialiased;
}

body.druxer-landing-page > *:not(.druxer-page):not(.druxer-modal):not(.druxer-kontakt):not(.druxer-preview-badge):not(.druxer-skip-link) { display: none !important; }
body.druxer-kontakt-open,
body.druxer-modal-open { overflow: hidden !important; }

.druxer-page {
	max-width: 1200px;
	margin: 0 auto;
	padding: 18px 28px 0;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

/* ---------- header ---------- */
.druxer-header__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding-bottom: 10px;
}
.druxer-brand {
	display: flex;
	align-items: baseline;
	gap: 8px;
	text-decoration: none;
	color: var(--druxer-text);
	font-weight: 900;
	letter-spacing: 0.04em;
}
.druxer-brand__grupa {
	font-size: clamp(20px, 2.4vw, 28px);
}
.druxer-brand__drux {
	font-size: clamp(22px, 2.8vw, 32px);
	color: #d62828;
}
.druxer-header__right {
	display: flex;
	align-items: center;
	gap: 28px;
}
.druxer-social {
	display: flex;
	align-items: center;
	gap: 8px;
}
.druxer-social__label {
	font-weight: 800;
	font-size: 13px;
	letter-spacing: 0.04em;
	margin-right: 4px;
}
.druxer-social__icon {
	display: inline-grid;
	place-items: center;
	width: 28px; height: 28px;
	border-radius: 50%;
	color: #fff;
	text-decoration: none;
	font-weight: 900;
	font-size: 12px;
	box-shadow: 0 2px 4px rgba(0,0,0,.18);
	transition: transform .15s;
}
.druxer-social__icon:hover { transform: translateY(-2px); }
.druxer-social__icon--fb { background: #3b5998; }
.druxer-social__icon--ig { background: linear-gradient(45deg,#f09433,#e6683c 25%,#dc2743 50%,#cc2366 75%,#bc1888); }
.druxer-social__icon--li { background: #0a66c2; }

.druxer-header__phone {
	display: flex;
	align-items: center;
	gap: 10px;
	text-decoration: none;
	color: #d62828;
	font-weight: 900;
	font-size: clamp(22px, 2.8vw, 30px);
	letter-spacing: 0.02em;
	white-space: nowrap;
	transition: color .15s;
}
.druxer-header__phone:hover,
.druxer-header__phone:focus-visible { color: var(--druxer-accent-ink); }
.druxer-header__phone-icon {
	width: 0.95em;
	height: 0.95em;
	flex: none;
}

.druxer-header__contact {
	color: var(--druxer-text);
	text-decoration: none;
	font-weight: 900;
	font-size: 15px;
	text-align: center;
	line-height: 1.05;
	letter-spacing: 0.02em;
}
.druxer-header__contact span {
	font-weight: 500;
	font-size: 12px;
	letter-spacing: 0;
}
.druxer-header__contact:hover { color: var(--druxer-accent-ink); }

/* ---------- nav ---------- */
.druxer-nav {
	border-top: 1px solid var(--druxer-rule);
	border-bottom: 1px solid var(--druxer-rule);
	padding: 10px 0;
	margin-bottom: 22px;
}
.druxer-nav__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 10px 14px;
}
.druxer-nav__sep {
	color: var(--druxer-muted);
	font-weight: 400;
	user-select: none;
}
.druxer-nav__link {
	color: var(--druxer-text);
	text-decoration: none;
	font-weight: 700;
	font-size: 13.5px;
	letter-spacing: 0.04em;
	padding: 4px 6px;
	transition: color .15s;
}
.druxer-nav__link:hover,
.druxer-nav__link:focus-visible { color: var(--druxer-accent-ink); }

/* ---------- cards ---------- */
.druxer-cards {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 18px;
	margin-bottom: 24px;
}
.druxer-card {
	background: var(--druxer-card-bg);
	border-radius: 10px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	box-shadow: 0 2px 8px rgba(0,0,0,.05);
	transition: transform .2s ease, box-shadow .2s ease;
}
.druxer-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 10px 24px rgba(0,0,0,.10);
}
.druxer-card__head {
	display: grid;
	place-items: center;
	padding: 12px 14px;
	min-height: 56px;
}
.druxer-card__head--druxer  { background: var(--druxer-druxer-bg); }
.druxer-card__head--druxmed { background: var(--druxer-druxmed-bg); }
.druxer-card__head--voice   { background: var(--druxer-voice-bg); border-bottom: 1px solid var(--druxer-rule); }
.druxer-card__head--bhp     { background: #000; }
.druxer-card__logo {
	max-height: 38px;
	width: auto;
	max-width: 100%;
	display: block;
}
.druxer-card--bhp .druxer-card__logo {
	max-height: 56px;
}
.druxer-card__title {
	margin: 14px 12px 12px;
	font-size: 15px;
	font-weight: 800;
	text-align: center;
	line-height: 1.25;
	color: var(--druxer-text);
}
.druxer-card__media {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 0 12px 14px;
	margin-top: auto;
}
.druxer-card__media img {
	width: 100%;
	height: auto;
	border-radius: 6px;
	display: block;
}
.druxer-card__media--single {
	padding: 0;
}
.druxer-card__media--single img {
	border-radius: 0;
	width: 100%;
	height: auto;
}

/* ---------- druxmed feature list ---------- */
.druxer-features {
	list-style: none;
	margin: 0 0 14px;
	padding: 0 14px 8px;
	display: grid;
	gap: 8px;
}
.druxer-features__item {
	display: grid;
	grid-template-columns: 16px 1fr auto;
	align-items: start;
	gap: 8px;
	font-size: 12.5px;
	font-weight: 600;
	line-height: 1.3;
}
.druxer-features__check {
	color: var(--druxer-druxmed-bg);
	font-weight: 900;
	font-size: 13px;
	text-align: center;
	line-height: 1.4;
}
.druxer-features__icon {
	max-height: 24px;
	width: auto;
	max-width: 56px;
	object-fit: contain;
	display: block;
	align-self: center;
}

/* ---------- www card ---------- */
.druxer-card__head--www {
	background: var(--druxer-trust-bg);
	grid-auto-flow: column;
	gap: 10px;
}
.druxer-card__wwwmark {
	color: var(--druxer-accent);
	font-weight: 900;
	font-size: 24px;
	line-height: 1;
}
.druxer-card__wwwname {
	color: #fff;
	font-weight: 900;
	font-size: 18px;
	letter-spacing: 0.08em;
	line-height: 1;
}
.druxer-card--www .druxer-card__cta {
	margin-top: auto;
}
.druxer-card--www {
	cursor: pointer;
}
.druxer-card--www:focus-visible {
	outline: 3px solid var(--druxer-accent-ink);
	outline-offset: 2px;
}
.druxer-card__cta {
	margin: 0;
	padding: 10px 14px;
	text-align: center;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.03em;
	color: #fff;
	background: var(--druxer-accent-ink);
}

/* ---------- cennik modal ---------- */
.druxer-cennik {
	list-style: none;
	margin: 0 0 16px;
	padding: 0;
}
.druxer-cennik__row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 16px;
	padding: 10px 2px;
	border-bottom: 1px solid var(--druxer-rule);
}
.druxer-cennik__name small {
	display: block;
	font-size: 12px;
	color: var(--druxer-muted);
}
.druxer-cennik__price {
	white-space: nowrap;
	color: var(--druxer-accent-ink);
	font-weight: 800;
}
.druxer-cennik__note {
	font-size: 12px;
	color: var(--druxer-muted);
}
.druxer-cennik__cta-wrap {
	text-align: center;
	margin: 16px 0 4px;
}

/* ---------- trust strip ---------- */
.druxer-trust {
	background: var(--druxer-trust-bg);
	color: #fff;
	border-radius: 10px;
	padding: 18px 24px;
	margin: 0 0 14px;
	display: grid;
	gap: 12px;
	justify-items: center;
}
.druxer-trust__title {
	margin: 0;
	font-weight: 800;
	font-size: 16px;
	letter-spacing: 0.02em;
}
.druxer-trust__logos {
	width: 100%;
	max-width: 1080px;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 18px 32px;
}
.druxer-trust__logos img {
	height: 48px;
	width: auto;
}

/* ---------- footer ---------- */
.druxer-footer {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px 16px;
	padding: 14px 4px 18px;
	font-size: 12px;
	color: var(--druxer-muted);
}
.druxer-footer__copy { margin: 0; }
.druxer-footer__links { margin: 0; display: flex; gap: 8px; align-items: center; }
.druxer-footer__links a {
	color: var(--druxer-muted);
	text-decoration: none;
	font-weight: 600;
}
.druxer-footer__links a:hover { color: var(--druxer-accent-ink); text-decoration: underline; }

/* ---------- generic modal (Polityka, Regulamin) ---------- */
.druxer-modal[hidden] { display: none; }
.druxer-modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: grid;
	place-items: center;
	padding: 20px;
}
.druxer-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(20, 14, 10, 0.55);
	backdrop-filter: blur(2px);
}
.druxer-modal__panel {
	position: relative;
	width: min(720px, 100%);
	max-height: calc(100vh - 40px);
	background: #fff;
	border-radius: 10px;
	box-shadow: 0 20px 60px rgba(0,0,0,.35);
	display: flex;
	flex-direction: column;
	animation: druxer-modal-pop .18s ease-out;
}
@keyframes druxer-modal-pop {
	from { opacity: 0; transform: translateY(8px) scale(.98); }
	to   { opacity: 1; transform: none; }
}
.druxer-modal__close {
	position: absolute;
	top: 8px; right: 12px;
	background: transparent;
	border: 0;
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
	color: #555;
	z-index: 1;
}
.druxer-modal__close:hover { color: #000; }
.druxer-modal__title {
	margin: 0;
	padding: 22px 56px 12px 28px;
	font-weight: 900;
	font-size: 22px;
	border-bottom: 1px solid var(--druxer-rule);
}
.druxer-modal__content {
	overflow-y: auto;
	padding: 18px 28px 24px;
	font-size: 14px;
	line-height: 1.55;
	color: #2a2a2a;
}
.druxer-modal__content h3 {
	margin: 18px 0 6px;
	font-size: 15px;
	font-weight: 800;
}
.druxer-modal__content p { margin: 0 0 10px; }
.druxer-modal__content a { color: var(--druxer-accent-ink); }
.druxer-modal__placeholder {
	margin-top: 18px;
	padding-top: 12px;
	border-top: 1px dashed var(--druxer-rule);
	color: var(--druxer-muted);
	font-size: 12.5px;
}

/* ---------- kontakt modal (existing) ---------- */
.druxer-kontakt[hidden] { display: none; }
.druxer-kontakt {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: grid;
	place-items: center;
	padding: 20px;
}
.druxer-kontakt__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(20, 14, 10, 0.55);
	backdrop-filter: blur(2px);
}
.druxer-kontakt__panel {
	position: relative;
	width: min(560px, 100%);
	max-height: calc(100vh - 40px);
	overflow-y: auto;
	background: #fff;
	border-radius: 10px;
	box-shadow: 0 20px 60px rgba(0,0,0,.35);
	padding: 28px 28px 24px;
	animation: druxer-modal-pop .18s ease-out;
}
.druxer-kontakt__close {
	position: absolute;
	top: 8px; right: 12px;
	background: transparent;
	border: 0;
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
	color: #555;
}
.druxer-kontakt__close:hover { color: #000; }
.druxer-kontakt__title {
	margin: 0 0 4px;
	font-weight: 900;
	font-size: 22px;
}
.druxer-kontakt__lead {
	margin: 0 0 18px;
	font-size: 14px;
	color: #555;
}
.druxer-kontakt__form { display: grid; gap: 12px; }
.druxer-kontakt__row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.druxer-kontakt__field { display: grid; gap: 4px; font-size: 13px; font-weight: 700; }
.druxer-kontakt__field input,
.druxer-kontakt__field select,
.druxer-kontakt__field textarea {
	font: inherit;
	font-weight: 500;
	padding: 9px 11px;
	border: 1px solid #767676; /* 4.5:1 field boundary (WCAG 1.4.11) */
	border-radius: 6px;
	background: #fff;
	color: var(--druxer-text);
}
.druxer-kontakt__field textarea { resize: vertical; min-height: 96px; }
.druxer-kontakt__field input:focus,
.druxer-kontakt__field select:focus,
.druxer-kontakt__field textarea:focus {
	outline: 2px solid var(--druxer-accent-ink);
	outline-offset: 1px;
	border-color: var(--druxer-accent-ink);
}
.druxer-kontakt__field--invalid input,
.druxer-kontakt__field--invalid select,
.druxer-kontakt__field--invalid textarea { border-color: #c0392b; }
.druxer-kontakt__field--hp {
	position: absolute;
	left: -9999px;
	width: 1px; height: 1px;
	overflow: hidden;
}
.druxer-kontakt__consent {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 10px;
	align-items: start;
	font-size: 11px;
	color: #555;
	line-height: 1.4;
}
.druxer-kontakt__consent input { margin-top: 3px; }
.druxer-kontakt__consent.is-invalid { color: #c0392b; }
.druxer-kontakt__consent a { color: var(--druxer-accent-ink); }
.druxer-kontakt__actions { display: flex; justify-content: flex-end; }
.druxer-kontakt__submit {
	background: var(--druxer-accent-ink);
	color: #fff;
	border: 0;
	padding: 11px 22px;
	font: inherit;
	font-weight: 900;
	letter-spacing: 0.02em;
	border-radius: 6px;
	cursor: pointer;
	transition: filter .15s, transform .15s;
}
.druxer-kontakt__submit:hover { filter: brightness(1.08); transform: translateY(-1px); }
.druxer-kontakt__submit[disabled] { opacity: .6; cursor: progress; transform: none; }
.druxer-kontakt__status {
	margin: 4px 0 0;
	font-size: 13px;
	min-height: 1.2em;
}
.druxer-kontakt__status.is-error   { color: #c0392b; }
.druxer-kontakt__status.is-success { color: #1f8a4d; }

/* ---------- responsive ---------- */
@media (max-width: 980px) {
	.druxer-cards { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 760px) {
	.druxer-page { padding: 14px 14px 0; }
	.druxer-header__bar {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
	}
	.druxer-header__right {
		width: 100%;
		justify-content: space-between;
		flex-wrap: wrap;
		gap: 12px;
	}
	.druxer-header__phone {
		order: -1;
		width: 100%;
		justify-content: center;
		font-size: 28px;
	}
	.druxer-nav { padding: 8px 0; margin-bottom: 16px; }
	.druxer-nav__list { gap: 6px 10px; }
	.druxer-cards { grid-template-columns: 1fr; }
	.druxer-trust { padding: 16px; }
	.druxer-trust__logos { gap: 12px 20px; }
	.druxer-trust__logos img { height: 34px; }
	.druxer-footer {
		flex-direction: column;
		text-align: center;
	}
}
@media (max-width: 520px) {
	.druxer-kontakt__panel { padding: 22px 18px 18px; }
	.druxer-kontakt__row { grid-template-columns: 1fr; }
	.druxer-modal__title { padding: 18px 48px 10px 18px; }
	.druxer-modal__content { padding: 14px 18px 18px; }
}

/* ---------- accessibility (WCAG 2.1 AA, 2026-10) ---------- */
.druxer-sr-only {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}
.druxer-skip-link {
	position: absolute;
	left: 12px; top: -100px;
	z-index: 10000;
	padding: 10px 16px;
	background: var(--druxer-text);
	color: #fff !important;
	font-weight: 700;
	text-decoration: none;
}
.druxer-skip-link:focus { top: 12px; }
.druxer-page :focus-visible,
.druxer-modal :focus-visible,
.druxer-kontakt :focus-visible,
.druxer-skip-link:focus-visible {
	outline: 3px solid var(--druxer-focus) !important;
	outline-offset: 2px;
}
.druxer-trust :focus-visible { outline-color: #fff !important; }
#tresc:focus { outline: none; }
.druxer-modal__content a,
.druxer-kontakt__consent a { text-decoration: underline; }
@media (prefers-reduced-motion: reduce) {
	.druxer-page *, .druxer-modal *, .druxer-kontakt * {
		animation: none !important;
		transition: none !important;
	}
	html { scroll-behavior: auto !important; }
}
/* Astra pages (deklaracja dostępności, default posts): links in text distinguishable without colour (WCAG 1.4.1) */
body:not(.druxer-landing-page) .entry-content a,
body:not(.druxer-landing-page) .comment-content a,
body:not(.druxer-landing-page) .site-footer a { text-decoration: underline; }
body:not(.druxer-landing-page) :focus-visible { outline: 3px solid #1a1a1a !important; outline-offset: 2px; }
