/* ==========================================================================
   Astra Salon – dopasowanie do Elementora
   Ładowany tylko gdy Elementor jest aktywny, po jego stylach.
   Zasada: Elementor dokłada własne marginesy, paddingi, gapy i style
   typografii. Tu je wyrównujemy do klas as-* (specyficzność: .elementor …).
   Korzysta ze zmiennych i animacji z main.css.
   ========================================================================== */

/* ---------- Kontenery: reset domyślnych odstępów Elementora ---------- */

.elementor .e-con.as-section,
.elementor .e-con.as-inner,
.elementor .e-con[class*="as-"] {
	--gap: 0px;
	--row-gap: 0px;
	--column-gap: 0px;
	gap: 0;
}

.elementor .e-con.as-section {
	--padding-top: var(--as-section);
	--padding-bottom: var(--as-section);
	--padding-left: var(--as-gutter);
	--padding-right: var(--as-gutter);
	padding: var(--as-section) var(--as-gutter);
}

.elementor .e-con.as-hero { padding-top: clamp(3rem, 7vw, 6rem); }

.elementor .e-con.as-inner {
	--padding-top: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	--padding-right: 0px;
	padding: 0;
	width: 100%;
	max-width: var(--as-max);
	margin-inline: auto;
}

.elementor .e-con.as-section--surface { background: var(--as-surface); }
.elementor .e-con.as-section--ink { background: var(--as-ink); color: var(--as-paper); }

.elementor .as-section .elementor-widget { margin: 0; }

/* ---------- Siatki (Elementor domyślnie robi flex) ---------- */

.elementor .e-con.as-hero__grid {
	--display: grid;
	display: grid;
	grid-template-columns: 1.15fr 0.85fr;
	column-gap: var(--as-gutter);
	align-items: end;
}

.elementor .e-con.as-hero__text { align-items: flex-start; }

.elementor .e-con.as-head {
	--display: grid;
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: var(--as-gutter);
	align-items: end;
	margin-bottom: clamp(2.5rem, 5vw, 4rem);
}

.elementor .e-con.as-head > .elementor-widget-text-editor { max-width: 32rem; color: var(--as-muted); }

.elementor .e-con.as-stephead { margin-bottom: clamp(2.5rem, 5vw, 4rem); }

.elementor .e-con.as-index {
	border-top: 1px solid var(--as-line);
}

.elementor .e-con.as-index__row {
	--display: grid;
	display: grid;
	grid-template-columns: 4.5rem minmax(0, 1fr) minmax(0, 1.4fr);
	column-gap: 1.5rem;
	align-items: baseline;
	padding: 1.75rem 0;
	border-bottom: 1px solid var(--as-line);
}

.elementor .e-con.as-methods {
	--display: grid;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	border-top: 1px solid var(--as-line);
	border-left: 1px solid var(--as-line);
}

.elementor .e-con.as-method {
	padding: clamp(1.5rem, 3vw, 2.5rem);
	border-right: 1px solid var(--as-line);
	border-bottom: 1px solid var(--as-line);
}

.elementor .e-con.as-steps {
	--display: grid;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	column-gap: var(--as-gutter);
}

.elementor .e-con.as-step {
	border-top: 1px solid #4a423b;
	padding-top: 1.25rem;
}

.elementor .e-con.as-contact {
	--display: grid;
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	column-gap: var(--as-gutter);
	align-items: start;
}

.elementor .e-con.as-facts { margin: 2rem 0; border-bottom: 1px solid var(--as-line); }

.elementor .e-con.as-map {
	min-height: 22rem;
	background: var(--as-surface);
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 2rem;
	color: var(--as-muted);
}

.elementor .e-con.as-btnrow {
	flex-direction: row;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 2.25rem;
}

.elementor .e-con.as-cta .as-inner { max-width: 44rem; align-items: center; text-align: center; }
.elementor .e-con.as-cta .as-btnrow { justify-content: center; }

/* ---------- Typografia widgetów ---------- */

.elementor .elementor-widget[class*="as-"] .elementor-heading-title {
	font-family: inherit;
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
	letter-spacing: inherit;
	color: inherit;
	margin: 0;
}

.elementor .elementor-widget.as-display,
.elementor .elementor-widget.as-title,
.elementor .elementor-widget.as-h3 {
	font-family: var(--as-serif);
	font-weight: 400;
	color: var(--as-ink);
}

.elementor .elementor-widget.as-display { font-size: clamp(2.6rem, 6.2vw, 5.25rem); line-height: 1.02; letter-spacing: -0.025em; }
.elementor .elementor-widget.as-title { font-size: clamp(1.9rem, 3.4vw, 2.75rem); line-height: 1.1; letter-spacing: -0.015em; margin-bottom: 1.25rem; }
.elementor .elementor-widget.as-h3 { line-height: 1.15; letter-spacing: -0.01em; }

.elementor .as-index__row .elementor-widget.as-h3 { font-size: clamp(1.4rem, 2.2vw, 1.875rem); }
.elementor .as-method .elementor-widget.as-h3 { font-size: 1.75rem; margin-bottom: 0.75rem; }
.elementor .as-step .elementor-widget.as-h3 { font-size: 1.5rem; margin: 0.75rem 0; }

.elementor .as-section--ink .elementor-widget.as-display,
.elementor .as-section--ink .elementor-widget.as-title,
.elementor .as-section--ink .elementor-widget.as-h3 { color: var(--as-paper); }

/* Teksty: dziedziczą z sekcji, wyjątki niżej */
.elementor .as-section .elementor-widget-text-editor {
	color: inherit;
	font-family: var(--as-sans);
	font-size: inherit;
	line-height: inherit;
}

.elementor .as-section .elementor-widget-text-editor p { margin: 0; }
.elementor .as-method .elementor-widget-text-editor + .elementor-widget-text-editor { margin-top: 0.75rem; }

.elementor .elementor-widget.as-eyebrow {
	margin-bottom: 1.25rem;
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--as-accent);
}

.elementor .as-section--ink .elementor-widget.as-eyebrow { color: #c9b79f; }

.elementor .elementor-widget.as-lead {
	max-width: 36rem;
	margin-top: 1.75rem;
	font-size: 1.1875rem;
	color: var(--as-muted);
}

.elementor .as-section--ink .elementor-widget.as-lead { color: #cfc4b5; }
.elementor .as-cta .elementor-widget.as-lead { margin-inline: auto; }

.elementor .elementor-widget.as-num {
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	color: var(--as-accent);
	font-variant-numeric: tabular-nums;
}

.elementor .as-section--ink .elementor-widget.as-num { color: #c9b79f; }
.elementor .as-index__row .elementor-widget.as-row-text { color: var(--as-muted); }
.elementor .as-step .elementor-widget.as-row-text { color: #cfc4b5; font-size: 0.9688rem; }
.elementor .as-method .elementor-widget.as-note { font-size: 0.9375rem; color: var(--as-muted); }

.elementor .elementor-widget.as-fact .elementor-widget-container {
	display: grid;
	grid-template-columns: 7rem minmax(0, 1fr);
	gap: 1rem;
	padding: 0.85rem 0;
	border-top: 1px solid var(--as-line);
}

.elementor .elementor-widget.as-fact strong {
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--as-muted);
	padding-top: 0.2rem;
}

/* ---------- Przyciski ---------- */

.elementor .elementor-widget.as-btn .elementor-button {
	background-color: var(--as-ink);
	color: var(--as-paper);
	border: 1px solid var(--as-ink);
	border-radius: 0;
	padding: 0.95rem 1.75rem;
	font-family: var(--as-sans);
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	line-height: 1.2;
	text-transform: uppercase;
	box-shadow: none;
	background-image: linear-gradient(var(--as-accent), var(--as-accent));
	background-repeat: no-repeat;
	background-size: 0% 100%;
	background-position: left;
	transition: background-size 0.45s cubic-bezier(0.22, 1, 0.36, 1), color 0.3s ease, border-color 0.3s ease;
}

.elementor .elementor-widget.as-btn .elementor-button:hover {
	background-size: 100% 100%;
	border-color: var(--as-accent);
	color: var(--as-paper);
}

.elementor .elementor-widget.as-btn--outline .elementor-button {
	background-color: transparent;
	color: var(--as-ink);
	background-image: linear-gradient(var(--as-ink), var(--as-ink));
}

.elementor .elementor-widget.as-btn--outline .elementor-button:hover {
	border-color: var(--as-ink);
	color: var(--as-paper);
}

.elementor .as-section--ink .elementor-widget.as-btn .elementor-button {
	background-color: var(--as-paper);
	border-color: var(--as-paper);
	color: var(--as-ink);
	background-image: linear-gradient(#e7d9c2, #e7d9c2);
}

.elementor .as-section--ink .elementor-widget.as-btn .elementor-button:hover { border-color: #e7d9c2; color: var(--as-ink); }

.elementor .as-section--ink .elementor-widget.as-btn--outline .elementor-button {
	background-color: transparent;
	color: var(--as-paper);
	background-image: linear-gradient(var(--as-paper), var(--as-paper));
}

.elementor .as-section--ink .elementor-widget.as-btn--outline .elementor-button:hover { border-color: var(--as-paper); color: var(--as-ink); }

/* ---------- Zdjęcie w hero ---------- */

.elementor .as-hero__grid .elementor-widget-image { overflow: hidden; }
.elementor .as-hero__grid .elementor-widget-image img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: 0;
}

/* ---------- Accordion (cennik, FAQ) ---------- */

.elementor .as-price,
.elementor .as-faq { max-width: 50rem; border-top: 1px solid var(--as-ink); }

.elementor .as-price .elementor-accordion .elementor-accordion-item,
.elementor .as-faq .elementor-accordion .elementor-accordion-item {
	border: 0;
	border-bottom: 1px solid var(--as-line);
}

.elementor .as-price .elementor-accordion .elementor-tab-title,
.elementor .as-faq .elementor-accordion .elementor-tab-title {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	padding: 1.5rem 0;
	border: 0;
	background: transparent;
	cursor: pointer;
}

.elementor .as-faq .elementor-accordion .elementor-tab-title { padding: 1.35rem 0; }

.elementor .as-price .elementor-accordion .elementor-accordion-icon,
.elementor .as-faq .elementor-accordion .elementor-accordion-icon { display: none; }

.elementor .as-price .elementor-accordion .elementor-tab-title::after,
.elementor .as-faq .elementor-accordion .elementor-tab-title::after {
	content: "+";
	flex: none;
	font-family: var(--as-sans);
	font-size: 1.5rem;
	font-weight: 300;
	line-height: 1;
	color: var(--as-accent);
}

.elementor .as-price .elementor-accordion .elementor-tab-title.elementor-active::after,
.elementor .as-faq .elementor-accordion .elementor-tab-title.elementor-active::after { content: "–"; }

.elementor .as-price .elementor-accordion .elementor-accordion-title,
.elementor .as-faq .elementor-accordion .elementor-accordion-title {
	font-family: var(--as-serif);
	font-size: 1.5rem;
	font-weight: 400;
	line-height: 1.2;
	color: var(--as-ink);
}

.elementor .as-faq .elementor-accordion .elementor-accordion-title { font-size: 1.3125rem; line-height: 1.3; }

.elementor .as-price .elementor-accordion .elementor-tab-title:hover .elementor-accordion-title,
.elementor .as-faq .elementor-accordion .elementor-tab-title:hover .elementor-accordion-title,
.elementor .as-price .elementor-accordion .elementor-tab-title.elementor-active .elementor-accordion-title { color: var(--as-accent); }

.elementor .as-price .elementor-accordion .elementor-tab-content,
.elementor .as-faq .elementor-accordion .elementor-tab-content {
	padding: 0 0 1.25rem;
	border: 0;
	font-family: var(--as-sans);
	font-size: 1.0625rem;
	line-height: 1.65;
	color: var(--as-muted);
}

.elementor .as-faq .elementor-accordion .elementor-tab-content p { margin: 0; max-width: 40rem; }

.elementor .as-price .as-price-row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1.5rem;
	padding: 0.85rem 0;
	border-top: 1px solid var(--as-line);
	color: var(--as-ink);
}

.elementor .as-price .as-price-row__price { flex: none; white-space: nowrap; font-variant-numeric: tabular-nums; }
.elementor .as-price .as-price-note { padding: 0 0 0.85rem; color: var(--as-muted); }

/* ---------- Mobile ---------- */

@media (max-width: 921px) {
	.elementor .e-con.as-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: var(--as-gutter); }
}

@media (max-width: 781px) {
	.elementor .e-con.as-head,
	.elementor .e-con.as-hero__grid,
	.elementor .e-con.as-contact { grid-template-columns: 1fr; row-gap: var(--as-gutter); }

	.elementor .e-con.as-index__row { grid-template-columns: 3rem minmax(0, 1fr); }
	.elementor .e-con.as-index__row > .elementor-widget:last-child { grid-column: 2; }

	.elementor .e-con.as-methods,
	.elementor .e-con.as-steps { grid-template-columns: 1fr; }

	.elementor .elementor-widget.as-fact .elementor-widget-container { grid-template-columns: 1fr; gap: 0.15rem; }
	.elementor .as-price .as-price-row { align-items: flex-start; }
}
