/* ==========================================================================
   Surf Stories — custom theme styles
   Warm sunset / boho-editorial. Colour + type are also set as Elementor
   Globals; these rules add the details Elementor can't express per-widget.
   ========================================================================== */

:root {
	--ss-terracotta: #d9603f;
	--ss-terracotta-dk: #bf4c2e;
	--ss-ocean: #16363b;
	--ss-ocean-dk: #0f262a;
	--ss-ochre: #e9a23b;
	--ss-sand: #f4ece2;
	--ss-cream: #fbf6ef;
	--ss-ink: #2c2a26;
	--ss-muted: #8a8275;
}

/* ---- Base smoothing ---- */
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }

/* ---- Default heading colour = ocean ----
   The Elementor heading widget binds its default colour to the Primary global
   (terracotta). This rule (specificity 0,1,1) beats that generic default but
   loses to any per-widget explicit colour (0,2,0), so hero/CTA/eyebrow headings
   keep their intended colours. */
body .elementor-heading-title { color: var(--ss-ocean); }

/* ---- Eyebrow / kicker label (uppercase, spaced) ---- */
body .ss-eyebrow .elementor-heading-title { font-family: "Jost", sans-serif; }
.ss-eyebrow,
.ss-eyebrow * {
	font-family: "Jost", sans-serif;
	text-transform: uppercase;
	letter-spacing: .28em;
	font-weight: 600;
	font-size: 13px;
	line-height: 1.4;
}

/* ---- Buttons: organic pill, warm hover lift ---- */
.elementor-button {
	border-radius: 999px;
	letter-spacing: .06em;
	text-transform: uppercase;
	font-weight: 600;
	transition: transform .25s ease, box-shadow .25s ease, background-color .25s ease, color .25s ease;
}
.elementor-button:hover {
	transform: translateY(-3px);
	box-shadow: 0 14px 30px -12px rgba(22, 54, 59, .45);
}

/* ---- Destination / trip cards ---- */
.ss-card {
	border-radius: 18px;
	overflow: hidden;
	transition: transform .4s ease, box-shadow .4s ease;
	box-shadow: 0 18px 40px -24px rgba(22, 54, 59, .55);
}
.ss-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 30px 60px -28px rgba(22, 54, 59, .6);
}

/* Image zoom on hover for any element flagged .ss-zoom */
.ss-zoom img,
.ss-zoom .elementor-widget-container img,
.ss-zoom-carusel img {
	transition: transform .8s cubic-bezier(.2, .7, .2, 1);
	will-change: transform;
}
.ss-zoom:hover img, .ss-zoom-carusel img:hover{ transform: scale(1.07); }

/* ---- Urgency badges (last minute / ostatnie miejsca / bestseller) ---- */
.ss-badge .elementor-widget-container,
.ss-badge {
	display: inline-block;
	padding: 7px 16px;
	border-radius: 999px;
	text-transform: uppercase;
	letter-spacing: .14em;
	font-size: 12px;
	font-weight: 700;
	color: #fff;
	background: var(--ss-terracotta);
	box-shadow: 0 6px 18px -8px rgba(217, 96, 63, .8);
}
.ss-badge--gold .elementor-widget-container,
.ss-badge--gold { background: var(--ss-ochre); color: var(--ss-ocean); }
.ss-badge--ocean .elementor-widget-container,
.ss-badge--ocean { background: var(--ss-ocean); }

/* ---- Soft rounded media ---- */
.ss-round img { border-radius: 18px; }
.ss-round-lg img { border-radius: 28px; }

/* ---- Section dividers: subtle wave feel via top radius ---- */
.ss-curve-top { border-top-left-radius: 40px; border-top-right-radius: 40px; }

/* ---- Header: solid cream bar, subtle shadow that deepens on scroll ---- */
.ss-header {
	transition: box-shadow .35s ease, padding .35s ease;
	box-shadow: 0 2px 16px -12px rgba(22, 54, 59, .35);
	border-bottom: 1px solid rgba(22, 54, 59, .07);
}
.ss-header.elementor-sticky--effects {
	box-shadow: 0 10px 30px -18px rgba(22, 54, 59, .4);
}

/* Keep the desktop menu on one line and let it size to its content
   (otherwise the CTA button overlaps the last items) */
.ss-nav .elementor-nav-menu { flex-wrap: nowrap; }
.ss-nav .elementor-nav-menu > li { white-space: nowrap; }
.ss-header .elementor-widget-nav-menu,
.ss-header .elementor-widget-button { flex: 0 0 auto; width: auto; }
.ss-header .ss-nav nav,
.ss-header .ss-nav .elementor-nav-menu--main { width: auto; }

/* Nav underline animation */
.ss-nav .elementor-item::after {
	content: "";
	display: block;
	height: 2px;
	width: 0;
	background: var(--ss-terracotta);
	transition: width .3s ease;
	margin-top: 25px;
}
.ss-nav .elementor-item:hover::after,
.ss-nav .elementor-item.elementor-item-active::after { width: 100%; }

/* ---- Quote marks for testimonials ---- */
.ss-quote .elementor-widget-container::before {
	content: "\201C";
	font-family: Georgia, serif;
	font-size: 90px;
	line-height: .6;
	color: var(--ss-ochre);
	display: block;
	margin-bottom: -10px;
}

/* ---- Footer text + links ---- */
.ss-footer .elementor-widget-text-editor,
.ss-footer .elementor-widget-text-editor p { color: #E9E2D8; }
.ss-footer a { color: #E9E2D8; transition: color .25s ease, opacity .25s ease; }
.ss-footer a:hover { color: var(--ss-ochre); }

/* ============================================================
   FORMULARZE (Elementor Pro Forms)
   ============================================================ */

/* --- Etykiety --- */
.elementor-form .elementor-field-group { margin-bottom: 6px; }
.elementor-field-label {
	font-family: "Jost", sans-serif;
	font-weight: 600;
	color: var(--ss-ocean);
	font-size: 14px;
	letter-spacing: .01em;
	margin-bottom: 8px !important;
	display: block;
}
.elementor-mark-required .elementor-mark-required,
.elementor-field-required .elementor-mark-required { color: var(--ss-terracotta); }

/* --- Pola tekstowe / select / textarea --- */
.elementor-field-group .elementor-field-textual,
.elementor-field-group textarea.elementor-field,
.elementor-field-group select.elementor-field {
	width: 100%;
	background: #fff;
	border: 1.5px solid rgba(22, 54, 59, .14) !important;
	border-radius: 12px !important;
	padding: 14px 16px !important;
	min-height: 52px;
	font-family: "Jost", sans-serif;
	font-size: 16px;
	color: var(--ss-ink);
	box-shadow: none !important;
	transition: border-color .2s ease, box-shadow .2s ease;
}
.elementor-field-group textarea.elementor-field { min-height: 132px; line-height: 1.6; }
.elementor-field-group .elementor-field::placeholder { color: #9a9486; opacity: 1; }
.elementor-field-group .elementor-field-textual:focus,
.elementor-field-group textarea.elementor-field:focus,
.elementor-field-group select.elementor-field:focus {
	outline: none;
	border-color: var(--ss-terracotta) !important;
	box-shadow: 0 0 0 4px rgba(217, 96, 63, .14) !important;
}
/* Select — własna strzałka */
.elementor-field-group select.elementor-field {
	-webkit-appearance: none; -moz-appearance: none; appearance: none;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2316363B' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
	background-repeat: no-repeat;
	background-position: right 16px center;
	padding-right: 44px !important;
	cursor: pointer;
}

/* --- Radio / checkbox (akcent) --- */
.elementor-field-subgroup .elementor-field-option { display: inline-flex; align-items: center; }
.elementor-field-subgroup label { font-family: "Jost", sans-serif; color: var(--ss-ink); margin: 0; }
.elementor-field-subgroup input[type="radio"],
.elementor-field-subgroup input[type="checkbox"],
.elementor-field-type-acceptance input[type="checkbox"] {
	accent-color: var(--ss-terracotta);
	width: 18px; height: 18px;
	margin: 0 9px 0 0;
	flex: 0 0 auto;
	cursor: pointer;
}

/* Radio inline (np. "Czy posiadasz doświadczenie?") */
.elementor-field-type-radio .elementor-field-subgroup { display: flex; gap: 14px 26px; flex-wrap: wrap; }
.elementor-field-type-radio .elementor-field-option { flex: 0 0 auto !important; width: auto !important; }

/* Checkbox-y terminów → siatka "chipów" */
.elementor-field-type-checkbox .elementor-field-subgroup {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px;
}
.elementor-field-type-checkbox .elementor-field-option {
	gap: 10px;
	background: #fff;
	border: 1.5px solid rgba(22, 54, 59, .12);
	border-radius: 12px;
	padding: 13px 15px;
	cursor: pointer;
	font-size: 14px;
	line-height: 1.3;
	transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.elementor-field-type-checkbox .elementor-field-option:hover { border-color: rgba(217, 96, 63, .5); }
.elementor-field-type-checkbox .elementor-field-option.is-checked {
	border-color: var(--ss-terracotta) !important;
	background: rgba(217, 96, 63, .07) !important;
	box-shadow: 0 8px 18px -12px rgba(217, 96, 63, .7);
}
.elementor-field-type-checkbox .elementor-field-option:has(input:checked) {
	border-color: var(--ss-terracotta);
	background: rgba(217, 96, 63, .07);
	box-shadow: 0 8px 18px -12px rgba(217, 96, 63, .7);
}
.elementor-field-type-checkbox .elementor-field-option label { cursor: pointer; }
@media (max-width: 680px) { .elementor-field-type-checkbox .elementor-field-subgroup { grid-template-columns: 1fr; } }

/* Zgoda RODO — czytelny consent */
.elementor-field-type-acceptance .elementor-field-subgroup { align-items: flex-start; }
.elementor-field-type-acceptance .elementor-field-option { align-items: flex-start; }
.elementor-field-type-acceptance label { font-size: 13px; color: var(--ss-muted); line-height: 1.55; }

/* --- Przycisk submit --- */
.elementor-form .elementor-button { justify-content: center; }
.elementor-form button.elementor-button { padding-top: 16px; padding-bottom: 16px; }

/* --- Komunikaty / walidacja --- */
.elementor-message { border-radius: 10px; padding: 12px 16px; font-family: "Jost", sans-serif; margin-top: 8px; }
.elementor-message.elementor-message-success { background: #1f6b3b; color:#fff;}
.elementor-field-group.elementor-error .elementor-field { border-color: #d9534f !important; }
.elementor-help-inline { color: #d9534f; font-size: 13px; }

/* ============================================================
   Newsletter — wariant kompaktowy (etykieta ukryta, inline)
   ============================================================ */
.ss-footer .elementor-form .elementor-field-label,
.ss-onaccent .elementor-form .elementor-field-label { display: none; }
.ss-onaccent .elementor-form { align-items: stretch; gap: 10px; }
.ss-onaccent .elementor-form .elementor-field-group { margin-bottom: 0; }

/* Stopka — pola na ciemnym tle */
.ss-footer .elementor-field-group .elementor-field-textual {
	background: rgba(255, 255, 255, .08) !important;
	border-color: rgba(255, 255, 255, .22) !important;
	color: #fff;
}
.ss-footer .elementor-field-group .elementor-field-textual::placeholder { color: rgba(255, 255, 255, .6); }
.ss-footer .elementor-field-group .elementor-field-textual:focus {
	border-color: var(--ss-ochre) !important;
	box-shadow: 0 0 0 3px rgba(233, 162, 59, .2) !important;
}

/* Sekcja na terakocie (strona główna) — pola białe */
.ss-onaccent .elementor-field-group .elementor-field-textual { background: #fff !important; border-color: rgba(255,255,255,.4) !important; }
.ss-onaccent .elementor-field-group .elementor-field-textual:focus { border-color: #16363B !important; box-shadow: 0 0 0 3px rgba(22,54,59,.18) !important; }

/* Newsletter — checkboxy zgód na terakocie: jasny, czytelny tekst */
.ss-onaccent .elementor-field-type-acceptance { margin-top: 2px; }
.ss-onaccent .elementor-field-type-acceptance .elementor-field-option,
.ss-onaccent .elementor-field-type-acceptance label {
	color: #FBF6EF !important; font-size: 12.5px; line-height: 1.45; text-align: left;
}
.ss-onaccent .elementor-field-type-acceptance a { color: #fff !important; text-decoration: underline; }
.ss-onaccent .elementor-field-type-acceptance input[type="checkbox"] { accent-color: #16363B; margin-top: 2px; }

/* ---- Terminy (repeater ACF) ---- */
.ss-terminy {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 22px;
}
.ss-termin {
	position: relative;
	background: #fff;
	border: 1px solid rgba(22, 54, 59, .08);
	border-radius: 16px;
	padding: 26px 24px;
	box-shadow: 0 18px 40px -28px rgba(22, 54, 59, .5);
}
.ss-termin__badge {
	display: inline-block;
	text-align: center;
	background: var(--ss-ochre);
	color: var(--ss-ocean);
	font-family: "Jost", sans-serif;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	padding: 5px 12px;
	border-radius: 999px;
	margin-bottom: 12px;
}
.ss-termin__date {
	font-family: "Fraunces", serif;
	font-size: 24px;
	color: var(--ss-ocean);
	line-height: 1.15;
}
.ss-termin__variant {
	color: var(--ss-terracotta);
	font-weight: 600;
	font-size: 14px;
	margin-top: 4px;
}
.ss-termin__loc {
	color: var(--ss-muted);
	font-size: 14px;
	margin-top: 6px;
	text-transform: uppercase;
	letter-spacing: .08em;
}
.ss-termin__price {
	margin-top: 10px;
	font-weight: 700;
	font-size: 18px;
	color: var(--ss-terracotta);
}

/* ---- Listy "cena zawiera" (wysiwyg ACF) ---- */
.ss-acf-list ul { list-style: none; margin: 0; padding: 0; }
.ss-acf-list ul li {
	position: relative;
	padding-left: 26px;
	margin-bottom: 10px;
	line-height: 1.6;
}
.ss-acf-list ul li::before {
	content: "\f111";
	font-family: "Font Awesome 5 Free", "Font Awesome 6 Free";
	font-weight: 900;
	font-size: 7px;
	color: var(--ss-terracotta);
	position: absolute;
	left: 4px;
	top: 9px;
}
.ss-acf-list ul ul { margin-top: 8px; padding-left: 14px; }
.ss-acf-list--muted ul li::before { color: var(--ss-muted); }

/* ---- "Dlaczego my?" grid ---- */
.ss-why-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 30px 36px;
}
.ss-why__i {
	display: inline-flex;
	width: 52px; height: 52px;
	align-items: center; justify-content: center;
	border-radius: 50%;
	background: rgba(217, 96, 63, .12);
	color: var(--ss-terracotta);
	font-size: 20px;
	margin-bottom: 12px;
}
.ss-why h4 { margin: 0 0 6px; color: var(--ss-ocean); }
.ss-why p { margin: 0; color: var(--ss-muted); line-height: 1.6; }

/* ACF wysiwyg headings inside text-editor render with kit styles already */
.ss-rte h2 { margin: 0 0 .4em; }

@media (max-width: 880px) { .ss-why-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .ss-why-grid { grid-template-columns: 1fr; } }

/* ---- Galeria ACF ---- */
.ss-acf-gallery {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
}
.ss-acf-gallery__item {
	display: block;
	overflow: hidden;
	border-radius: 16px;
	aspect-ratio: 4 / 3;
}
.ss-acf-gallery__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .7s cubic-bezier(.2,.7,.2,1);
}
.ss-acf-gallery__item:hover img { transform: scale(1.07); }

@media (max-width: 880px) {
	.ss-terminy, .ss-acf-gallery { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
	.ss-terminy, .ss-acf-gallery { grid-template-columns: 1fr; }
}

/* ============ Podstrony destynacji — komponenty UX ============ */

/* Pasek szybkich faktów (nachodzi na hero) */
.ss-facts {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	background: #fff;
	border-radius: 18px;
	box-shadow: 0 26px 60px -34px rgba(22, 54, 59, .55);
	margin-top: -76px;
	position: relative;
	z-index: 3;
}
.ss-fact {
	display: flex; flex-direction: column; align-items: center; text-align: center;
	gap: 7px; padding: 24px 16px;
}
.ss-fact + .ss-fact { border-left: 1px solid rgba(22, 54, 59, .08); }
.ss-fact__i { color: var(--ss-terracotta); font-size: 20px; }
.ss-fact__label { font-family: "Jost", sans-serif; text-transform: uppercase; letter-spacing: .14em; font-size: 11px; color: var(--ss-muted); }
.ss-fact__value { font-family: "Fraunces", serif; font-size: 19px; color: var(--ss-ocean); line-height: 1.2; }
@media (max-width: 760px) {
	.ss-facts { grid-template-columns: repeat(2, 1fr); margin-top: -46px; }
	.ss-fact:nth-child(odd) { border-left: none; }
	.ss-fact:nth-child(n+3) { border-top: 1px solid rgba(22,54,59,.08); }
}

/* Highlights — karty */
.ss-highlights { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.ss-hl { background: #fff; border: 1px solid rgba(22,54,59,.07); border-radius: 18px; padding: 30px 26px; box-shadow: 0 20px 44px -30px rgba(22,54,59,.45); }
.ss-hl__i { display: inline-flex; width: 54px; height: 54px; align-items: center; justify-content: center; border-radius: 14px; background: rgba(217,96,63,.12); color: var(--ss-terracotta); font-size: 22px; margin-bottom: 14px; }
.ss-hl h4 { margin: 0 0 8px; color: var(--ss-ocean); }
.ss-hl p { margin: 0; color: var(--ss-muted); line-height: 1.6; }
@media (max-width: 880px) { .ss-highlights { grid-template-columns: 1fr; } }

/* Plan dnia — timeline */
.ss-timeline { position: relative; margin: 0; padding: 0; list-style: none; }
.ss-timeline::before { content: ""; position: absolute; left: 19px; top: 10px; bottom: 10px; width: 2px; background: linear-gradient(var(--ss-terracotta), var(--ss-ochre)); }
.ss-timeline li { position: relative; padding: 0 0 26px 58px; }
.ss-timeline li:last-child { padding-bottom: 0; }
.ss-timeline li::before { content: ""; position: absolute; left: 12px; top: 2px; width: 16px; height: 16px; border-radius: 50%; background: var(--ss-terracotta); box-shadow: 0 0 0 4px #fff, 0 0 0 6px rgba(217,96,63,.25); }
.ss-tl-time { font-family: "Jost", sans-serif; text-transform: uppercase; letter-spacing: .12em; font-size: 12px; color: var(--ss-terracotta); font-weight: 700; }
.ss-tl-title { font-family: "Fraunces", serif; font-size: 19px; color: var(--ss-ocean); }
.ss-timeline p { margin: 2px 0 0; color: var(--ss-muted); }

/* Checklist "W cenie" */
.ss-checklist ul { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: 34px; }
.ss-checklist ul li { break-inside: avoid; position: relative; padding-left: 30px; margin-bottom: 13px; line-height: 1.55; }
.ss-checklist ul li::before { content: "\f00c"; font-family: "Font Awesome 5 Free", "Font Awesome 6 Free"; font-weight: 900; font-size: 12px; color: var(--ss-terracotta); position: absolute; left: 2px; top: 3px; }
@media (max-width: 680px) { .ss-checklist ul { columns: 1; } }

/* Karta rezerwacji */
.ss-bookcard { background: var(--ss-ocean); color: #F4ECE2; border-radius: 22px; padding: 32px 30px; box-shadow: 0 30px 70px -34px rgba(15,38,42,.7); position: sticky; top: 104px; }
.ss-bc-od { color: #E9A23B; font-family: "Jost", sans-serif; text-transform: uppercase; letter-spacing: .14em; font-size: 12px; font-weight: 700; }
.ss-bc-price { font-family: "Fraunces", serif; font-size: 46px; color: #fff; line-height: 1; margin: 2px 0 4px; }
.ss-bc-len { color: #F4ECE2; opacity: .85; margin-bottom: 6px; }
.ss-bookcard .ss-acf-list ul li { color: #F4ECE2; }
.ss-bookcard .ss-acf-list ul li::before { color: var(--ss-ochre); }
.ss-bookcard p { color: #F4ECE2; }
.ss-bc-note { font-size: 13px; opacity: .7; margin-top: 14px; }

/* Termin — CTA */
.ss-termin { display: flex; flex-direction: column; }
.ss-termin__cta { display: inline-flex; align-items: center; gap: 8px; margin-top: 14px; font-family: "Jost", sans-serif; font-weight: 600; font-size: 14px; text-transform: uppercase; letter-spacing: .05em; color: var(--ss-terracotta); }
.ss-termin__cta i { transition: transform .25s ease; }
.ss-termin__cta:hover i { transform: translateX(4px); }

/* Galeria — pojedyncze zdjęcie (placeholder) */
.ss-acf-gallery--single { grid-template-columns: 1fr; }
.ss-acf-gallery--single .ss-acf-gallery__item { aspect-ratio: 21 / 9; }

/* ============ Galeria (widżet Elementor Pro „Gallery") ============ */
.ss-gallery .e-gallery-item {
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 18px 40px -28px rgba(22, 54, 59, .5);
}
.ss-gallery .e-gallery-image { transition: transform .7s cubic-bezier(.2,.7,.2,1); }
.ss-gallery .e-gallery-item:hover .e-gallery-image { transform: scale(1.07); }
.ss-gallery .elementor-gallery-item__overlay { background-color: rgba(15, 38, 42, .28); }

/* Zakładki filtra (Beach House / Surf House) */
.ss-gallery .elementor-gallery__titles-container {
	display: flex; flex-wrap: wrap; justify-content: center;
	gap: 10px; margin-bottom: 26px;
}
.ss-gallery .elementor-gallery-title {
	font-family: "Jost", sans-serif; font-weight: 600;
	text-transform: uppercase; letter-spacing: .1em; font-size: 13px;
	color: var(--ss-ocean);
	padding: 6px 6px; cursor: pointer;
	transition: color .2s ease;
}
.ss-gallery .elementor-gallery-title:hover,
.ss-gallery .elementor-gallery-title.elementor-item-active {
	color: var(--ss-terracotta);
}

/* ============ Galeria z pola ACF (shortcode [ss_galeria]) — masonry ============ */
.ss-galeria { column-count: 3; column-gap: 14px; }
.ss-galeria__item {
	display: block;
	margin: 0 0 14px;
	break-inside: avoid;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 18px 40px -28px rgba(22, 54, 59, .5);
	cursor: zoom-in;
}
.ss-galeria__item img {
	width: 100%;
	display: block;
	transition: transform .7s cubic-bezier(.2, .7, .2, 1);
}
.ss-galeria__item:hover img { transform: scale(1.06); }
@media (max-width: 880px) { .ss-galeria { column-count: 2; } }
@media (max-width: 560px) { .ss-galeria { column-count: 1; } }

/* Lekki lightbox galerii */
.ss-lb {
	position: fixed; inset: 0; z-index: 99999;
	background: rgba(15, 38, 42, .94);
	display: flex; align-items: center; justify-content: center;
	opacity: 0; visibility: hidden; transition: opacity .25s ease;
}
.ss-lb.is-open { opacity: 1; visibility: visible; }
.ss-lb__img { max-width: 92vw; max-height: 86vh; border-radius: 10px; box-shadow: 0 24px 70px rgba(0,0,0,.55); }
.ss-lb__btn {
	position: absolute; color: #fff; background: rgba(255,255,255,.12);
	border: none; cursor: pointer; border-radius: 50%;
	width: 50px; height: 50px; font-size: 22px; line-height: 1;
	display: flex; align-items: center; justify-content: center;
	transition: background-color .2s ease;
}
.ss-lb__btn:hover { background: var(--ss-terracotta); }
.ss-lb__close { top: 22px; right: 22px; }
.ss-lb__prev { left: 22px; top: 50%; transform: translateY(-50%); }
.ss-lb__next { right: 22px; top: 50%; transform: translateY(-50%); }
.ss-lb__count { position: absolute; bottom: 22px; left: 0; right: 0; text-align: center; color: rgba(255,255,255,.7); font-family: "Jost", sans-serif; font-size: 13px; letter-spacing: .1em; }
@media (max-width: 600px) { .ss-lb__btn { width: 42px; height: 42px; font-size: 18px; } .ss-lb__prev { left: 8px; } .ss-lb__next { right: 8px; } }

/* Zakładki galerii (Beach House / Surf House) */
.ss-galeria-tabs {
	display: flex; justify-content: center; flex-wrap: wrap;
	gap: 10px; margin-bottom: 26px;
}
.ss-gtab {
	font-family: "Jost", sans-serif; font-weight: 600;
	text-transform: uppercase; letter-spacing: .1em; font-size: 13px;
	color: var(--ss-ocean); background: transparent;
	border: 1.5px solid rgba(22, 54, 59, .15); border-radius: 999px;
	padding: 9px 22px; cursor: pointer;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.ss-gtab:hover { color: var(--ss-terracotta); border-color: var(--ss-terracotta); }
.ss-gtab.is-active { background: var(--ss-terracotta); border-color: var(--ss-terracotta); color: #fff; }
.ss-galeria[hidden] { display: none; }

/* ---- Strona prawna (Polityka prywatności) ---- */
.ss-legal h2 { margin: 1.6em 0 .5em; }
.ss-legal p, .ss-legal li { color: #2C2A26; line-height: 1.75; }
.ss-legal ul { margin: 0 0 1.1em 1.2em; }
.ss-legal li { margin-bottom: .4em; }
.ss-legal a { color: var(--ss-terracotta); text-decoration: underline; }

/* ---- Home: micro-copy nad kartami oferty ---- */
.ss-micro, .ss-micro * {
	font-family: "Jost", sans-serif; font-weight: 600; text-transform: uppercase;
	letter-spacing: .14em; font-size: 12px; color: var(--ss-terracotta);
}

/* ---- Home: karty "Dlaczego Surfstories" ---- */
.ss-reason {
	box-shadow: 0 18px 40px -30px rgba(22, 54, 59, .45);
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.ss-reason:hover {
	transform: translateY(-4px);
	box-shadow: 0 26px 50px -28px rgba(22, 54, 59, .55);
	border-color: #e2d4c2;
}
.ss-reason-ic .elementor-icon {
	width: 54px; height: 54px; font-size: 22px;
	border-radius: 14px !important;
}
.ss-reason-h .elementor-heading-title { font-size: 20px; line-height: 1.25; }

/* ---- Home: kroki rezerwacji ---- */
.ss-step { position: relative; }
.ss-step-n .elementor-heading-title {
	font-family: "Fraunces", Georgia, serif; font-weight: 600; font-size: 40px;
	line-height: 1; color: #fff; opacity: .35;
}

/* ---- Home: placeholder wideo Kingi ---- */
.ss-video { overflow: hidden; cursor: pointer; }
.ss-playbtn .elementor-icon {
	width: 84px; height: 84px; font-size: 26px;
	box-shadow: 0 10px 30px -8px rgba(217, 96, 63, .8);
	transition: transform .2s ease;
}
.ss-video:hover .ss-playbtn .elementor-icon { transform: scale(1.08); }
.ss-videocap, .ss-videocap * {
	font-family: "Jost", sans-serif; font-weight: 500; letter-spacing: .01em;
	text-shadow: 0 2px 10px rgba(0, 0, 0, .4);
}

/* ---- Kontakt: lista danych kontaktowych ---- */
.ss-contact-list { list-style: none; margin: 6px 0 0; padding: 0; }
.ss-contact-list li {
	display: flex; align-items: center; gap: 12px;
	margin: 0 0 12px; color: var(--ss-ocean); font-size: 16px;
}
.ss-contact-list li i { color: var(--ss-terracotta); width: 22px; text-align: center; }
.ss-contact-list a { color: var(--ss-ocean); text-decoration: none; }
.ss-contact-list a:hover { color: var(--ss-terracotta); }

/* ---- Numery kroków na jasnym tle (Współpraca) ---- */
.ss-step-n--light .elementor-heading-title { color: var(--ss-terracotta) !important; opacity: .55; }

/* ---- RODO / klauzula pod formularzem ---- */
.ss-rodo { margin-top: 6px; }
.ss-rodo a { color: var(--ss-terracotta); text-decoration: underline; }

/* ---- Blog: karty wpisów ---- */
.ss-post-card {
	overflow: hidden; border: 1px solid #ECE2D4;
	box-shadow: 0 18px 40px -30px rgba(22, 54, 59, .45);
	transition: transform .2s ease, box-shadow .2s ease;
}
.ss-post-card:hover { transform: translateY(-4px); box-shadow: 0 26px 50px -28px rgba(22, 54, 59, .55); }

/* ---- Responsive type tightening ---- */
@media (max-width: 767px) {
	.ss-eyebrow, .ss-eyebrow * { letter-spacing: .2em; font-size: 12px; }
	.ss-step-n .elementor-heading-title { font-size: 32px; }
}
