/*
 Theme Name:   SensuFoto
 Description:  Motyw potomny Blocksy – fotografia sensualna i buduarowa
 Author:       Fotograf
 Template:     blocksy
 Version:      1.1
 License:      GNU General Public License v2 or later
*/

/* =========================================================
   1. ZMIENNE
   ========================================================= */
:root {
  --sf-plum: #310a22;
  --sf-plum-2: #3d0f2b;
  --sf-wine: #6b0f1a;
  --sf-blush: #f4e3d7;
  --sf-cream: #fbf7f3;
  --sf-ink: #1f1419;
  --sf-muted: #7a6a70;
  --sf-line-light: rgba(255,255,255,.45);
  --sf-line-dark: rgba(31,20,25,.55);
  --sf-serif: "Playfair Display", Georgia, "Times New Roman", serif;
  --sf-sans: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --sf-gap: clamp(20px, 3vw, 40px);
  --sf-sec: clamp(72px, 10vw, 150px);

  /* Blocksy */
  --theme-font-family: var(--sf-sans);
  --theme-text-color: var(--sf-ink);
  --theme-headings-color: var(--sf-ink);
  --theme-link-initial-color: var(--sf-wine);
  --theme-link-hover-color: var(--sf-plum);
  --theme-button-background-initial-color: var(--sf-plum);
  --theme-button-background-hover-color: var(--sf-wine);
}

/* =========================================================
   2. TYPOGRAFIA
   ========================================================= */
body,
.editor-styles-wrapper {
  font-family: var(--sf-sans);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.75;
  color: var(--sf-ink);
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, h5, h6,
.wp-block-heading,
.editor-styles-wrapper h1, .editor-styles-wrapper h2, .editor-styles-wrapper h3,
.editor-styles-wrapper h4, .editor-styles-wrapper .wp-block-post-title,
.site-title, .entry-title {
  font-family: var(--sf-serif) !important;
  font-weight: 400 !important;
  letter-spacing: .01em;
  line-height: 1.08;
}
h1, h2, .editor-styles-wrapper h1, .editor-styles-wrapper h2 { text-transform: uppercase; }
h1 { font-size: clamp(38px, 5.2vw, 76px); }
h2 { font-size: clamp(34px, 4.4vw, 64px); }
h3 { font-size: clamp(24px, 2.2vw, 32px); }
h4 { font-size: 22px; }

/* Akcent kursywą w nagłówkach: <em> */
h1 em, h2 em, h3 em, .sf-script {
  font-family: var(--sf-serif);
  font-style: italic;
  text-transform: none;
  font-weight: 400;
  letter-spacing: 0;
}
/* akcent w nowej linii, przesunięty w prawo – jak w projekcie */
.sf-accent-break em { display: block; padding-left: clamp(40px, 12%, 180px); font-size: 1.05em; margin-top: -.08em; }

.sf-kicker {
  font-family: var(--sf-sans);
  font-size: 12px !important;
  font-weight: 500;
  letter-spacing: .28em;
  text-transform: uppercase;
}
.sf-lead {
  font-family: var(--sf-serif);
  font-style: italic;
  font-size: clamp(20px, 2vw, 28px) !important;
  line-height: 1.35;
}
.sf-small { font-size: 14px; line-height: 1.8; }
.sf-justify { text-align: justify; hyphens: auto; }

/* =========================================================
   3. SEKCJE / UKŁAD
   ========================================================= */
.sf-sec { padding-top: var(--sf-sec) !important; padding-bottom: var(--sf-sec) !important; }
.sf-sec-sm { padding-top: calc(var(--sf-sec) * .6) !important; padding-bottom: calc(var(--sf-sec) * .6) !important; }
.sf-dark, .sf-dark h1, .sf-dark h2, .sf-dark h3, .sf-dark h4, .sf-dark p, .sf-dark li, .sf-dark summary { color: #fff; }
.sf-dark p, .sf-dark li { color: rgba(255,255,255,.82); }
.entry-content > .alignfull { margin-top: 0; margin-bottom: 0; }
.sf-sec .wp-block-columns { margin-bottom: 0; }

/* strona zbudowana z sekcji: bez tytułu Blocksy i bez odstępów kontenera */
body.page:not(.blog) .hero-section { display: none; }
body.page:not(.blog) .site-main > [class*="ct-container"] { padding-top: 0 !important; padding-bottom: 0 !important; }
body.page:not(.blog) .entry-content > *:first-child { margin-top: 0 !important; }
body.page:not(.blog) .entry-content > .alignfull:last-child { margin-bottom: 0 !important; }
.entry-content > .wp-block-group.alignfull + .wp-block-group.alignfull,
.entry-content > .alignfull + .alignfull,
.entry-content > .wp-block-block > .alignfull { margin-top: 0 !important; margin-bottom: 0 !important; }
.entry-content > .wp-block-block { margin: 0 !important; }

/* Linie dekoracyjne */
.sf-hline { position: relative; }
.sf-hline::after {
  content: ""; position: absolute; left: 0; right: 0; top: var(--sf-hline-top, 62%);
  border-top: 1px solid var(--sf-line-light); pointer-events: none; z-index: 0;
}
.sf-hline > * { position: relative; z-index: 1; }
.sf-heading-line { position: relative; }
.sf-heading-line::after { content: ""; position: absolute; top: .55em; right: 0; width: var(--sf-line-w, 38%); border-top: 1px solid currentColor; opacity: .5; }
.sf-heading-line.sf-line-left::after { right: auto; left: 0; }
.sf-line-left { text-align: right; }
@media (max-width: 781px) { .sf-heading-line::after { display: none; } .sf-line-left { text-align: left; } }
.sf-vline { border-left: 1px solid var(--sf-line-dark); padding-left: clamp(20px, 3vw, 40px) !important; }
.sf-rule { border: 0; border-top: 1px solid currentColor !important; opacity: .5; background: none !important; height: 0 !important; }

/* =========================================================
   4. PRZYCISKI I LINKI
   ========================================================= */
.wp-block-button__link, .wp-element-button, .ct-button, button[type="submit"], input[type="submit"], .wpcf7-submit {
  border-radius: 0 !important;
  font-family: var(--sf-sans) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: .22em !important;
  text-transform: uppercase;
  padding: 17px 38px !important;
  transition: background-color .3s, color .3s, border-color .3s;
}
.wp-block-button:not(.is-style-outline) .wp-block-button__link { background-color: var(--sf-plum); color: #fff; border: 1px solid var(--sf-plum); }
.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover { background-color: var(--sf-wine); border-color: var(--sf-wine); }
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; border: 1px solid currentColor; }
.sf-dark .wp-block-button.is-style-outline .wp-block-button__link { color: #fff; }
.sf-dark .wp-block-button.is-style-outline .wp-block-button__link:hover { background: #fff; color: var(--sf-plum); }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--sf-plum); color: #fff; border-color: var(--sf-plum); }
.sf-dark .wp-block-button:not(.is-style-outline) .wp-block-button__link { background: #fff; color: var(--sf-plum); border-color: #fff; }
.sf-dark .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover { background: var(--sf-blush); border-color: var(--sf-blush); }

.sf-arrow a, a.sf-arrow {
  font-family: var(--sf-serif);
  font-size: clamp(20px, 1.8vw, 26px);
  color: inherit; text-decoration: none;
  display: inline-flex; align-items: center; gap: 16px;
}
.sf-arrow a::before, a.sf-arrow::before { content: "⟶"; font-family: var(--sf-sans); font-size: .95em; transition: transform .3s; }
.sf-arrow a:hover::before { transform: translateX(6px); }
.sf-dark .sf-arrow a { color: #fff; }

/* =========================================================
   5. ZDJĘCIA / KOLAŻE
   ========================================================= */
.wp-block-image img, .wp-block-cover { border-radius: 0; }
.sf-img img { width: 100%; height: auto; object-fit: cover; display: block; }
.sf-ratio-45 img { aspect-ratio: 4/5; object-fit: cover; width: 100%; }
.sf-ratio-34 img { aspect-ratio: 3/4; object-fit: cover; width: 100%; }
.sf-ratio-11 img { aspect-ratio: 1/1; object-fit: cover; width: 100%; }
.sf-ratio-32 img { aspect-ratio: 3/2; object-fit: cover; width: 100%; }
.sf-shadow img { box-shadow: 0 30px 60px -30px rgba(0,0,0,.45); }

@media (min-width: 782px) {
  .sf-down-s { margin-top: 12% !important; }
  .sf-down { margin-top: 30% !important; }
  .sf-down-l { margin-top: 55% !important; }
  .sf-up { margin-top: -18% !important; }
  .sf-overlap-left { margin-left: -28% !important; margin-top: -22% !important; width: 72% !important; position: relative; z-index: 2; }
  .sf-overlap-right { margin-left: 45% !important; margin-top: -28% !important; width: 70% !important; position: relative; z-index: 2; }
  .sf-w-60 { width: 60% !important; }
  .sf-w-70 { width: 70% !important; }
  .sf-push-right { margin-left: auto !important; }
  .sf-hero-right-img { margin-right: calc(-1 * var(--sf-page-gutter, 0px)); }
}

/* =========================================================
   6. HERO
   ========================================================= */
.sf-hero { overflow: hidden; }
.sf-hero h1 { font-size: clamp(36px, 3.9vw, 62px); line-height: 1.05; }
.sf-hero .wp-block-button.is-style-outline .wp-block-button__link { border: 1px solid #fff !important; }
.sf-hero .wp-block-columns { align-items: stretch; }
@media (min-width: 782px) {
  .sf-hero .sf-hero-text { padding-top: 12vh; margin-left: -12% !important; position: relative; z-index: 3; }
  .sf-hero .sf-hero-right { padding-top: 22vh; }
}
.sf-hero-cover h1 { font-size: clamp(36px, 4.2vw, 64px); }

/* =========================================================
   7. TŁA ZE ZDJĘCIEM, OVERLAY, KARTY OFERTY
   ========================================================= */
.sf-bgimg { background-size: cover !important; background-position: center !important; }
.sf-overlay { position: relative; isolation: isolate; }
.sf-overlay::before { content: ""; position: absolute; inset: 0; background: var(--sf-ov, rgba(49,10,34,.62)); z-index: -1; pointer-events: none; }
.sf-ov-light { --sf-ov: rgba(20,8,14,.38); }
.sf-ov-wine { --sf-ov: linear-gradient(90deg, rgba(75,10,18,.85) 0%, rgba(75,10,18,.45) 60%, rgba(75,10,18,.25) 100%); }
.sf-card {
  display: flex !important; flex-direction: column; justify-content: space-between;
  min-height: clamp(420px, 40vw, 600px); padding: 22px 22px 26px !important; overflow: hidden;
  --sf-ov: linear-gradient(180deg, rgba(0,0,0,.42) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0) 62%, rgba(0,0,0,.5) 100%);
  transition: background-size 1s ease; background-size: 100% auto;
}
.sf-card::before { transition: background .5s; }
.sf-card:hover { --sf-ov: linear-gradient(180deg, rgba(49,10,34,.55) 0%, rgba(49,10,34,.35) 100%); }
.sf-card h3 { font-size: clamp(22px, 2vw, 30px) !important; margin: 0 !important; color: #fff !important; }
.sf-card p { margin: 0 !important; color: #fff; }
.sf-card > * { margin-top: 0 !important; margin-bottom: 0 !important; }
.sf-cards { gap: 12px !important; }

/* =========================================================
   8. OPINIE – slider
   ========================================================= */
.sf-vertical {
  writing-mode: vertical-rl;
  font-family: var(--sf-serif);
  text-transform: uppercase;
  font-size: clamp(40px, 5vw, 80px) !important;
  line-height: 1;
  margin: 0 !important;
  opacity: .9;
}
.sf-vertical.sf-flip { transform: rotate(180deg); }
.sf-slider {
  display: flex !important; flex-wrap: nowrap !important; gap: 0 !important;
  overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
}
.sf-slider::-webkit-scrollbar { display: none; }
.sf-slider > * { flex: 0 0 100% !important; scroll-snap-align: start; margin: 0 !important; }
.sf-quote p { font-size: 15px; line-height: 1.9; }
.sf-quote .sf-author { font-family: var(--sf-serif); font-style: italic; font-size: 18px; color: #fff; margin-top: 18px; }
.sf-slider-nav { gap: 28px !important; }
.sf-slider-nav p { margin: 0; }
.sf-slider-nav a { color: #fff; text-decoration: none; font-size: 26px; line-height: 1; transition: opacity .3s; }
.sf-slider-nav a:hover { opacity: .6; }

/* =========================================================
   9. CTA + PASEK ZDJĘĆ
   ========================================================= */
.sf-cta h2 { font-size: clamp(40px, 5vw, 78px); line-height: 1.02; }
.sf-strip { gap: 6px !important; }
.sf-strip .wp-block-image { margin: 0 !important; }
.sf-strip .wp-block-image img { aspect-ratio: 1/1; object-fit: cover; width: 100%; transition: opacity .4s; }
.sf-strip .wp-block-image:hover img { opacity: .8; }
.sf-strip.wp-block-gallery.has-nested-images figure.wp-block-image { flex-grow: 1; }

/* =========================================================
   10. OFERTA / KROKI / FAQ
   ========================================================= */
.sf-price { font-family: var(--sf-serif); font-size: clamp(26px, 2.4vw, 34px) !important; margin: 8px 0 !important; }
.sf-list { list-style: none; padding-left: 0 !important; }
.sf-list li { padding: 10px 0 10px 28px; border-bottom: 1px solid rgba(0,0,0,.12); position: relative; }
.sf-dark .sf-list li { border-color: rgba(255,255,255,.2); }
.sf-list li::before { content: "—"; position: absolute; left: 0; opacity: .6; }
.sf-step-num { font-family: var(--sf-serif) !important; font-style: italic; font-size: clamp(56px, 6vw, 90px) !important; line-height: 1 !important; margin: 0 0 12px !important; opacity: .9; }
.sf-steps > .wp-block-column { border-top: 1px solid var(--sf-line-dark); padding-top: 28px; }
.sf-faq .wp-block-details { border-bottom: 1px solid var(--sf-line-dark); padding: 22px 0; margin: 0 !important; }
.sf-faq .wp-block-details:first-of-type { border-top: 1px solid var(--sf-line-dark); }
.sf-faq summary { font-family: var(--sf-serif); font-size: clamp(19px, 1.7vw, 24px); cursor: pointer; list-style: none; position: relative; padding-right: 40px; }
.sf-faq summary::-webkit-details-marker { display: none; }
.sf-faq summary::after { content: "+"; position: absolute; right: 0; top: -4px; font-family: var(--sf-sans); font-weight: 300; font-size: 28px; transition: transform .3s; }
.sf-faq details[open] summary::after { transform: rotate(45deg); }
.sf-faq .wp-block-details > *:not(summary) { margin-top: 14px; max-width: 760px; }

/* =========================================================
   11. PORTFOLIO
   ========================================================= */
.sf-portfolio.wp-block-gallery { gap: 10px !important; }
.sf-portfolio.wp-block-gallery.has-nested-images figure.wp-block-image img { aspect-ratio: 4/5; object-fit: cover; }
.sf-portfolio.wp-block-gallery figure.wp-block-image:nth-child(5n+3) img { aspect-ratio: 4/6; }

/* =========================================================
   12. FORMULARZ (Contact Form 7)
   ========================================================= */
.sf-form .wpcf7-form { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 18px; }
.sf-form .wpcf7-form > p, .sf-form .sf-full { grid-column: 1 / -1; margin: 0; }
.sf-form .sf-half { grid-column: span 1; margin: 0; }
.sf-form label { display: block; font-size: 11px; letter-spacing: .24em; text-transform: uppercase; color: rgba(255,255,255,.75); }
.sf-form input[type="text"], .sf-form input[type="email"], .sf-form input[type="tel"], .sf-form select, .sf-form textarea {
  width: 100%; background: transparent !important; border: 1px solid var(--sf-line-light) !important; border-radius: 0 !important;
  color: #fff !important; padding: 14px 16px !important; margin-top: 8px; font-family: var(--sf-sans); font-size: 15px;
  --theme-form-field-border-initial-color: var(--sf-line-light);
}
.sf-form select option { color: var(--sf-ink); }
.sf-form input:focus, .sf-form textarea:focus, .sf-form select:focus { border-color: #fff !important; outline: none; box-shadow: none; }
.sf-form textarea { min-height: 150px; }
.sf-form .wpcf7-acceptance label, .sf-form .sf-consent { text-transform: none; letter-spacing: 0; font-size: 13px; line-height: 1.6; }
.sf-form .wpcf7-acceptance input { margin-right: 8px; accent-color: var(--sf-blush); }
.sf-form .wpcf7-list-item { margin: 0; }
.sf-form .wpcf7-submit { background: #fff !important; color: var(--sf-plum) !important; border: 1px solid #fff !important; cursor: pointer; }
.sf-form .wpcf7-submit:hover { background: var(--sf-blush) !important; }
.sf-form .wpcf7-response-output { color: #fff; border-color: var(--sf-line-light) !important; grid-column: 1 / -1; }
@media (max-width: 689px) { .sf-form .sf-half { grid-column: 1 / -1; } }

/* =========================================================
   13. NAGŁÓWEK I STOPKA BLOCKSY
   ========================================================= */
#header [data-row] { background-color: var(--sf-plum) !important; border-bottom: 1px solid rgba(255,255,255,.18); }
#header, #header [data-row] {
  --theme-link-initial-color: #fff;
  --theme-link-hover-color: var(--sf-blush);
  --theme-link-active-color: var(--sf-blush);
  --theme-icon-color: #fff;
}
#header .ct-menu-link, #header .site-title a, #header .site-title { color: #fff !important; }
#header .ct-menu-link { font-family: var(--sf-sans) !important; font-weight: 400; font-size: 12px; letter-spacing: .22em; text-transform: uppercase; }
#header .site-title { font-size: 26px; letter-spacing: .08em; text-transform: uppercase; }
#header .site-description { font-family: var(--sf-serif); font-style: italic; color: rgba(255,255,255,.7); font-size: 13px; }
#header .ct-toggle svg, #header .ct-header-trigger svg { fill: #fff; }
#offcanvas .ct-panel-inner { background: var(--sf-plum); }
#offcanvas .ct-menu-link { color: #fff; font-family: var(--sf-sans) !important; font-size: 15px; letter-spacing: .2em; text-transform: uppercase; }

#footer, #footer [data-row] { background-color: var(--sf-plum) !important; color: rgba(255,255,255,.75); border-top: 1px solid rgba(255,255,255,.12); }
#footer a, #footer .ct-menu-link { color: #fff !important; }
#footer .ct-menu-link { font-family: var(--sf-sans) !important; text-transform: uppercase; letter-spacing: .2em; font-size: 12px; }
#footer .ct-footer-copyright { font-size: 12px; letter-spacing: .1em; }

/* =========================================================
   14. BLOG (archiwum Blocksy)
   ========================================================= */
.blog .hero-section, .archive .hero-section { background: var(--sf-plum); }
.blog .hero-section .page-title, .archive .hero-section .page-title { color: #fff; }
.entries .entry-card .entry-title a { color: var(--sf-ink); }
.entries .entry-card { border-radius: 0 !important; }

/* =========================================================
   15. RWD
   ========================================================= */
@media (max-width: 781px) {
  .sf-hide-mobile { display: none !important; }
  .sf-vertical { writing-mode: horizontal-tb; transform: none !important; font-size: 40px !important; }
  .sf-hline::after { display: none; }
  .sf-accent-break em { padding-left: 1.2em; }
  .sf-mobile-center { text-align: center; }
  .sf-collage > .wp-block-column:not(:first-child) { margin-top: 0 !important; }
  .sf-card { min-height: 460px !important; }
  .sf-cta .wp-block-columns { gap: 32px; }
}
@media (min-width: 782px) {
  .sf-hide-desktop { display: none !important; }
}

/* poprawki */
.sf-offer-title { --sf-line-w: 45%; }
.sf-testimonials .sf-heading-line { --sf-line-w: 40%; }

.sf-testimonials .sf-overlap-right { width: 55% !important; margin-left: 38% !important; margin-top: -32% !important; }
.sf-slider-nav { justify-content: flex-start; }
.sf-slider-nav > .wp-block-column { flex: 0 0 auto !important; width: auto !important; }
.sf-overlap-left { margin-left: -12% !important; }
.sf-offer-title { --sf-line-w: 28%; }
.sf-quote { padding-right: 10px; }

.sf-dark .wp-block-button.is-style-outline .wp-block-button__link { border-color: #fff !important; color: #fff !important; }
.sf-dark .wp-block-button.is-style-outline .wp-block-button__link:hover { background: #fff !important; color: var(--sf-plum) !important; }
.sf-testimonials .sf-overlap-right { width: 50% !important; margin-left: 30% !important; margin-top: -25% !important; }
.sf-testimonials .sf-collage > .wp-block-column:last-child { position: relative; z-index: 3; padding-left: 4%; }

.sf-offer-title { --sf-line-w: calc(100% - 4.2em); margin-bottom: 0 !important; }
.sf-offer-sub { margin-top: -.2em !important; font-size: clamp(24px, 2.6vw, 36px) !important; }

.sf-title-rule { padding-bottom: 22px; margin-bottom: 18px !important; border-bottom: 1px solid currentColor; border-bottom-color: rgba(127,127,127,.45); }

.sf-form select { color: #fff !important; -webkit-appearance: none; appearance: none; background-image: linear-gradient(45deg, transparent 50%, #fff 50%), linear-gradient(135deg, #fff 50%, transparent 50%) !important; background-position: calc(100% - 20px) 50%, calc(100% - 15px) 50% !important; background-size: 5px 5px !important; background-repeat: no-repeat !important; }
.sf-form a { color: var(--sf-blush) !important; text-decoration: underline; }
.sf-form ::placeholder { color: rgba(255,255,255,.6); }

/* odstępy tekst–zdjęcia, bez justowania */
.sf-justify { text-align: left !important; hyphens: manual !important; }
.sf-sec .wp-block-columns:not(.sf-cards):not(.sf-slider-nav) { column-gap: clamp(40px, 6vw, 96px) !important; }
@media (min-width: 782px) {
  .sf-hero .sf-hero-text { margin-left: 0 !important; }
  .sf-collage > .wp-block-column:has(h1, h2, p:not(.sf-vertical)) { padding-left: clamp(8px, 1.5vw, 24px); padding-right: clamp(8px, 1.5vw, 24px); }
}
.sf-sec h2 { font-size: clamp(32px, 3.8vw, 58px); }

.sf-hline::after { display: none !important; }

/* bez linii pod/za tekstem */
.sf-hline::after, .sf-hero .sf-hline::after { display: none !important; content: none !important; }
.sf-form select { height: auto !important; min-height: 50px; line-height: 1.4 !important; padding: 13px 40px 13px 16px !important; }

.sf-form input[type="text"], .sf-form input[type="email"], .sf-form input[type="tel"], .sf-form select { height: 52px !important; min-height: 52px; box-sizing: border-box; }
.sf-form .wpcf7-submit { opacity: 1 !important; }

/* mniejsze nagłówki */
h1, .sf-hero h1, .sf-hero-cover h1 { font-size: clamp(30px, 3vw, 48px) !important; line-height: 1.12 !important; }
h2, .sf-sec h2 { font-size: clamp(26px, 2.6vw, 42px) !important; line-height: 1.15 !important; }
.sf-cta h2 { font-size: clamp(30px, 3.2vw, 50px) !important; }
h3 { font-size: clamp(19px, 1.5vw, 23px) !important; line-height: 1.25 !important; }
.sf-card h3 { font-size: clamp(19px, 1.6vw, 24px) !important; }
.sf-steps h3 { font-size: 20px !important; word-break: normal; overflow-wrap: normal; hyphens: none; }
.sf-vertical { font-size: clamp(34px, 3.6vw, 56px) !important; }
.sf-step-num { font-size: clamp(40px, 4vw, 60px) !important; }
.sf-lead, .sf-offer-sub { font-size: clamp(18px, 1.6vw, 24px) !important; }
.single-post .entry-content h2 { font-size: clamp(22px, 2vw, 30px) !important; text-transform: none; }
.single-post .entry-title, .blog .page-title { font-size: clamp(28px, 3vw, 44px) !important; }

/* blog */
.entries .entry-card .entry-title { font-size: clamp(19px, 1.5vw, 23px) !important; text-transform: none !important; line-height: 1.3 !important; }
.entries .entry-card .ct-media-container img { aspect-ratio: 4/5; object-fit: cover; }
/* zdjęcie wyróżniające – nad tytułem wpisu */
.single-post article > .sf-featured { width: calc(100% - 2 * var(--content-edge-spacing, 24px)); max-width: 1100px; margin: 50px auto 0; }
.sf-featured img { width: 100%; height: auto; aspect-ratio: 16/10; max-height: 680px; object-fit: cover; display: block; }
.single-post article > .sf-featured + .hero-section { margin-top: 40px; }
.single-post .entry-title { text-transform: none !important; }

/* stopka */
#footer, #footer .ct-footer-copyright, #footer .ct-footer-copyright p { color: #fff !important; text-align: center !important; }
#footer [data-row] > .ct-container, #footer [data-row] > div { grid-template-columns: 1fr !important; justify-items: center !important; }
#footer [data-column] { justify-content: center !important; text-align: center !important; }
#footer .ct-footer-copyright { font-size: 13px; letter-spacing: .06em; }
#footer .ct-footer-copyright a { color: #fff !important; text-decoration: underline; text-underline-offset: 3px; }
#footer .sf-sep { opacity: .5; margin: 0 10px; }

/* sekcje z 4 kolumnami – karty zamiast linii */
.sf-title-rule { border: 0 !important; padding-bottom: 0 !important; margin-bottom: 8px !important; text-align: center; }
.sf-title-rule::after { content: ""; display: block; width: 48px; height: 1px; background: var(--sf-wine); margin: 22px auto 0; opacity: .7; }
.sf-dark .sf-title-rule::after { background: #fff; }
.sf-steps { counter-reset: sfstep; gap: 20px !important; }
.sf-steps > .wp-block-column { counter-increment: sfstep; border-top: 0 !important; background: var(--sf-blush); padding: 40px 30px 36px !important; text-align: center; transition: transform .4s ease, box-shadow .4s ease; }
.sf-steps > .wp-block-column:hover { transform: translateY(-6px); box-shadow: 0 24px 40px -28px rgba(49,10,34,.45); }
.has-background[style*="f4e3d7"] .sf-steps > .wp-block-column { background: #fff; }
.sf-steps > .wp-block-column:not(:has(.sf-step-num))::before { content: counter(sfstep, decimal-leading-zero); display: block; font-family: var(--sf-serif); font-style: italic; font-size: 44px; line-height: 1; color: var(--sf-wine); margin-bottom: 18px; }
.sf-steps .sf-step-num { color: var(--sf-wine); font-size: 44px !important; }
.sf-steps h3 { margin: 0 0 12px !important; }
.sf-steps p { margin: 0; }

.sf-sec .wp-block-columns.sf-steps:not(.sf-cards) { column-gap: 20px !important; }
.sf-steps p.sf-small, .sf-steps p { font-size: 15px; line-height: 1.7; }

/* =========== TABLET (<=1024) =========== */
@media (max-width: 1024px) {
  .sf-sec .wp-block-columns:not(.sf-slider-nav):not(.is-not-stacked-on-mobile):not(.sf-cards) { flex-wrap: wrap !important; }
  .sf-sec .wp-block-columns:not(.sf-slider-nav):not(.is-not-stacked-on-mobile):not(.sf-cards) > .wp-block-column { flex-basis: 100% !important; width: 100% !important; margin-left: 0 !important; }
  .sf-sec .wp-block-columns.sf-steps > .wp-block-column { flex-basis: calc(50% - 10px) !important; }
  .sf-sec .wp-block-columns.sf-cards { flex-wrap: wrap !important; }
  .sf-sec .wp-block-columns.sf-cards > .wp-block-column { flex-basis: calc(50% - 6px) !important; }
  .sf-card { min-height: 380px !important; }
  /* kolaże: zdjęcia obok siebie, mniejsze */
  .sf-sec .wp-block-column:has(> .wp-block-image + .wp-block-image) { display: flex !important; gap: 14px; align-items: flex-start; justify-content: center; }
  .sf-sec .wp-block-column:has(> .wp-block-image + .wp-block-image) > .wp-block-image { width: 50% !important; max-width: 300px; margin: 0 !important; }
  .sf-sec .wp-block-column:has(> .wp-block-image + .wp-block-image) > .wp-block-image:nth-of-type(2) { margin-top: 40px !important; }
  .sf-sec .wp-block-column > .wp-block-image:only-child, .sf-sec .wp-block-column > .wp-block-image:first-child:nth-last-child(2) { max-width: 420px; margin-left: auto !important; margin-right: auto !important; }
  .sf-sec .wp-block-image img { max-height: 520px; object-fit: cover; }
  .sf-down, .sf-down-s, .sf-down-l, .sf-up, .sf-overlap-left, .sf-overlap-right { margin-top: 0 !important; margin-left: 0 !important; }
  .sf-w-60, .sf-w-70 { width: auto !important; }
  .sf-hero .sf-hero-text, .sf-hero .sf-hero-right { padding-top: 0 !important; margin-left: 0 !important; }
  .sf-hero .sf-hero-right { display: none; }
  .sf-hero .wp-block-column:first-child .wp-block-image { max-width: 360px; margin: 0 auto !important; }
  .sf-hero-text, .sf-collage > .wp-block-column { text-align: left; }
  .sf-vline { border-left: 0; padding-left: 0 !important; }
  .sf-testimonials .wp-block-column.sf-hide-mobile { display: none !important; }
  .sf-testimonials .sf-line-left { text-align: left; }
  .sf-sec .wp-block-columns { row-gap: 40px !important; }
  .sf-sec .sf-arrow { margin-top: 20px; }
}
/* =========== MOBILE (<=600) =========== */
@media (max-width: 600px) {
  .sf-sec { padding-top: 64px !important; padding-bottom: 64px !important; }
  .sf-sec-sm { padding-top: 40px !important; padding-bottom: 40px !important; }
  .sf-sec .wp-block-columns.sf-steps > .wp-block-column { flex-basis: 100% !important; }
  .sf-sec .wp-block-columns.sf-cards > .wp-block-column { flex-basis: 100% !important; }
  .sf-card { min-height: 340px !important; }
  .sf-sec .wp-block-image img { max-height: 380px; }
  .sf-sec .wp-block-column > .wp-block-image:only-child { max-width: 300px; }
  .sf-hero .wp-block-column:first-child .wp-block-image { max-width: 260px; }
  .sf-hero .wp-block-column:first-child .wp-block-image img { max-height: 320px; }
  .sf-accent-break em { padding-left: .6em; }
  .sf-strip.wp-block-gallery.has-nested-images figure.wp-block-image { width: calc(33.33% - 4px) !important; flex-grow: 0; }
  .sf-portfolio.wp-block-gallery.has-nested-images figure.wp-block-image { width: calc(50% - 5px) !important; }
  .sf-cta .wp-block-image { display: none; }
  .wp-block-button__link { padding: 15px 28px !important; }
  .sf-quote p { font-size: 14px; }
}

/* RWD – dopracowanie */
@media (max-width: 1024px) {
  .sf-sec .wp-block-columns.sf-cards { flex-wrap: nowrap !important; }
  .sf-sec .wp-block-columns.sf-cards > .wp-block-column { flex: 1 1 0 !important; }
  .sf-card { min-height: 340px !important; padding: 16px !important; }
  .sf-card h3 { font-size: 18px !important; }
  .sf-arrow a, a.sf-arrow { font-size: 19px; }
  .sf-hero .wp-block-columns { flex-direction: column-reverse; }
  .sf-hero-text { text-align: center; }
  .sf-hero-text .wp-block-buttons { justify-content: center; }
  .sf-heading-line::after, .sf-offer-title::after { display: none !important; }
  .sf-offer-sub { text-align: left !important; }
  .sf-hero-cover .wp-block-column.sf-hide-mobile { display: none !important; }
  .sf-hero-cover { min-height: 60vh; display: flex; align-items: flex-end; }
}
@media (max-width: 600px) {
  body { font-size: 15px; }
  .sf-sec .wp-block-columns.sf-cards { overflow-x: auto; scroll-snap-type: x mandatory; gap: 10px !important; padding-bottom: 6px; scrollbar-width: none; margin-right: -20px; }
  .sf-sec .wp-block-columns.sf-cards::-webkit-scrollbar { display: none; }
  .sf-sec .wp-block-columns.sf-cards > .wp-block-column { flex: 0 0 78% !important; scroll-snap-align: start; }
  .sf-card { min-height: 380px !important; }
  .sf-sec .wp-block-columns.sf-steps > .wp-block-column { padding: 28px 22px !important; }
  .sf-steps > .wp-block-column:not(:has(.sf-step-num))::before, .sf-steps .sf-step-num { font-size: 34px !important; margin-bottom: 10px; }
  .sf-sec .wp-block-column:has(> .wp-block-image + .wp-block-image) > .wp-block-image:nth-of-type(2) { margin-top: 28px !important; }
  .sf-hero .wp-block-column:first-child .wp-block-image { max-width: 220px; }
  .sf-hero .wp-block-column:first-child .wp-block-image img { max-height: 270px; }
  .sf-hero h1 { font-size: 30px !important; }
  h1 { font-size: 30px !important; }
  h2, .sf-sec h2 { font-size: 27px !important; }
  .sf-cta h2 { font-size: 32px !important; }
  .sf-lead, .sf-offer-sub { font-size: 19px !important; }
  .sf-list li { padding: 8px 0 8px 24px; font-size: 15px; }
  .sf-price { font-size: 24px !important; }
  .sf-faq summary { font-size: 18px; }
  .sf-quote .sf-author { font-size: 16px; }
  .sf-form .wpcf7-form { grid-template-columns: 1fr; }
  #header .site-title { font-size: 19px; }
  .sf-portfolio.wp-block-gallery { gap: 6px !important; }
  .entries { gap: 24px; }
}

/* więcej powietrza między tekstem a zdjęciami (desktop) */
@media (min-width: 1025px) {
  .sf-hero .wp-block-columns, .sf-sec-sm .wp-block-columns:not(.sf-slider-nav), .alignfull .wp-block-columns:not(.sf-cards):not(.sf-slider-nav):not(.sf-steps) { column-gap: clamp(48px, 5vw, 96px) !important; }
  .wp-block-columns > .wp-block-column:not(:has(.wp-block-image)):has(h1, h2, p) { padding-left: clamp(8px, 1.5vw, 28px); padding-right: clamp(8px, 1.5vw, 28px); }
  .sf-hero .sf-hero-text { padding-left: clamp(16px, 2vw, 40px) !important; padding-right: clamp(16px, 2vw, 40px) !important; }
}

/* oferta: przy węższych ekranach tekst nad kafelkami */
@media (max-width: 1280px) {
  .wp-block-columns:has(> .sf-offer-intro) { flex-wrap: wrap !important; }
  .wp-block-columns:has(> .sf-offer-intro) > .wp-block-column { flex-basis: 100% !important; }
  .sf-offer-intro { max-width: 640px; }
}
.sf-hero-text p, .sf-collage p { max-width: 600px; }

/* nagłówki – rozmiar pośredni */
@media (min-width: 601px) {
  h1, .sf-hero h1, .sf-hero-cover h1 { font-size: clamp(36px, 3.7vw, 60px) !important; }
  h2, .sf-sec h2 { font-size: clamp(32px, 3.3vw, 52px) !important; }
  .sf-cta h2 { font-size: clamp(38px, 4vw, 62px) !important; }
  h3 { font-size: clamp(20px, 1.7vw, 26px) !important; }
  .sf-card h3 { font-size: clamp(20px, 1.8vw, 27px) !important; }
}
@media (max-width: 600px) {
  h1, .sf-hero h1 { font-size: 34px !important; }
  h2, .sf-sec h2 { font-size: 30px !important; }
  .sf-cta h2 { font-size: 36px !important; }
}

/* wyśrodkowanie w pionie kolumn tekstowych */
.sf-vline { display: flex !important; flex-direction: column; justify-content: center; align-self: stretch !important; padding-top: 40px !important; padding-bottom: 40px !important; }
.sf-vline > * { margin-top: 0; }
@media (min-width: 1025px) {
  .alignfull > .wp-block-columns > .wp-block-column:not(:has(.wp-block-image)) { align-self: center; }
  .alignfull > .wp-block-columns > .wp-block-column.sf-vline { align-self: stretch !important; }
}

.sf-example { font-family: var(--sf-sans); font-style: normal; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; opacity: .55; }
.sf-quote > p:first-child { font-family: var(--sf-serif); font-style: italic; font-size: clamp(18px, 1.6vw, 22px) !important; line-height: 1.6; color: #fff !important; }

.sf-slider > .sf-quote { padding-left: 16px !important; padding-right: 16px !important; box-sizing: border-box; }
.sf-slider-nav { padding-left: 16px; }

/* lightbox w kolorach marki */
.wp-lightbox-overlay .scrim { background-color: var(--sf-plum) !important; opacity: .96 !important; }
.wp-lightbox-overlay button, .wp-lightbox-overlay .close-button { color: #fff !important; fill: #fff !important; }
.wp-lightbox-overlay button svg { fill: #fff !important; }

/* kafelki oferty szersze */
.sf-sec .wp-block-columns.sf-cards { column-gap: 12px !important; gap: 12px !important; }
.sf-sec .wp-block-columns.sf-cards > .wp-block-column { padding: 0 !important; }
@media (min-width: 1281px) {
  .wp-block-columns:has(> .sf-offer-intro) > .sf-offer-intro { flex-basis: 24% !important; }
  .wp-block-columns:has(> .sf-offer-intro) > .wp-block-column:not(.sf-offer-intro) { flex-basis: 76% !important; }
}

.wp-block-button__link { white-space: nowrap; }
.sf-offer-intro .wp-block-button__link { padding: 16px 24px !important; letter-spacing: .16em !important; }

/* oferta: krawędzie równo z nagłówkiem i linią */
.wp-block-columns:has(> .sf-offer-intro) > .wp-block-column { padding-left: 0 !important; padding-right: 0 !important; }
.wp-block-columns:has(> .sf-offer-intro) > .sf-offer-intro { padding-right: 24px !important; }


/* ===== Blog – autor ukryty, tagi, nawigacja, podobne wpisy ===== */
.entry-meta .meta-author { display: none !important; }

.sf-post-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin-top: 50px; padding-top: 30px; border-top: 1px solid rgba(0,0,0,.1); }
.sf-post-tags .sf-label { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; opacity: .6; margin-right: 6px; }
.sf-post-tags a { font-size: 14px; padding: 6px 14px; border: 1px solid rgba(0,0,0,.15); border-radius: 999px; text-decoration: none; color: inherit; transition: background .2s, color .2s; }
.sf-post-tags a:hover { background: #1c1418; color: #fff; border-color: #1c1418; }

.sf-post-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 40px; padding: 30px 0; border-top: 1px solid rgba(0,0,0,.1); border-bottom: 1px solid rgba(0,0,0,.1); }
.sf-post-nav a { display: flex; flex-direction: column; gap: 6px; text-decoration: none; color: inherit; }
.sf-post-nav .sf-nav-next { text-align: right; grid-column: 2; }
.sf-post-nav .sf-nav-label { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; opacity: .6; }
.sf-post-nav .sf-nav-title { font-family: 'Playfair Display', serif; font-size: clamp(17px, 1.4vw, 21px); line-height: 1.3; }
.sf-post-nav a:hover .sf-nav-title { opacity: .7; }

.sf-related { margin-top: 70px !important; }
.sf-related-head { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin-bottom: 24px; }
.sf-related-head h2 { margin: 0 !important; }
.sf-related-arrows { display: flex; gap: 10px; }
.sf-related-arrows button { width: 46px; height: 46px; border-radius: 50%; border: 1px solid rgba(0,0,0,.2); background: transparent; color: inherit; font-size: 18px; cursor: pointer; transition: background .2s, color .2s; }
.sf-related-arrows button:hover { background: #1c1418; color: #fff; border-color: #1c1418; }
.sf-related-track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 48px) / 3); gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 4px; }
.sf-related-track::-webkit-scrollbar { display: none; }
.sf-rel-card { scroll-snap-align: start; }
.sf-rel-img { display: block; overflow: hidden; margin-bottom: 14px; }
.sf-rel-img img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; transition: transform .6s ease; }
.sf-rel-card:hover .sf-rel-img img { transform: scale(1.04); }
.sf-rel-date { font-size: 12px; letter-spacing: .12em; text-transform: uppercase; opacity: .6; margin-bottom: 6px; }
.sf-rel-card h3 { font-size: clamp(17px, 1.3vw, 20px) !important; line-height: 1.35; margin: 0 !important; text-transform: none !important; }
.sf-rel-card h3 a { text-decoration: none; color: inherit; }
@media (max-width: 999px) { .sf-related-track { grid-auto-columns: calc((100% - 24px) / 2); } }
@media (max-width: 689px) {
  .sf-related-track { grid-auto-columns: 80%; }
  .sf-post-nav { grid-template-columns: 1fr; }
  .sf-post-nav .sf-nav-next { grid-column: 1; }
  .single-post article > .sf-featured { margin-top: 24px; }
}


/* ==========================================================================
   Potęga przyjemności – poprawki 2026-11-03 (Claude)
   ========================================================================== */

/* Karty „Jak to działa” – równa wysokość (nadpisuje align-self:center dla kolumn bez obrazka) */
.sf-steps > .wp-block-column { align-self: stretch !important; }

/* FAQ – nagłówek u góry kolumny i przyklejony (sticky) podczas przewijania pytań */
.sf-faq-cols { align-items: flex-start !important; }
.sf-faq-cols > .sf-faq-head { align-self: flex-start !important; position: sticky; top: 150px; }
.admin-bar .sf-faq-cols > .sf-faq-head { top: 182px; }
.sf-faq-label { font-size: 11px; letter-spacing: .24em; text-transform: uppercase; color: var(--sf-wine); margin-bottom: 14px !important; }
.sf-dark .sf-faq-label { color: rgba(255,255,255,.75); }
@media (max-width: 781px) { .sf-faq-cols > .sf-faq-head { position: static; } }

/* Oferta – pasy działów Fotografia / Masaże */
.sf-band { text-align: center; scroll-margin-top: 120px; }
.sf-band-sub { max-width: 640px; margin-left: auto !important; margin-right: auto !important; }
.sf-dark.sf-band .sf-band-sub { color: rgba(255,255,255,.8); }
[id="fotografia"], [id="masaze"], span[id] { scroll-margin-top: 140px; }

/* Oferta – przełącznik Fotografia / Masaże: dwie równe karty */
.sf-switch > .wp-block-column { flex: 1 1 0 !important; }
.sf-switch .sf-card { min-height: clamp(320px, 32vw, 460px); }

/* Karty ofert na stronie głównej – równa wysokość w każdym rzędzie */
.sf-cards > .wp-block-column { display: flex; flex-direction: column; align-self: stretch !important; }
.sf-cards > .wp-block-column > .sf-card { flex: 1 1 auto; }

/* Kontakt – mniejsza przerwa nad formularzem, kolumny wyrównane do góry */
body.page-id-63 .sf-hline + .sf-sec-sm { padding-top: 0 !important; }
body.page-id-63 .sf-hline.sf-sec { padding-bottom: clamp(32px, 4vw, 60px) !important; }
body.page-id-63 .sf-sec-sm > .wp-block-columns > .wp-block-column { align-self: flex-start !important; }

/* Blog – przełącznik kategorii */
.sf-blog-cats { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin: 0 0 40px; padding: 0; list-style: none; }
.sf-blog-cats a { display: inline-block; padding: 10px 22px; border: 1px solid var(--sf-line-dark); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; text-decoration: none; color: var(--sf-ink); }
.sf-blog-cats a:hover, .sf-blog-cats a.is-active { background: var(--sf-plum); border-color: var(--sf-plum); color: #fff; }

/* FAQ – nagłówek nie łamie słów, mniejszy w wąskiej kolumnie (2026-11-03) */
.sf-faq-head h2, .sf-faq-cols h2 { font-size: clamp(30px, 3.2vw, 54px) !important; overflow-wrap: normal !important; word-break: normal !important; hyphens: none !important; margin-top: 0 !important; }
.sf-faq-head .sf-faq-label + h2 { margin-top: 0 !important; }

/* Nagłówki sekcji ofert (Fotografia / Masaże) – linia zaczyna się za tekstem, niezależnie od długości słowa (2026-11-03) */
.sf-offer-title.sf-heading-line { display: flex; align-items: center; gap: .35em; }
.sf-offer-title.sf-heading-line::after { position: static; flex: 1 1 auto; width: auto; margin-top: .1em; }

/* Rozwijane menu w nagłówku – bliżej pozycji menu i jaśniejsze tło niż nagłówek (2026-11-03) */
#header-menu-1 .sub-menu { top: 78px !important; background-color: var(--sf-plum-2) !important; box-shadow: 0 14px 30px rgba(0,0,0,.25); border-top: 1px solid rgba(255,255,255,.12); }
#header-menu-1 .sub-menu .ct-menu-link:hover { background-color: rgba(255,255,255,.06); }
