/* Lifting Malinowej Diety — warstwa nad zamrożonym motywem Inspiro Blocks.
   Paleta i krój zostają z motywu: malinowy #ff0035, granat #0e131f, Poppins.
   Selektory celują w klasy bloków WordPressa, więc większość reguł wymaga
   !important, żeby przebić inline style i presety (.has-*-font-family). */

:root {
  --lift-red: var(--wp--preset--color--primary, #ff0035);
  --lift-navy: var(--wp--preset--color--secondary, #0e131f);
  --lift-ease: cubic-bezier(.22, 1, .36, 1);
  --lift-radius: 14px;
  --lift-shadow-hover: 0 2px 4px rgba(14, 19, 31, .06), 0 28px 48px -20px rgba(14, 19, 31, .34);
}

html { scroll-padding-top: 96px; -webkit-text-size-adjust: 100%; }
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
::selection { background: var(--lift-red); color: #fff; }

:is(a, button, input, textarea, select, summary):focus-visible {
  outline: 2px solid var(--lift-red);
  outline-offset: 3px;
  border-radius: 4px;
}

/* --- Typografia --------------------------------------------------------- */

/* Oferta miała nagłówki w Bitter, reszta strony w Poppins. Wyjątek: cytat
   Rafała na stronie głównej (.lift-serif, oznaczany przez scripts/lift.mjs). */
body .wp-site-blocks :is(h1, h2, h3, h4, h5, h6):not(.lift-serif),
body .wp-site-blocks p.has-bitter-font-family {
  font-family: var(--wp--preset--font-family--poppins), sans-serif !important;
}
body .wp-site-blocks :is(h1, h2) { letter-spacing: -.02em; }
body .wp-site-blocks :is(h1, h2, h3) { text-wrap: balance; }
body .wp-site-blocks p { text-wrap: pretty; }

.single .wp-block-post-content :is(p, li) {
  font-size: clamp(16px, .95rem + .2vw, 18px);
  line-height: 1.75;
  color: #3b3d4b;
}
.single .wp-block-post-content :is(img, .wp-block-image img) { border-radius: var(--lift-radius); }

/* --- Header: przyklejony po zjechaniu z hero ---------------------------- */
/* Bez backdrop-filter i transform w stanie spoczynku — oba tworzą
   containing block i zamykałyby nakładkę menu mobilnego w pasku. */

header.wp-block-template-part > .wp-block-group:not(:has(header)) {
  transition: padding .35s var(--lift-ease), background-color .35s, box-shadow .35s;
}
html.lift-stuck header.wp-block-template-part > .wp-block-group:not(:has(header)) {
  position: fixed;
  inset: 0 0 auto 0;
  margin: 0 !important; /* alignfull ma ujemne marginy, które w fixed wypychały pasek poza ekran */
  z-index: 1000;
  background-color: var(--lift-navy);
  box-shadow: 0 1px 0 rgba(255, 255, 255, .06), 0 12px 32px -14px rgba(0, 0, 0, .5);
  padding-top: 14px !important;
  padding-bottom: 14px !important;
  animation: lift-drop .5s var(--lift-ease);
}
@keyframes lift-drop { from { transform: translateY(-100%); } }

/* Menu mobilne: motyw dawał czarne linki na granatowej nakładce (błąd sprzed liftingu). */
.wp-block-navigation__responsive-container.is-menu-open,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
.wp-block-navigation__responsive-container-close { color: #fff !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
  font-size: clamp(26px, 7.5vw, 34px);
  font-weight: 600;
  letter-spacing: -.02em;
  padding: .2em 0;
}
.wp-block-navigation__responsive-container.is-menu-open .current-menu-item > .wp-block-navigation-item__content { color: var(--lift-red) !important; }
@media (prefers-reduced-motion: no-preference) {
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { animation: lift-rise .55s var(--lift-ease) both; }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(2) { animation-delay: .05s; }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(3) { animation-delay: .1s; }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(4) { animation-delay: .15s; }
}

@media (hover: hover) and (min-width: 600px) {
  .wp-block-navigation .wp-block-navigation-item__content {
    background: linear-gradient(currentColor, currentColor) 0 100% / 0 1.5px no-repeat;
    transition: background-size .35s var(--lift-ease);
  }
  .wp-block-navigation .wp-block-navigation-item__content:hover { background-size: 100% 1.5px; }
}

/* Ikony 24 px dostają pole dotyku 44 px bez zmiany układu. */
.wp-block-social-links .wp-social-link a { padding: 10px; margin: -10px; }
.wp-block-social-links .wp-social-link svg { transition: transform .3s var(--lift-ease); }
@media (hover: hover) { .wp-block-social-links .wp-social-link a:hover svg { transform: translateY(-2px); } }

/* --- Hero --------------------------------------------------------------- */

.lift-hero-cta { gap: 12px !important; margin-top: 2rem !important; flex-wrap: wrap; }
.lift-hero-cta .wp-block-button__link { padding: .95em 1.9em !important; }
.lift-hero-cta .is-style-outline .wp-block-button__link {
  color: #fff !important;
  background: transparent !important;
  border: 2px solid rgba(255, 255, 255, .75) !important;
}
@media (max-width: 480px) {
  .lift-hero-cta { flex-direction: column; align-items: stretch !important; }
  .lift-hero-cta .wp-block-button { width: 100%; }
  .lift-hero-cta .wp-block-button__link { width: 100%; }
}

@media (prefers-reduced-motion: no-preference) {
  .lift-js .wp-block-cover:has(header) > .wp-block-cover__image-background {
    animation: lift-settle 2.6s var(--lift-ease) both;
  }
  .lift-js .wp-block-cover:has(header) .wp-block-cover__inner-container > :not(header) > * {
    animation: lift-rise .9s var(--lift-ease) both;
  }
  .lift-js .wp-block-cover:has(header) .wp-block-cover__inner-container > :not(header) > :nth-child(2) { animation-delay: .12s; }
  .lift-js .wp-block-cover:has(header) .wp-block-cover__inner-container > :not(header) > :nth-child(3) { animation-delay: .24s; }
  .lift-js .wp-block-cover:has(header) .wp-block-cover__inner-container > :not(header) > :nth-child(n+4) { animation-delay: .36s; }
}
@keyframes lift-settle { from { transform: scale(1.07); opacity: .6; } }
@keyframes lift-rise { from { transform: translateY(22px); opacity: 0; } }

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

.wp-block-button__link {
  border-radius: 8px !important;
  min-height: 44px;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  transition: transform .25s var(--lift-ease), box-shadow .25s var(--lift-ease), background-color .25s, color .25s, border-color .25s;
}
@media (hover: hover) {
  .wp-block-button__link:hover { transform: translateY(-2px); }
  .wp-block-button__link.has-primary-background-color:hover,
  .wp-block-button__link:not(.has-background):hover { box-shadow: 0 14px 26px -12px rgba(255, 0, 53, .6); }
  .wp-block-button.is-style-outline > .wp-block-button__link:hover {
    background-color: var(--lift-red) !important;
    border-color: var(--lift-red) !important;
    color: #fff !important;
  }
}
.wp-block-button__link:active { transform: translateY(0); }

/* --- Karty pakietów ----------------------------------------------------- */

.wp-block-column.is-style-shadow {
  border-radius: var(--lift-radius) !important;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform .45s var(--lift-ease), box-shadow .45s var(--lift-ease);
}
.wp-block-column.is-style-shadow > :last-child { flex: 1; display: flex; flex-direction: column; }
.wp-block-column.is-style-shadow > :last-child > .wp-block-buttons { margin-top: auto !important; padding-top: 1rem; }
@media (hover: hover) {
  .wp-block-column.is-style-shadow:hover { transform: translateY(-6px); box-shadow: var(--lift-shadow-hover) !important; }
}

/* --- Przepisy ---------------------------------------------------------- */

.wpzoom-blocks_portfolio-block_item-media { border-radius: var(--lift-radius); overflow: hidden; }
.wpzoom-blocks_portfolio-block_item-media img { transition: transform 1.2s var(--lift-ease) !important; }
@media (hover: hover) {
  .wpzoom-blocks_portfolio-block_item:hover .wpzoom-blocks_portfolio-block_item-media img { transform: scale(1.05); }
}

/* --- Opinie (Oferta) ---------------------------------------------------- */

.lift-monogram {
  aspect-ratio: 740 / 940;
  margin: 0 0 1em;
  display: grid;
  place-items: center;
  background: radial-gradient(120% 90% at 30% 15%, #232b42 0%, var(--lift-navy) 70%);
}
.lift-monogram span {
  font: 600 clamp(72px, 9vw, 128px) / 1 var(--wp--preset--font-family--poppins), sans-serif;
  color: var(--lift-red);
  letter-spacing: -.04em;
}
@media (min-width: 782px) {
  .lift-row-center { justify-content: center; }
  .lift-row-center > .wp-block-column { flex: 0 1 31.7% !important; }
  .lift-row-center > .lift-empty { display: none !important; }
}

/* --- Wiersze „Skontaktuj się z Nami!”: cały wiersz klikalny ------------- */

.wp-block-columns.is-not-stacked-on-mobile:has(> .wp-block-column > h3.wp-block-heading > a) { position: relative; }
.wp-block-columns.is-not-stacked-on-mobile > .wp-block-column > h3.wp-block-heading > a::after { content: ""; position: absolute; inset: -6px 0; }
.wp-block-columns.is-not-stacked-on-mobile:has(> .wp-block-column > h3.wp-block-heading > a) .icon-container { transition: transform .35s var(--lift-ease); }
.wp-block-columns.is-not-stacked-on-mobile > .wp-block-column > h3.wp-block-heading > a { transition: color .25s; }
@media (hover: hover) {
  .wp-block-columns.is-not-stacked-on-mobile:has(> .wp-block-column > h3.wp-block-heading > a):hover .items-justified-right .icon-container { transform: translate(4px, -4px); }
  .wp-block-columns.is-not-stacked-on-mobile:has(> .wp-block-column > h3.wp-block-heading > a):hover h3 a { color: var(--lift-red) !important; }
}

/* --- Mapa i stopka ------------------------------------------------------ */

.map-grayscale iframe { border-radius: var(--lift-radius); transition: filter .6s var(--lift-ease); }
@media (hover: hover) { .map-grayscale:hover iframe { filter: none !important; } }

footer.wp-block-template-part a { text-underline-offset: 3px; transition: color .25s, opacity .25s; }
@media (hover: hover) { footer.wp-block-template-part p a:hover { text-decoration: underline; } }

/* --- Wejście sekcji przy przewijaniu ------------------------------------ */

@media (prefers-reduced-motion: no-preference) {
  .lift-js .lift-reveal {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity .8s var(--lift-ease), transform .8s var(--lift-ease);
    transition-delay: calc(var(--lift-i, 0) * 90ms);
  }
  .lift-js .lift-reveal.lift-in { opacity: 1; transform: none; }
}

/* --- Opinie Google (strona główna) — statyczne karty zamiast Trustindex -- */

.lift-reviews {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px;
  margin-top: 2rem;
}
.lift-review {
  flex: 1 1 300px;
  max-width: calc((100% - 40px) / 3);
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 26px 26px 28px;
  background: #fff;
  border: 1px solid var(--wp--preset--color--lightgrey, #ededed);
  border-radius: var(--lift-radius);
  transition: transform .45s var(--lift-ease), box-shadow .45s var(--lift-ease), border-color .45s;
}
@media (hover: hover) {
  .lift-review:hover { transform: translateY(-4px); box-shadow: var(--lift-shadow-hover); border-color: transparent; }
}
@media (max-width: 1024px) { .lift-review { max-width: calc((100% - 20px) / 2); } }
@media (max-width: 640px) { .lift-review { max-width: none; } }

.lift-review__head { display: flex; align-items: center; gap: 12px; }
.lift-review__avatar {
  flex: none;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--lift-navy);
  color: #fff;
  font: 600 15px / 1 var(--wp--preset--font-family--poppins), sans-serif;
  letter-spacing: .02em;
}
.lift-review__name { margin: 0 !important; font-weight: 600; font-size: 16px; color: var(--lift-navy); }
.lift-review__meta { margin: 2px 0 0 !important; font-size: 13px; color: var(--wp--preset--color--tertiary, #6c6c77); }
.lift-review__stars { display: flex; gap: 2px; margin: 0 !important; color: var(--lift-red); }
.lift-review__text { margin: 0; padding: 0; border: 0; }
.lift-review__text p { margin: 0; font-size: 15px; line-height: 1.7; color: #3b3d4b; }

/* --- Opinie: równa długość, reszta po kliknięciu ------------------------- */

.lift-review__text p {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 5;
  overflow: hidden;
}
.lift-review.is-open .lift-review__text p { display: block; -webkit-line-clamp: unset; }
.lift-review__more {
  align-self: flex-start;
  margin-top: auto;
  padding: 6px 0;
  background: none;
  border: 0;
  font: 600 14px / 1.4 var(--wp--preset--font-family--poppins), sans-serif;
  color: var(--lift-red);
  cursor: pointer;
}
@media (hover: hover) { .lift-review__more:hover { text-decoration: underline; text-underline-offset: 3px; } }

/* --- Loader (pierwsza strona w sesji) ------------------------------------ */

.lift-loader { display: none; }
.lift-loading .lift-loader,
.lift-loader.is-leaving {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 22px;
  background: var(--lift-navy);
  transition: opacity .55s var(--lift-ease), visibility .55s;
}
.lift-loader img { width: 184px; height: auto; animation: lift-breathe 1.6s ease-in-out infinite; }
.lift-loader__bar { position: relative; width: 168px; height: 2px; overflow: hidden; border-radius: 2px; background: rgba(255, 255, 255, .12); }
.lift-loader__bar::after { content: ""; position: absolute; inset: 0; background: var(--lift-red); animation: lift-progress 1.1s var(--lift-ease) infinite; }
.lift-loader.is-leaving { opacity: 0; visibility: hidden; }
/* Gdyby skrypt nie ruszył, loader i tak znika po 3 s. */
.lift-loading .lift-loader { animation: lift-loader-failsafe .4s 3s forwards; }
@keyframes lift-loader-failsafe { to { opacity: 0; visibility: hidden; } }
@keyframes lift-breathe { 50% { opacity: .5; } }
@keyframes lift-progress { from { transform: translateX(-100%); } to { transform: translateX(100%); } }
/* Wejście hero rusza dopiero po zniknięciu loadera. */
html.lift-loading .wp-block-cover:has(header) > .wp-block-cover__image-background,
html.lift-loading .wp-block-cover:has(header) .wp-block-cover__inner-container > :not(header) > * { animation-play-state: paused !important; }
@media (prefers-reduced-motion: reduce) {
  .lift-loader img, .lift-loader__bar::after { animation: none; }
}

/* --- Blog: wyróżniony wpis + siatka -------------------------------------- */

.lift-blog {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 40px 28px;
  margin-top: 0 !important;
}
.lift-post {
  position: relative;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--wp--preset--color--lightgrey, #ededed);
  border-radius: var(--lift-radius);
  transition: transform .45s var(--lift-ease), box-shadow .45s var(--lift-ease), border-color .45s;
}
.lift-post__media { display: block; aspect-ratio: 16 / 10; overflow: hidden; }
.lift-post__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--lift-ease); }
.lift-post__body { flex: 1; display: flex; flex-direction: column; gap: 10px; padding: 22px 24px 24px; }
.lift-post__cats { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 0 !important; }
.lift-post__cats a {
  font: 600 12px / 1.4 var(--wp--preset--font-family--poppins), sans-serif;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--lift-red);
}
.lift-post__title { margin: 0 !important; font-size: clamp(19px, 1.05rem + .35vw, 23px) !important; line-height: 1.3; font-weight: 600; }
.lift-post__title a { color: var(--lift-navy); text-decoration: none; transition: color .25s; }
.lift-post__title a::after { content: ""; position: absolute; inset: 0; }
.lift-post__excerpt {
  margin: 0 !important;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  font-size: 15px;
  line-height: 1.65;
  color: #4a4c5a;
}
.lift-post__meta {
  display: flex;
  gap: 8px;
  margin: auto 0 0 !important;
  padding-top: 6px;
  font-size: 13px;
  color: var(--wp--preset--color--tertiary, #6c6c77);
}
@media (hover: hover) {
  .lift-post:hover { transform: translateY(-4px); box-shadow: var(--lift-shadow-hover); border-color: transparent; }
  .lift-post:hover .lift-post__media img { transform: scale(1.04); }
  .lift-post:hover .lift-post__title a { color: var(--lift-red); }
}

.lift-post--featured { grid-column: 1 / -1; }
@media (min-width: 782px) {
  .lift-post--featured { flex-direction: row; }
  .lift-post--featured .lift-post__media { flex: 0 0 58%; aspect-ratio: auto; min-height: 400px; }
  .lift-post--featured .lift-post__body { justify-content: center; padding: 44px 48px; gap: 14px; }
  .lift-post--featured .lift-post__title { font-size: clamp(26px, 1.4rem + .9vw, 36px) !important; line-height: 1.2; }
  .lift-post--featured .lift-post__excerpt { -webkit-line-clamp: 4; font-size: 16px; }
  .lift-post--featured .lift-post__meta { margin-top: 8px !important; }
}
@media (max-width: 1024px) { .lift-blog { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 20px; } }
@media (max-width: 640px) { .lift-blog { grid-template-columns: minmax(0, 1fr); } }

/* --- Wpis: ramka „w skrócie”, śródtytuły, przepis ------------------------ */

.lift-summary {
  margin: 2.2em 0 !important;
  padding: 22px 26px;
  background: #fff4f6;
  border-left: 3px solid var(--lift-red);
  border-radius: 0 var(--lift-radius) var(--lift-radius) 0;
}
.lift-summary__title {
  margin: 0 0 .6em !important;
  font: 600 13px / 1.4 var(--wp--preset--font-family--poppins), sans-serif !important;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--lift-navy) !important;
}
.lift-summary ul { margin: 0; padding-left: 1.2em; }
.lift-summary li { margin: .4em 0; }
.single .wp-block-post-content h2.wp-block-heading {
  margin: 1.9em 0 .6em !important;
  font-size: clamp(22px, 1.2rem + .55vw, 28px) !important;
  line-height: 1.25;
  color: var(--lift-navy);
}
.single .wp-block-post-content ol { padding-left: 1.4em; }
.single .wp-block-post-content ol li { padding-left: .3em; margin: .45em 0; }
.single .wp-block-post-content ol li::marker { color: var(--lift-red); font-weight: 600; }

/* --- FAQ (Oferta) -------------------------------------------------------- */

.lift-faq { padding-top: var(--wp--preset--spacing--60, 64px); padding-bottom: 24px; }
.lift-faq__list { margin-top: 1.6rem; border-top: 1px solid var(--wp--preset--color--lightgrey, #ededed); }
.lift-faq__item { border-bottom: 1px solid var(--wp--preset--color--lightgrey, #ededed); }
.lift-faq__item summary {
  position: relative;
  padding: 22px 52px 22px 0;
  list-style: none;
  cursor: pointer;
  font: 600 clamp(16px, .95rem + .3vw, 19px) / 1.4 var(--wp--preset--font-family--poppins), sans-serif;
  color: var(--lift-navy);
  transition: color .25s;
}
.lift-faq__item summary::-webkit-details-marker { display: none; }
.lift-faq__item summary::after {
  content: "";
  position: absolute;
  right: 8px;
  top: 50%;
  width: 16px;
  height: 16px;
  margin-top: -8px;
  background:
    linear-gradient(var(--lift-red), var(--lift-red)) center / 100% 2px no-repeat,
    linear-gradient(var(--lift-red), var(--lift-red)) center / 2px 100% no-repeat;
  transition: transform .35s var(--lift-ease);
}
.lift-faq__item[open] summary::after { transform: rotate(45deg); }
@media (hover: hover) { .lift-faq__item summary:hover { color: var(--lift-red); } }
.lift-faq__answer p { margin: 0 0 22px !important; max-width: 70ch; font-size: 16px; line-height: 1.7; color: #3b3d4b; }

/* --- Stopka: realizacja ------------------------------------------------- */

.lift-credit a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: inherit;
  text-decoration: none !important;
  opacity: .7;
  transition: opacity .25s;
}
.lift-credit span { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.lift-credit img { display: block; width: 112px; height: auto; }
@media (hover: hover) { .lift-credit a:hover { opacity: 1; } }

/* Kod rabatowy pod wierszem Bolero. */
.lift-row-note {
  margin: 2px 0 0 !important;
  font-size: 13px;
  letter-spacing: .03em;
  color: rgba(255, 255, 255, .6);
}
.lift-row-note strong { color: #fff; font-weight: 600; letter-spacing: .08em; user-select: all; }
