/* ==========================================================================
   DUDYACHTING – komponenty. Kolory, fonty i przyciski pochodzą z Blocksy
   (Dostosuj → Kolory / Typografia / Przyciski). Tu tylko mapowanie.
   ========================================================================== */
:root {
	/* Paleta Blocksy: 1 akcent główny · 2 akcent CTA · 3 tekst · 4 ciemny/nagłówki · 5 linie · 6 jasne tło · 7 tło strony · 8 biały */
	--dud-primary: var(--theme-palette-color-1, #1C6E9E);
	--dud-accent:  var(--theme-palette-color-2, #D8B072);
	--dud-text:    var(--theme-palette-color-3, #3A4F66);
	--dud-dark:    var(--theme-palette-color-4, #0E2A3D);
	--dud-line:    var(--theme-palette-color-5, #DFE7EE);
	--dud-soft:    var(--theme-palette-color-6, #F2F6F9);
	--dud-white:   var(--theme-palette-color-8, #FFFFFF);

	--dud-navy: var(--dud-dark);
	--dud-navy-2: color-mix(in srgb, var(--dud-dark) 82%, #fff);
	--dud-sea: var(--dud-primary);
	--dud-sand: var(--dud-accent);
	--dud-sand-2: color-mix(in srgb, var(--dud-accent) 85%, #000);
	--dud-ink: var(--dud-text);
	--dud-ink-soft: color-mix(in srgb, var(--dud-text) 72%, #fff);
	--dud-mist: var(--dud-soft);

	/* Przyciski Blocksy */
	--dud-btn-bg: var(--theme-button-background-initial-color, var(--dud-accent));
	--dud-btn-bg-hover: var(--theme-button-background-hover-color, var(--dud-sand-2));
	--dud-btn-text: var(--theme-button-text-initial-color, var(--dud-dark));
	--dud-btn-text-hover: var(--theme-button-text-hover-color, var(--dud-dark));
	--dud-btn-radius: var(--theme-button-border-radius, 999px);

	/* Fonty Blocksy (nagłówki: --dud-heading-font ustawiane z Typografii H2) */
	--dud-font-body: var(--theme-font-family, system-ui, sans-serif);
	--dud-font-head: var(--dud-heading-font, var(--theme-font-family, system-ui, sans-serif));

	--dud-radius: 14px;
	--dud-radius-sm: 10px;
	--dud-shadow: 0 1px 2px rgba(14, 42, 61, .06), 0 8px 24px rgba(14, 42, 61, .08);
	--dud-shadow-lg: 0 20px 50px rgba(14, 42, 61, .18);
	--dud-ease: cubic-bezier(.2, .7, .2, 1);
	--dud-wrap: var(--theme-normal-container-max-width, 1200px);
	--dud-gutter: clamp(16px, 4vw, 32px);
	--dud-section: clamp(56px, 8vw, 112px);
}

/* Base ------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 100px; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; } }

body { overflow-x: clip; -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, h5, h6, .elementor-widget-heading .elementor-heading-title { text-wrap: balance; }
p { text-wrap: pretty; }
img { max-width: 100%; height: auto; }
:focus-visible { outline: 2px solid var(--dud-sand); outline-offset: 3px; border-radius: 4px; }
::selection { background: var(--dud-sand); color: var(--dud-navy); }

.dud-wrap { width: 100%; max-width: calc(var(--dud-wrap) + var(--dud-gutter) * 2); margin-inline: auto; padding-inline: var(--dud-gutter); }
.dud-icon { width: 1.25em; height: 1.25em; flex: none; }

/* Elementor: spójne kontenery i odstępy */
.elementor-section.elementor-section-boxed > .elementor-container,
.e-con.e-con-boxed > .e-con-inner { max-width: var(--dud-wrap); }
@media (max-width: 1024px) {
	.e-con { --padding-left: var(--dud-gutter); --padding-right: var(--dud-gutter); }
}
.dud-section { padding-block: var(--dud-section); }
.dud-section--mist { background: var(--dud-mist); }
.dud-section--navy { background: var(--dud-navy); color: rgba(255,255,255,.85); }
.dud-section--navy h2, .dud-section--navy h3 { color: #fff; }

.dud-eyebrow, .dud-kicker .elementor-heading-title {
	font: 600 .78rem/1.2 var(--dud-font-body);
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--dud-sea);
	margin: 0 0 .9rem;
}
.dud-lead, .dud-lead p { font-size: clamp(1.05rem, 1rem + .3vw, 1.2rem); color: var(--dud-ink); }
.dud-prose p:last-child, .dud-prose ul:last-child { margin-bottom: 0; }
.dud-prose ul { padding-left: 1.1em; }
.dud-prose li { margin: .3em 0; }
.dud-prose li::marker { color: var(--dud-sand-2); }
.dud-note { font-size: .875rem; color: var(--dud-ink-soft); margin-top: 1rem; }
.dud-notice { padding: 12px 16px; border: 1px dashed var(--dud-sand-2); border-radius: 8px; background: color-mix(in srgb, var(--dud-accent) 10%, #fff); font-size: 14px; }

/* Buttons ---------------------------------------------------------------- */
.dud-btns { display: flex; flex-wrap: wrap; gap: 12px; }
.dud-btn,
.elementor-widget-button .elementor-button {
	display: inline-flex; align-items: center; justify-content: center; gap: .55em;
	min-height: 48px; padding: .8em 1.5em;
	font: 600 .95rem/1.2 var(--dud-font-body);
	letter-spacing: .01em;
	border-radius: var(--dud-btn-radius);
	border: 1.5px solid transparent;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .25s var(--dud-ease), color .25s, border-color .25s, transform .25s var(--dud-ease), box-shadow .25s;
	-webkit-tap-highlight-color: transparent;
}
.dud-btn .dud-icon { width: 1.1em; height: 1.1em; transition: transform .25s var(--dud-ease); }
.dud-btn:hover .dud-icon:last-child { transform: translateX(3px); }
.dud-btn--accent,
.elementor-widget-button .elementor-button,
.wpforms-container .wpforms-submit { background: var(--dud-btn-bg); color: var(--dud-btn-text) !important; }
.dud-btn--accent:hover,
.elementor-widget-button .elementor-button:hover,
.wpforms-container .wpforms-submit:hover { background: var(--dud-btn-bg-hover); color: var(--dud-btn-text-hover) !important; transform: translateY(-1px); box-shadow: 0 8px 20px color-mix(in srgb, var(--dud-btn-bg) 35%, transparent); }
.dud-btn--sm { min-height: 40px; padding: .55em 1.2em; font-size: .88rem; }
.dud-btn--primary { background: var(--dud-navy); color: #fff !important; }
.dud-btn--primary:hover { background: var(--dud-navy-2); }
.dud-btn--ghost { color: #fff !important; border-color: rgba(255,255,255,.55); background: rgba(255,255,255,.06); backdrop-filter: blur(6px); }
.dud-btn--ghost:hover { background: #fff; color: var(--dud-navy) !important; border-color: #fff; }
.dud-btn--outline { color: var(--dud-navy) !important; border-color: var(--dud-navy); background: transparent; }
.dud-btn--outline:hover { background: var(--dud-navy); color: #fff !important; }
.dud-btn-outline .elementor-button { background: transparent; color: var(--dud-navy) !important; border: 1.5px solid var(--dud-navy); }
.dud-btn-outline .elementor-button:hover { background: var(--dud-navy); color: #fff !important; box-shadow: none; }

.dud-link { display: inline-flex; align-items: center; gap: .4em; font-weight: 600; text-decoration: none; color: var(--dud-sea); }
.dud-link .dud-icon { width: 1em; height: 1em; transition: transform .25s var(--dud-ease); }
.dud-link:hover .dud-icon { transform: translateX(3px); }

/* Przełącznik języków [dud_lang] – dziedziczy kolor z headera Blocksy */
.dud-lang { list-style: none; margin: 0; padding: 3px; display: inline-flex; align-items: center; gap: 2px; border: 1px solid color-mix(in srgb, currentColor 30%, transparent); border-radius: 999px; }
.dud-lang a { display: block; padding: 6px 10px; border-radius: 999px; font: 600 .75rem/1 var(--dud-font-body); letter-spacing: .08em; color: inherit; opacity: .8; text-decoration: none; }
.dud-lang a:hover { opacity: 1; }
.dud-lang a.is-current { opacity: 1; background: var(--dud-white); color: var(--dud-dark); }

/* Hero ------------------------------------------------------------------- */
.dud-hero { --h: 64vh; --hero-radius: 0px; position: relative; }
.dud-hero--full { --h: calc(100svh - 120px); }
.dud-hero--lg { --h: 78svh; }
.dud-hero--md { --h: 60svh; }
.dud-hero--sm { --h: 40svh; }
/* boxed = ta sama szerokość co kontener Blocksy (header i treść) */
.dud-hero--boxed { padding-top: clamp(8px, 1.2vw, 16px); }
.dud-hero--boxed .dud-hero__frame {
	width: var(--theme-container-width, calc(100% - 2 * var(--dud-gutter)));
	max-width: var(--theme-normal-container-max-width, 1200px);
	margin-inline: auto;
}
.dud-hero__frame {
	position: relative; isolation: isolate; overflow: hidden;
	display: flex; align-items: flex-end;
	min-height: var(--h);
	border-radius: var(--hero-radius);
	background: var(--dud-dark); color: #fff;
}
.dud-hero__img { position: absolute !important; inset: 0; z-index: -2; width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover; object-position: var(--focus, center); animation: dud-zoom 14s var(--dud-ease) both; }
.dud-hero__frame::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(8,24,36,calc(var(--overlay) * .35)) 0%, rgba(8,24,36,calc(var(--overlay) * .45)) 45%, rgba(8,24,36,calc(var(--overlay) + .3)) 100%); }
@keyframes dud-zoom { from { transform: scale(1.06); } to { transform: scale(1); } }
.dud-hero__inner { width: 100%; padding: clamp(28px, 6vw, 88px); }
.dud-hero__content { max-width: 860px; animation: dud-rise .9s var(--dud-ease) .1s both; }
.dud-hero--center .dud-hero__frame { align-items: center; }
.dud-hero--center .dud-hero__content { margin-inline: auto; text-align: center; }
.dud-hero--center .dud-btns { justify-content: center; }
.dud-hero__eyebrow { margin: 0 0 1rem; font: 700 clamp(.85rem, .75rem + .4vw, 1.1rem)/1.2 var(--dud-font-body); letter-spacing: .18em; text-transform: uppercase; color: var(--dud-accent); }
.dud-hero__title { margin: 0 0 1.25rem !important; color: #fff !important; font-family: var(--dud-font-head) !important; font-size: clamp(2.75rem, 1.6rem + 5vw, 5.75rem) !important; font-weight: 700 !important; line-height: 1.02 !important; letter-spacing: -.03em !important; text-shadow: 0 2px 30px rgba(0,0,0,.25); }
.dud-hero__subtitle { margin: 0 0 .75rem; font: 600 clamp(1.35rem, 1.05rem + 1.3vw, 2.1rem)/1.25 var(--dud-font-head); color: #fff; letter-spacing: -.01em; text-wrap: balance; }
.dud-hero__text { margin: 0 0 2rem; max-width: 600px; font-size: clamp(1rem, .95rem + .25vw, 1.15rem); line-height: 1.6; color: rgba(255,255,255,.85); }
.dud-hero--center .dud-hero__text { margin-inline: auto; }
.dud-hero--sm .dud-hero__title { font-size: clamp(2.25rem, 1.5rem + 3vw, 3.75rem) !important; margin-bottom: 0 !important; }
.dud-hero--sm .dud-hero__inner { padding-block: clamp(24px, 4vw, 56px); }
@keyframes dud-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@media (max-width: 767px) {
	.dud-hero--full, .dud-hero--lg { --h: 78svh; }
	.dud-hero--md { --h: 56svh; }
	.dud-hero--sm { --h: 30svh; }
	.dud-hero__frame::before { background: linear-gradient(180deg, rgba(8,24,36,calc(var(--overlay) * .3)) 0%, rgba(8,24,36,calc(var(--overlay) + .35)) 70%); }
	.dud-hero .dud-btns { flex-direction: column; align-items: stretch; }
}

/* Header Blocksy: styl menu jak dudyachting.com (Dostosuj → DUDYACHTING → wyłącz, by sterować z Blocksy) */
.dud-menu-style .ct-header [data-id="menu"] > ul > li > a,
.dud-menu-style .ct-header [data-id="menu-secondary"] > ul > li > a { font-size: 16px; font-weight: 800; letter-spacing: 0; color: var(--theme-palette-color-1); }
.dud-menu-style .ct-header [data-id="menu"] > ul > li > a:hover,
.dud-menu-style .ct-header [data-id="menu"] > ul > li.current-menu-item > a { color: var(--theme-palette-color-4); }
.dud-menu-style #offcanvas .ct-menu-link, .dud-menu-style [data-id="mobile-menu"] .ct-menu-link { font-size: 20px; font-weight: 800; }
.dud-hide-search .ct-header [data-id="search"], .dud-hide-search .ct-header .ct-header-search { display: none !important; }
.dud-hide-site-title .ct-header [data-id="logo"] .site-title-container,
.dud-hide-site-title .ct-header .site-branding .site-title-container { display: none !important; }
.ct-header [data-id="logo"] img, .ct-header .site-logo-container img { max-height: var(--logo-max-height, 56px); width: auto; }
/* przełącznik języków w menu */
.dud-lang-item { display: flex; align-items: center; margin-inline-start: 12px; }
.dud-lang-item .dud-lang { color: var(--theme-palette-color-4); }
.dud-lang-item .dud-lang a { padding: 7px 11px; font-size: .78rem; }
.dud-lang-item .dud-lang a.is-current { background: var(--theme-palette-color-1); color: #fff; }
#offcanvas .dud-lang-item, .ct-panel .dud-lang-item { margin: 16px 0 0; }

/* Cards / info box ------------------------------------------------------- */
.dud-card {
	position: relative; height: 100%;
	padding: clamp(22px, 2.5vw, 32px);
	background: var(--dud-white); border: 1px solid var(--dud-line); border-radius: var(--dud-radius);
	transition: transform .35s var(--dud-ease), box-shadow .35s, border-color .35s;
}
.dud-card--plain { background: transparent; border-color: transparent; padding-inline: 0; }
.dud-card--dark { background: var(--dud-navy-2); border-color: rgba(255,255,255,.08); color: rgba(255,255,255,.8); }
.dud-card--dark .dud-info__title { color: #fff; }
.dud-card.is-link:hover, .dud-card--card:hover { transform: translateY(-4px); box-shadow: var(--dud-shadow); border-color: transparent; }
.dud-card__icon { display: inline-grid; place-items: center; width: 52px; height: 52px; margin-bottom: 18px; border-radius: 14px; background: var(--dud-mist); color: var(--dud-sea); }
.dud-card--dark .dud-card__icon { background: color-mix(in srgb, var(--dud-accent) 16%, transparent); color: var(--dud-sand); }
.dud-card__icon .dud-icon { width: 26px; height: 26px; }
.dud-info__img { margin: calc(clamp(22px, 2.5vw, 32px) * -1) calc(clamp(22px, 2.5vw, 32px) * -1) 20px; border-radius: var(--dud-radius) var(--dud-radius) 0 0; overflow: hidden; aspect-ratio: 3 / 2; }
.dud-info__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--dud-ease); }
.dud-card:hover .dud-info__img img { transform: scale(1.05); }
.dud-info__title { margin: 0 0 .5rem; font-size: clamp(1.1rem, 1rem + .4vw, 1.3rem); }
.dud-info__text { margin: 0; color: inherit; }
.dud-card .dud-link { margin-top: 1rem; }
.dud-stretch::before { content: ""; position: absolute; inset: 0; border-radius: inherit; }

/* CTA band --------------------------------------------------------------- */
.dud-cta {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 40px;
	padding: clamp(28px, 5vw, 56px);
	border-radius: calc(var(--dud-radius) + 6px);
	background: radial-gradient(120% 140% at 100% 0%, var(--dud-sea) 0%, var(--dud-navy) 60%);
	color: rgba(255,255,255,.85);
}
.dud-cta__text { flex: 1 1 360px; }
.dud-cta__title { color: #fff; margin: 0 0 .4rem; font-size: clamp(1.5rem, 1.2rem + 1.4vw, 2.25rem); }
.dud-cta p { margin: 0; }

/* Prices ----------------------------------------------------------------- */
.dud-prices { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)); gap: 14px; }
.dud-price {
	position: relative; overflow: hidden;
	display: flex; flex-direction: column; gap: 6px;
	padding: 22px 22px 26px;
	background: var(--dud-white); border: 1px solid var(--dud-line); border-radius: var(--dud-radius);
	transition: transform .3s var(--dud-ease), box-shadow .3s, border-color .3s;
}
.dud-price:hover { transform: translateY(-3px); box-shadow: var(--dud-shadow); }
.dud-price__dates { font: 600 .82rem/1.2 var(--dud-font-body); letter-spacing: .04em; color: var(--dud-ink-soft); font-variant-numeric: tabular-nums; }
.dud-price__value { font: 800 clamp(1.5rem, 1.3rem + .8vw, 1.9rem)/1.1 var(--dud-font-head); color: var(--dud-navy); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.dud-price__unit { font-size: .82rem; color: var(--dud-ink-soft); }
.dud-price__bar { position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: var(--dud-mist); }
.dud-price__bar::after { content: ""; position: absolute; inset: 0 auto 0 0; width: calc(15% + var(--level) * .85); background: linear-gradient(90deg, var(--dud-sea), var(--dud-sand)); border-radius: 0 4px 4px 0; }
.dud-price.is-current { border-color: var(--dud-sand); box-shadow: 0 0 0 1px var(--dud-sand), var(--dud-shadow); }
.dud-price__badge { position: absolute; top: 14px; right: 14px; padding: 4px 10px; border-radius: 999px; background: var(--dud-sand); color: var(--dud-navy); font: 700 .68rem/1 var(--dud-font-body); letter-spacing: .1em; text-transform: uppercase; }
@media (max-width: 480px) {
	.dud-prices { grid-template-columns: 1fr 1fr; gap: 10px; }
	.dud-price { padding: 16px 14px 20px; }
	.dud-price__badge { position: static; align-self: flex-start; margin-bottom: 2px; }
}

/* Specs / checklist / facts ---------------------------------------------- */
.dud-specs { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 190px), 1fr)); gap: 12px; }
.dud-spec { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 12px; align-items: center; padding: 16px 18px; background: var(--dud-mist); border-radius: var(--dud-radius-sm); }
.dud-spec .dud-icon { grid-row: span 2; width: 26px; height: 26px; color: var(--dud-sea); }
.dud-spec__label { font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; color: var(--dud-ink-soft); line-height: 1.3; }
.dud-spec__value { font: 700 1.1rem/1.3 var(--dud-font-head); color: var(--dud-navy); }
@media (max-width: 480px) { .dud-specs { grid-template-columns: 1fr 1fr; gap: 8px; } .dud-spec { padding: 12px; column-gap: 8px; } .dud-spec .dud-icon { width: 20px; height: 20px; } }

.dud-checklist { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 10px 24px; }
.dud-checklist li { display: flex; align-items: flex-start; gap: 10px; }
.dud-checklist .dud-icon { width: 20px; height: 20px; margin-top: 3px; padding: 3px; border-radius: 50%; background: color-mix(in srgb, var(--dud-primary) 12%, transparent); color: var(--dud-sea); stroke-width: 2.5; }

.dud-terms__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 16px; }
.dud-terms__box h3 { margin: 0 0 .75rem; font-size: 1.15rem; }
.dud-facts { list-style: none; margin: 0 0 16px; padding: 0; display: flex; flex-wrap: wrap; gap: 12px; }
.dud-facts li { display: flex; align-items: baseline; gap: 10px; padding: 12px 18px; border-radius: 999px; background: var(--dud-navy); color: rgba(255,255,255,.75); font-size: .9rem; }
.dud-facts strong { color: var(--dud-sand); font: 700 1.05rem var(--dud-font-head); }

/* Contact / social ------------------------------------------------------- */
.dud-contact-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.dud-contact-list li { display: flex; align-items: center; gap: 12px; }
.dud-contact-list a { color: inherit; text-decoration: none; }
.dud-contact-list a:hover { color: var(--dud-sand); }
.dud-contact-list--lg li { gap: 14px; font: 600 1.1rem var(--dud-font-head); color: var(--dud-navy); }
.dud-contact-list--lg .dud-icon { width: 44px; height: 44px; padding: 11px; border-radius: 12px; background: var(--dud-mist); color: var(--dud-sea); }
.dud-contact-list--lg a:hover { color: var(--dud-sea); }
.dud-contact-list--lg + .dud-social { margin-top: 24px; }

.dud-social { list-style: none; margin: 0; padding: 0; display: flex; gap: 10px; }
.dud-social a { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(255,255,255,.2); color: #fff; transition: background-color .25s, border-color .25s, color .25s, transform .25s var(--dud-ease); }
.dud-social a:hover { background: var(--dud-sand); border-color: var(--dud-sand); color: var(--dud-navy); transform: translateY(-2px); }
.dud-social .dud-icon { width: 18px; height: 18px; }
.dud-social--dark a { border-color: var(--dud-line); color: var(--dud-navy); }

/* Gallery ---------------------------------------------------------------- */
.dud-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }
.dud-filter { min-height: 40px; padding: 8px 18px; border: 1px solid var(--dud-line); border-radius: 999px; background: #fff; color: var(--dud-ink); font: 600 .9rem var(--dud-font-body); cursor: pointer; transition: all .25s; }
.dud-filter:hover { border-color: var(--dud-navy); color: var(--dud-navy); }
.dud-filter.is-active { background: var(--dud-navy); border-color: var(--dud-navy); color: #fff; }
.dud-gallery__grid { --cols: 4; --ratio: 4/3; display: grid; grid-template-columns: repeat(var(--cols), minmax(0, 1fr)); gap: clamp(6px, 1vw, 12px); grid-auto-flow: dense; }
.dud-gallery__item { position: relative; display: block; overflow: hidden; border-radius: var(--dud-radius-sm); aspect-ratio: var(--ratio); background: var(--dud-mist); cursor: zoom-in; }
.dud-gallery__item img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--dud-ease), filter .4s; }
.dud-gallery__item::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(8,24,36,.35)); opacity: 0; transition: opacity .35s; }
.dud-gallery__item:hover img { transform: scale(1.06); }
.dud-gallery__item:hover::after { opacity: 1; }
.dud-gallery__item.is-hidden, .dud-gallery__item.is-filtered { display: none; }
.dud-gallery__item.is-in { animation: dud-fade .45s var(--dud-ease) both; }
@keyframes dud-fade { from { opacity: 0; transform: scale(.97); } to { opacity: 1; transform: none; } }
@media (min-width: 768px) {
	.dud-gallery__grid--mosaic .dud-gallery__item:nth-child(10n + 1),
	.dud-gallery__grid--mosaic .dud-gallery__item:nth-child(10n + 7) { grid-column: span 2; grid-row: span 2; aspect-ratio: auto; }
}
.dud-gallery__more { display: flex; justify-content: center; margin-top: 32px; }

/* WP Simple Booking Calendar --------------------------------------------- */
.dud-availability { --wpsbc-radius: var(--dud-radius-sm); }
.dud-availability .wpsbc-container { max-width: 100% !important; font-family: var(--dud-font-body) !important; }
.dud-availability .wpsbc-calendars { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 16px; }
.dud-availability .wpsbc-calendars-wrapper,
.dud-availability .wpsbc-calendar { width: 100% !important; max-width: none !important; margin: 0 !important; float: none !important; }
.dud-availability .wpsbc-calendar { padding: 16px; background: var(--dud-white); border: 1px solid var(--dud-line) !important; border-radius: var(--dud-radius); box-shadow: var(--dud-shadow); }
.dud-availability .wpsbc-calendar-header { font: 700 1rem var(--dud-font-head) !important; color: var(--dud-navy) !important; background: none !important; border: 0 !important; }
.dud-availability .wpsbc-calendar-header select { min-height: 40px; padding: 6px 12px; border: 1px solid var(--dud-line); border-radius: 8px; font: 600 .95rem var(--dud-font-body); color: var(--dud-navy); background-color: #fff; }
.dud-availability .wpsbc-prev, .dud-availability .wpsbc-next { width: 40px !important; height: 40px !important; display: grid !important; place-items: center; border-radius: 50%; }
.dud-availability .wpsbc-prev:hover, .dud-availability .wpsbc-next:hover { background: var(--dud-mist); }
.dud-availability table { width: 100% !important; border-collapse: separate !important; border-spacing: 3px !important; }
.dud-availability th { font: 600 .72rem var(--dud-font-body) !important; letter-spacing: .06em; color: var(--dud-ink-soft) !important; text-transform: uppercase; }
.dud-availability td .wpsbc-date { border-radius: 8px !important; overflow: hidden; }
.dud-availability td .wpsbc-date-inner { font: 600 .85rem/2.4 var(--dud-font-body) !important; font-variant-numeric: tabular-nums; }
.dud-availability .wpsbc-legend { display: flex !important; flex-wrap: wrap; gap: 8px 20px; margin-top: 16px !important; padding: 0 !important; }
.dud-availability .wpsbc-legend-item { margin: 0 !important; display: flex !important; align-items: center; gap: 8px; font-size: .9rem; }
.dud-availability .wpsbc-legend-item-icon { border-radius: 4px !important; overflow: hidden; }

/* WPForms – formularz kontaktowy ----------------------------------------- */
.dud-form {
	position: relative;
	padding: clamp(22px, 4vw, 40px);
	background: var(--dud-white); border: 1px solid var(--dud-line); border-radius: calc(var(--dud-radius) + 4px);
	box-shadow: var(--dud-shadow);
}
.dud-form__head { margin-bottom: 20px; }
.dud-form__title { margin: 0 0 .35rem; font-family: var(--dud-font-head); font-size: clamp(1.2rem, 1rem + .6vw, 1.5rem); color: var(--dud-dark); }
.dud-form__text { margin: 0; color: var(--dud-ink-soft); }
.dud-form .wpforms-container, .wpforms-container.wpforms-container-full { margin: 0 !important; max-width: 100% !important; }
.dud-form .wpforms-form { --wpforms-field-size-input-height: 52px; }
.dud-form .wpforms-field-container { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
.dud-form .wpforms-field { grid-column: 1 / -1; padding: 0 0 18px !important; margin: 0 !important; clear: none !important; }
.dud-form .wpforms-field-name, .dud-form .wpforms-field-email, .dud-form .wpforms-field-phone { grid-column: span 1; }
.dud-form .wpforms-field-name .wpforms-field-row { display: grid !important; grid-template-columns: 1fr 1fr; gap: 12px; }
.dud-form .wpforms-field-name .wpforms-field-row-block { width: 100% !important; padding: 0 !important; float: none !important; }
.dud-form .wpforms-field-label {
	display: block; margin: 0 0 8px !important; padding: 0 !important;
	font: 600 .88rem/1.3 var(--dud-font-body) !important; color: var(--dud-dark) !important;
}
.dud-form .wpforms-field-sublabel { font-size: .78rem !important; color: var(--dud-ink-soft) !important; margin-top: 6px !important; }
.dud-form .wpforms-required-label { color: var(--dud-accent) !important; font-weight: 700; }
.dud-form .wpforms-field-description { font-size: .82rem !important; color: var(--dud-ink-soft) !important; }
.dud-form input[type=text], .dud-form input[type=email], .dud-form input[type=tel], .dud-form input[type=number], .dud-form input[type=date], .dud-form input[type=url], .dud-form textarea, .dud-form select {
	width: 100% !important; max-width: 100% !important; height: auto !important; min-height: 52px !important;
	padding: 13px 16px !important; margin: 0 !important;
	border: 1.5px solid var(--dud-line) !important; border-radius: var(--dud-radius-sm) !important;
	background: var(--dud-soft) !important; box-shadow: none !important;
	font: 400 1rem/1.4 var(--dud-font-body) !important; color: var(--dud-dark) !important;
	transition: border-color .2s, background-color .2s, box-shadow .2s !important;
	-webkit-appearance: none; appearance: none;
}
.dud-form textarea { min-height: 150px !important; resize: vertical; }
.dud-form ::placeholder { color: var(--dud-ink-soft); opacity: .7; }
.dud-form input:hover, .dud-form textarea:hover, .dud-form select:hover { border-color: color-mix(in srgb, var(--dud-primary) 35%, var(--dud-line)) !important; }
.dud-form input:focus, .dud-form textarea:focus, .dud-form select:focus {
	outline: none !important; background: var(--dud-white) !important;
	border-color: var(--dud-primary) !important; box-shadow: 0 0 0 4px color-mix(in srgb, var(--dud-primary) 15%, transparent) !important;
}
/* checkbox / zgoda RODO */
.dud-form .wpforms-field-checkbox ul, .dud-form .wpforms-field-gdpr-checkbox ul, .dud-form .wpforms-field-radio ul { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.dud-form .wpforms-field-checkbox li, .dud-form .wpforms-field-gdpr-checkbox li, .dud-form .wpforms-field-radio li { display: flex !important; align-items: flex-start; gap: 10px; margin: 0 0 8px !important; }
.dud-form input[type=checkbox], .dud-form input[type=radio] { width: 20px !important; height: 20px !important; margin: 2px 0 0 !important; accent-color: var(--dud-primary); flex: none; }
.dud-form .wpforms-field-label-inline { font-size: .9rem !important; color: var(--dud-text) !important; line-height: 1.5 !important; }
/* błędy */
.dud-form .wpforms-error, .dud-form label.wpforms-error, .dud-form em.wpforms-error { display: block; margin-top: 6px !important; font: 500 .82rem var(--dud-font-body) !important; color: #C0392B !important; }
.dud-form input.wpforms-error, .dud-form textarea.wpforms-error, .dud-form select.wpforms-error { border-color: #C0392B !important; background: #FDF3F2 !important; }
/* przycisk */
.dud-form .wpforms-submit-container { padding: 6px 0 0 !important; margin: 0 !important; display: flex; align-items: center; gap: 12px; }
.dud-form .wpforms-submit {
	min-height: 52px !important; height: auto !important; padding: .9em 2em !important;
	border: 0 !important; border-radius: var(--dud-btn-radius) !important;
	background: var(--dud-btn-bg) !important; color: var(--dud-btn-text) !important;
	font: 600 1rem/1.2 var(--dud-font-body) !important; cursor: pointer; box-shadow: none !important;
	transition: background-color .25s, transform .25s var(--dud-ease), box-shadow .25s !important;
}
.dud-form .wpforms-submit:hover { background: var(--dud-btn-bg-hover) !important; color: var(--dud-btn-text-hover) !important; transform: translateY(-1px); box-shadow: 0 8px 20px color-mix(in srgb, var(--dud-btn-bg) 35%, transparent) !important; }
.dud-form .wpforms-submit:focus-visible { outline: 2px solid var(--dud-primary) !important; outline-offset: 3px; }
.dud-form .wpforms-submit-spinner { margin: 0 !important; }
/* potwierdzenie wysyłki */
.dud-form .wpforms-confirmation-container-full, .wpforms-confirmation-container-full {
	margin: 0 !important; padding: 20px 22px !important;
	border: 1px solid color-mix(in srgb, var(--dud-primary) 30%, transparent) !important; border-left: 4px solid var(--dud-primary) !important;
	border-radius: var(--dud-radius-sm) !important; background: color-mix(in srgb, var(--dud-primary) 7%, var(--dud-white)) !important;
	color: var(--dud-dark) !important; font-size: 1rem;
}
.dud-form .wpforms-confirmation-container-full p:last-child { margin: 0; }
@media (max-width: 767px) {
	.dud-form .wpforms-field-container { grid-template-columns: 1fr; }
	.dud-form .wpforms-field-name, .dud-form .wpforms-field-email, .dud-form .wpforms-field-phone { grid-column: 1 / -1; }
	.dud-form .wpforms-field-name .wpforms-field-row { grid-template-columns: 1fr; gap: 0; }
	.dud-form .wpforms-submit { width: 100%; }
	.dud-form input, .dud-form textarea, .dud-form select { font-size: 16px !important; } /* iOS bez zoomu */
}

/* Obrazy w treści */
.dud-img-rounded img { width: 100%; border-radius: calc(var(--dud-radius) + 4px); aspect-ratio: 4 / 3; object-fit: cover; box-shadow: var(--dud-shadow-lg); }
.dud-kicker { margin-bottom: 0 !important; }
.dud-section .elementor-widget-heading + .elementor-widget-text-editor.dud-lead { margin-top: 4px; }

/* Google map ------------------------------------------------------------- */
.elementor-widget-google_maps iframe, .dud-map iframe { border-radius: var(--dud-radius); filter: grayscale(.25) contrast(1.05); }
@media (max-width: 767px) { .elementor-widget-google_maps iframe { height: 320px !important; } }

/* Mobile sticky bar ------------------------------------------------------ */
.dud-mobile-bar { display: none; }
@media (max-width: 767px) {
	.dud-mobile-bar {
		position: fixed; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); z-index: 90;
		display: flex; gap: 8px; padding: 6px;
		background: rgba(14,42,61,.92); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
		border-radius: 999px; box-shadow: var(--dud-shadow-lg);
		transform: translateY(150%); transition: transform .4s var(--dud-ease);
	}
	.dud-mobile-bar.is-visible { transform: none; }
	.dud-mobile-bar__btn { flex: 1; display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; border-radius: 999px; color: #fff; font: 600 .9rem var(--dud-font-body); text-decoration: none; }
	.dud-mobile-bar__btn .dud-icon { width: 18px; height: 18px; }
	.dud-mobile-bar__btn--accent { background: var(--dud-sand); color: var(--dud-navy); }
	.dud-has-mobile-bar .ct-footer { padding-bottom: calc(76px + env(safe-area-inset-bottom)); }
	html.dud-lock .dud-mobile-bar { display: none; }
}

/* Reveal on scroll ------------------------------------------------------- */
.dud-js .dud-reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s var(--dud-ease), transform .8s var(--dud-ease); }
.dud-js .dud-reveal.is-in { opacity: 1; transform: none; }

/* Arkusz informacyjny (PDF) ------------------------------------------------ */
.dud-doc {
	display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 20px 28px;
	padding: clamp(22px, 3vw, 36px);
	background: var(--dud-white); border: 1px solid var(--dud-line); border-left: 4px solid var(--dud-primary);
	border-radius: var(--dud-radius); box-shadow: var(--dud-shadow);
}
.dud-doc__icon { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 16px; background: color-mix(in srgb, var(--dud-primary) 12%, transparent); color: var(--dud-primary); }
.dud-doc__icon .dud-icon { width: 30px; height: 30px; }
.dud-doc__title { margin: 0 0 .35rem; font-family: var(--dud-font-head); font-size: clamp(1.05rem, .95rem + .5vw, 1.35rem); text-transform: uppercase; letter-spacing: .02em; color: var(--dud-dark); }
.dud-doc__text { margin: 0; color: var(--dud-ink-soft); max-width: 640px; }
.dud-doc__btn { white-space: nowrap; }
.dud-doc--preview { border-style: dashed; border-left-style: solid; opacity: .9; }
/* elementy redakcyjne – tylko dla zalogowanych (HTML jest w cache, więc ukrywamy CSS-em) */
body:not(.logged-in) .dud-doc--preview,
body:not(.logged-in) .dud-edit-link,
body:not(.logged-in) .dud-notice { display: none !important; }
body:not(.logged-in) .elementor-widget:has(> .elementor-widget-container > .dud-doc--preview:only-child),
body:not(.logged-in) .e-con:has(.dud-doc--preview):not(:has(.elementor-widget:not(.elementor-widget-dud-info-sheet))) { display: none !important; }
.dud-doc__btn small { font-weight: 500; opacity: .7; font-size: .8em; }
@media (max-width: 767px) {
	.dud-doc { grid-template-columns: auto 1fr; align-items: start; }
	.dud-doc__btn { grid-column: 1 / -1; width: 100%; }
	.dud-doc__icon { width: 52px; height: 52px; }
}

/* Stopka DUDYACHTING ------------------------------------------------------ */
.dud-hide-ct-footer .ct-footer { display: none !important; }
.dud-footer { background: var(--dud-dark); color: color-mix(in srgb, var(--dud-white) 72%, transparent); font-size: .95rem; position: relative; }
.dud-footer::before { content: ""; position: absolute; inset: 0 0 auto; height: 4px; background: linear-gradient(90deg, var(--dud-primary), var(--dud-accent)); }
.dud-footer__grid, .dud-footer__bottom { width: var(--theme-container-width, calc(100% - 2 * var(--dud-gutter))); max-width: var(--theme-normal-container-max-width, 1200px); margin-inline: auto; }
.dud-footer__grid { display: grid; grid-template-columns: 1.2fr 1.4fr 1fr; gap: clamp(32px, 5vw, 64px); padding-block: clamp(48px, 7vw, 80px) 40px; }
.dud-footer__logo { display: inline-block; }
.dud-footer__logo img { display: block; max-height: 56px; width: auto; background: var(--dud-white); padding: 10px 14px; border-radius: 12px; }
.dud-footer__name { font: 800 1.3rem var(--dud-font-head); letter-spacing: .06em; color: var(--dud-white); }
.dud-footer__tagline { margin: 18px 0 0; max-width: 300px; }
.dud-footer__links { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.dud-footer__title { margin: 0 0 16px !important; font: 700 .76rem/1.2 var(--dud-font-body) !important; letter-spacing: .16em !important; text-transform: uppercase; color: var(--dud-accent) !important; }
.dud-footer__menu { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.dud-footer__menu a { color: color-mix(in srgb, var(--dud-white) 85%, transparent); text-decoration: none; transition: color .2s, padding .2s; }
.dud-footer__menu a:hover, .dud-footer__menu .current-menu-item > a { color: var(--dud-white); }
.dud-social--footer { flex-direction: column; gap: 10px; }
.dud-social--footer a { text-decoration: none; width: auto; height: auto; display: inline-flex; gap: 12px; padding: 0; border: 0; color: color-mix(in srgb, var(--dud-white) 85%, transparent); font-weight: 500; }
.dud-social--footer a .dud-icon { width: 40px; height: 40px; padding: 10px; border: 1px solid color-mix(in srgb, var(--dud-white) 22%, transparent); border-radius: 50%; transition: background-color .25s, border-color .25s, color .25s; }
.dud-social--footer a span { align-self: center; }
.dud-social--footer a:hover { background: none; color: var(--dud-white); transform: none; }
.dud-social--footer a:hover .dud-icon { background: var(--dud-accent); border-color: var(--dud-accent); color: var(--dud-dark); }
.dud-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; padding-block: 20px; border-top: 1px solid color-mix(in srgb, var(--dud-white) 12%, transparent); font-size: .82rem; }
.dud-footer__bottom a { color: inherit; }
.dud-footer__bottom a:hover { color: var(--dud-white); }
@media (max-width: 900px) { .dud-footer__grid { grid-template-columns: 1fr 1fr; } .dud-footer__brand { grid-column: 1 / -1; } }
@media (max-width: 560px) {
	.dud-footer__grid { grid-template-columns: 1fr; gap: 36px; }
	.dud-footer__links { grid-template-columns: 1fr 1fr; gap: 24px; }
	.dud-footer__bottom { flex-direction: column; }
}
@media (max-width: 767px) { .dud-has-mobile-bar .dud-footer { padding-bottom: calc(76px + env(safe-area-inset-bottom)); } }

/* Edycja danych (tylko zalogowani) */
.dud-editable { position: relative; }
.dud-edit-link { position: absolute; top: -40px; right: 0; z-index: 5; padding: 6px 12px; border-radius: 999px; background: var(--dud-dark); color: #fff !important; font: 600 12px/1.2 var(--dud-font-body); text-decoration: none; opacity: .85; box-shadow: var(--dud-shadow); }
.dud-edit-link:hover { opacity: 1; }

/* Blocksy + Elementor ---------------------------------------------------- */
.elementor-page .entry-content > :first-child { margin-top: 0; }
.dud-panel { background: var(--dud-soft); }
