/*
Theme Name: Salonik Patrycja
Theme URI: https://www.patrycjasalon.com.pl/
Author: OpenAI
Description: Autorski, responsywny motyw editorial dla Saloniku Kosmetycznego Patrycja. Animowany baner z parallaxem i pokazem zdjęć, delikatne beże, kremy i akcenty oliwkowe. Kompatybilny z wtyczkami Cennik oraz Kontakt.
Version: 4.2.0
Requires at least: 6.0
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: salonik-patrycja
*/
:root {
  --ivory: #faf7f1;
  --canvas: #f5f0e8;
  --warm: #efe7db;
  --peach: #ddc8b5;
  --clay: #af8972;
  --olive: #686d52;
  --olive-dark: #4f553f;
  --ink: #37312b;
  --muted: #726d66;
  --line: rgba(65,52,39,.16);
  --serif: 'Iowan Old Style','Baskerville','Palatino Linotype',Georgia,serif;
  --sans: 'Avenir Next','Segoe UI',Arial,sans-serif;
  --wrap: 1260px;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--ivory); font: 400 16px/1.68 var(--sans); -webkit-font-smoothing: antialiased; }
body.nav-open { overflow: hidden; }
::selection { background: #d1c4aa; color: #26251f; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 4px; }
a:hover { color: var(--olive); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
img { max-width: 100%; height: auto; display: block; }
:focus-visible { outline: 2px solid var(--olive-dark); outline-offset: 3px; }
.wrap { width: min(calc(100% - 104px), var(--wrap)); margin: 0 auto; }
h1,h2,h3,h4 { font-family: var(--serif); font-weight: 400; letter-spacing: -.045em; line-height: 1.12; }
h1 { font-size: clamp(3.8rem, 6.3vw, 7rem); }
h2 { font-size: clamp(2.8rem, 4.4vw, 5.2rem); }
h3 { font-size: clamp(1.6rem, 2.2vw, 2.2rem); }
h2 em, h1 em, .quote-section em { font-style: italic; font-weight: 400; color: var(--olive); }
p { margin-top: 0; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.screen-reader-text:focus { top: 8px; left: 8px; z-index: 9999; width: auto; height: auto; padding: 12px; clip: auto; color: var(--ink); background: white; }
.eyebrow { font: 600 .7rem/1.5 var(--sans); color: var(--olive); letter-spacing: .24em; text-transform: uppercase; }
.eyebrow-with-line { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; }
.eyebrow-with-line::before { content: ''; width: 30px; height: 1px; margin-right: 10px; background: currentColor; }
.eyebrow-with-line span { font-size: 1rem; line-height: .7; color: var(--clay); }
.button, .wp-block-button__link { display: inline-flex; justify-content: center; align-items: center; gap: 25px; padding: 15px 23px 15px 25px; border-radius: 2px; text-decoration: none; font-size: .85rem; font-weight: 500; line-height: 1.4; letter-spacing: .02em; transition: transform .3s ease, background .3s ease, color .3s ease, border-color .3s ease; border: 1px solid transparent; }
.button:hover,.wp-block-button__link:hover { transform: translateY(-2px); }
.button span { font-size: 1.3rem; line-height: 1; }
.button-primary,.wp-block-button__link { background: var(--olive-dark); color: #fff; }
.button-primary:hover,.wp-block-button__link:hover { background: #353b2a; color: #fff; }
.button-outline { color: var(--ink); background: transparent; border-color: #9a988b; }
.button-outline:hover { color: white; background: var(--olive); border-color: var(--olive); }

/* Header */
.site-header { position: sticky; z-index: 90; top: 0; height: auto; min-height: max(112px, calc(var(--patrycja-header-logo-height, 140px) + 18px)); background: rgba(250,247,241,.97); border-bottom: 1px solid rgba(59,52,43,.09); transition: box-shadow .3s ease, background .3s ease; }
.site-header.scrolled { background: rgba(250,247,241,.94); box-shadow: 0 12px 38px rgba(55,46,31,.07); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); }
.header-inner { width: min(calc(100% - 104px), var(--wrap)); min-height: max(112px, calc(var(--patrycja-header-logo-height, 140px) + 18px)); height: auto; margin: auto; display: flex; align-items: center; gap: 24px; }
.brand { display: inline-flex; align-items: center; gap: 13px; text-decoration: none; color: var(--ink); white-space: nowrap; flex-shrink: 0; }
.brand:hover { color: var(--ink); }
.brand-logo { max-height: 65px; width: auto; max-width: 255px; object-fit: contain; }
.brand-logo-theme { display: block; width: auto; height: var(--patrycja-header-logo-height, 140px); max-height: none; max-width: min(100%, 300px); object-fit: contain; }
.brand-symbol { display: inline-flex; align-items: center; justify-content: center; color: var(--olive); }
.brand-symbol svg { width: 38px; height: 38px; }
.brand-writing { display: flex; flex-direction: column; gap: 1px; }
.brand-writing small { font: 500 .55rem/1.4 var(--sans); letter-spacing: .28em; color: var(--olive); }
.brand-writing strong { font: 400 2.1rem/.9 var(--serif); font-style: italic; letter-spacing: -.07em; }
.primary-nav { margin-left: auto; }
.primary-nav ul { margin: 0; padding: 0; display: flex; gap: clamp(14px,2.4vw,34px); list-style: none; align-items: center; }
.primary-nav a { text-decoration: none; font-size: .8rem; color: #48443e; white-space: nowrap; transition: color .2s ease; }
.primary-nav a:hover, .primary-nav .current-menu-item > a { color: var(--olive); }
.header-contact { display: inline-flex; align-items: center; gap: 22px; background: var(--olive); color: #fff; padding: 12px 18px; font-size: .8rem; text-decoration: none; border-radius: 2px; white-space: nowrap; margin-left: 12px; transition: background .2s ease; }
.header-contact:hover { background: var(--olive-dark); color: white; }
.menu-toggle { display: none; width: 44px; height: 44px; padding: 10px; background: transparent; border: 1px solid var(--line); }
.menu-toggle span { display: block; width: 100%; height: 1px; background: var(--ink); margin: 5px 0; }

/* Hero – full-bleed editorial slider with strong adjustable parallax */
.editorial-hero { --hero-shift: 0px; --copy-shift: 0px; position: relative; overflow: hidden; min-height: 660px; height: clamp(660px, calc(100svh - 112px), 900px); background: #e5d4c2; isolation: isolate; }
.hero-slides { position: absolute; inset: 0; overflow: hidden; z-index: 0; pointer-events: none; }
.hero-slide { position: absolute; inset: -13% 0; opacity: 0; transition: opacity 1.6s ease-in-out; transform: translate3d(0,var(--hero-shift),0); will-change: transform, opacity; }
.hero-slide.is-active { opacity: 1; z-index: 1; }
.hero-slide img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 43%; transform: none; }
.hero-slide.is-active img { animation: none; }

.hero-wash { position: absolute; z-index: 1; inset: 0; pointer-events: none; background: linear-gradient(90deg,rgba(247,241,230,.65) 0%,rgba(247,241,230,.38) 34%,rgba(247,241,230,.08) 67%,rgba(247,241,230,0) 100%); }
.hero-light { position: absolute; z-index: 1; width: 450px; height: 450px; border-radius: 100%; filter: blur(70px); pointer-events: none; opacity: .26; animation: dreamfloat 11s ease-in-out infinite alternate; }
.hero-light-one { left: -120px; top: 5%; background: #fff9ee; }
.hero-light-two { right: -150px; bottom: -220px; background: #ebdbc4; animation-duration: 14s; animation-delay: -4s; }
@keyframes dreamfloat { from { transform: translate3d(-15px,-12px,0); } to { transform: translate3d(25px,28px,0); } }
.hero-content { height: 100%; display: flex; align-items: center; position: relative; z-index: 3; padding-bottom: 50px; }
.hero-copy { max-width: 680px; transform: translate3d(0,var(--copy-shift),0); }
.hero-copy h1 { max-width: 695px; font-size: clamp(3.5rem, 6.15vw, 7rem); line-height: 1.02; letter-spacing: -.062em; margin: 30px 0 25px; color: #38342c; text-wrap: balance; text-shadow: 0 1px 0 rgba(255,255,255,.15); }
.hero-copy p { max-width: 440px; font-size: clamp(.94rem, 1.15vw, 1.09rem); line-height: 1.85; color: #4b493e; margin: 0 0 31px; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 28px; }
.hero-text-link { text-decoration: none; font-size: .83rem; border-bottom: 1px solid rgba(55,49,43,.55); padding: 4px 0; }
.hero-text-link span { display: inline-block; margin-left: 12px; transition: transform .2s; }
.hero-text-link:hover span { transform: translateX(4px); }
.hero-side-label { position: absolute; right: 24px; top: 50%; transform: translateY(-50%); writing-mode: vertical-rl; letter-spacing: .25em; font-size: .61rem; font-weight: 600; color: #6c6558; }
.hero-side-label span { margin-top: 15px; font-size: 1.2rem; color: var(--olive); }
.hero-controls { display: flex; align-items: center; justify-content: space-between; position: absolute; z-index: 4; bottom: 43px; left: 50%; transform: translateX(-50%); pointer-events: none; }
.hero-progress,.hero-arrows { display: flex; align-items: center; gap: 16px; pointer-events: auto; }
.hero-current,.hero-total { font: 500 .72rem/1 var(--sans); letter-spacing: .04em; }
.hero-total { color: #77736b; }
.hero-progress-track { width: 100px; height: 1px; display: block; background: rgba(76,71,58,.45); overflow: hidden; }
.hero-progress-bar { display: block; height: 100%; width: 0; background: var(--olive-dark); }
.hero-arrow { width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(56,52,44,.55); display: inline-grid; place-content: center; background: rgba(250,247,241,.25); color: var(--ink); font-size: 1.1rem; backdrop-filter: blur(4px); transition: all .2s; }
.hero-arrow:hover { color: #fff; background: var(--olive); border-color: var(--olive); }
.hero-scroll-cue { position: absolute; right: 50%; transform: translateX(50%); bottom: 35px; display: flex; align-items: center; flex-direction: column; gap: 7px; color: rgba(57,53,44,.65); font-size: .54rem; letter-spacing: .22em; }
.scroll-line { height: 25px; width: 1px; background: rgba(71,61,48,.5); }

/* Intro ribbon */
.intro-band { background: #4f5948; color: #f8f5ec; }
.intro-band-inner { min-height: 68px; display: flex; align-items: center; justify-content: space-between; gap: 30px; text-align: center; }
.intro-band-inner > span:not(.intro-band-asterisk) { font: 500 .61rem/1.4 var(--sans); letter-spacing: .23em; }
.intro-band-asterisk { font-size: 1.7rem; color: #d7d6b5; }
.intro-dot { padding: 0 6px; }

/* Sections */
.section { padding: 118px 0 108px; }
.section-title-row { display: flex; justify-content: space-between; gap: 80px; align-items: end; padding-bottom: 49px; border-bottom: 1px solid var(--line); margin-bottom: 34px; }
.section-title-row h2 { margin: 20px 0 0; max-width: 750px; }
.section-title-row p { max-width: 320px; color: var(--muted); font-size: .91rem; line-height: 1.82; padding-bottom: 5px; margin: 0; }
.services-section { background: var(--ivory); }
.services-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 23px; }
.service-card { text-decoration: none; color: var(--ink); display: block; }
.service-card:hover { color: var(--ink); }
.service-picture { overflow: hidden; aspect-ratio: 1 / 1.02; background: var(--warm); position: relative; }
.service-picture img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s cubic-bezier(.2,.8,.2,1); }
.service-card:hover .service-picture img { transform: scale(1.07); }
.service-index { position: absolute; top: 18px; left: 19px; background: rgba(250,247,241,.86); color: var(--ink); border-radius: 100%; display: grid; place-items: center; width: 41px; height: 41px; font: 500 .75rem var(--sans); }
.service-bottom { padding: 19px 0 0; display: flex; justify-content: space-between; align-items: center; gap: 15px; }
.service-subline { font-size: .63rem; letter-spacing: .15em; color: var(--olive); }
.service-card h3 { font-size: clamp(1.5rem, 2.2vw, 2rem); margin: 8px 0 0; }
.round-arrow { font-size: 1.4rem; border: 1px solid var(--line); width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; flex-shrink: 0; transition: all .25s ease; }
.service-card:hover .round-arrow { background: var(--olive); color: white; transform: rotate(45deg); }
.center-action { display: flex; justify-content: center; margin-top: 64px; }

/* Editorial feature */
.statement-section { background: var(--canvas); padding: 105px 0; }
.statement-container { display: grid; grid-template-columns: 1fr .85fr; align-items: center; gap: clamp(70px,9vw,135px); }
.statement-photo { position: relative; min-height: 570px; }
.statement-photo img { width: 100%; height: 570px; object-fit: cover; object-position: 50% 50%; }
.floating-stamp { position: absolute; bottom: 30px; right: -43px; width: 134px; height: 134px; border-radius: 50%; background: #e6d9c7; border: 1px solid #f5f0e8; display: grid; place-content: center; text-align: center; line-height: 1.9; letter-spacing: .13em; font-size: .49rem; transform: rotate(-15deg); box-shadow: 0 6px 30px #352d2114; }
.floating-stamp b { font-size: 1.5rem; font-weight: 400; }
.statement-copy h2 { margin: 17px 0 28px; }
.statement-copy p { color: var(--muted); font-size: .98rem; line-height: 1.9; margin-bottom: 15px; }
.underlined-link { display: inline-flex; gap: 50px; align-items: center; font-size: .79rem; font-weight: 600; text-decoration: none; padding-bottom: 10px; border-bottom: 1px solid var(--ink); margin-top: 28px; transition: gap .2s; }
.underlined-link:hover { gap: 60px; }
.quote-section { padding: 114px 0 110px; text-align: center; background: #e9ddd1; }
.quote-section .wrap { max-width: 900px; }
.quote-mark { font: 5rem/1 var(--serif); color: #a8967f; margin-top: 15px; height: 45px; }
.quote-section p { font: 400 clamp(2.15rem,4.3vw,4.5rem)/1.2 var(--serif); letter-spacing: -.04em; margin: 23px 0; }
.quote-ornament { font-size: 2rem; color: var(--olive); }
.contact-invite { padding: 105px 0; background: var(--ivory); }
.contact-invite-inner { display: grid; grid-template-columns: 1.4fr .6fr; gap: 85px; align-items: center; }
.contact-invite h2 { max-width: 690px; margin: 20px 0 22px; }
.contact-invite p { max-width: 470px; color: var(--muted); line-height: 1.8; margin-bottom: 28px; }
.contact-details { border-left: 1px solid var(--line); padding-left: 58px; display: flex; flex-direction: column; align-items: flex-start; }
.contact-detail-overline { font-size: .63rem; color: var(--olive); letter-spacing: .23em; margin-bottom: 15px; }
.contact-details strong { font: 400 2rem var(--serif); letter-spacing: -.035em; }
.contact-details > span:nth-child(3) { color: var(--muted); font-size: .85rem; }
.contact-details hr { width: 100%; height: 1px; background: var(--line); border: 0; margin: 37px 0; }
.contact-details a { text-decoration: none; font: 400 1.65rem var(--serif); border-bottom: 1px solid var(--line); }
.contact-details a span { font-size: 1rem; }
.home-custom-content { padding: 45px 0; }

/* Footer */
/* Footer only: explicit background-color supports customizer HEX and preserves any decorative image overlay. */
.site-footer { background-color: var(--patrycja-footer-background, #b8cab9); color: var(--patrycja-footer-foreground, #283c31); }
.footer-top { padding: 88px 0 87px; display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(0, .78fr) minmax(0, 1fr); column-gap: 65px; }
.footer-brand { max-width: 100%; min-width: 0; }
.footer-logo { width: min(100%, var(--patrycja-footer-logo-width, 380px)); max-width: 100%; height: auto; margin: 0 0 22px; display: block; object-fit: contain; }
.footer-eyebrow { display: block; letter-spacing: .28em; font-size: .65rem; color: #c4c4a7; }
.footer-title { display: block; margin: 10px 0 17px; font: italic 400 4.7rem/.95 var(--serif); letter-spacing: -.08em; }
.footer-star { font: 2rem var(--serif); color: #c5c7a9; margin-left: 13px; }
.footer-brand p { max-width: 310px; color: inherit; opacity: .85; font-size: .83rem; line-height: 1.9; }
.footer-column { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.footer-column h3 { font: 400 1.55rem/1.3 var(--serif); margin: 3px 0 20px; }
.footer-column address { font-style: normal; max-width: 245px; }
.footer-column a { color: inherit; text-decoration: none; font-size: .86rem; }
.footer-column a:hover { color: inherit; opacity: .78; }
.footer-bottom { border-top: 1px solid currentColor; display: flex; justify-content: space-between; gap: 25px; padding: 22px 0 28px; font-size: .72rem; letter-spacing: .08em; color: inherit; opacity: .72; }

/* Interior pages, Gutenberg and existing plugins */
.interior-main { min-height: 48vh; }
.interior-hero { padding: 95px 0 80px; background: var(--warm); position: relative; overflow: hidden; }
/* An SVG, not a font glyph: the starburst stays identical in Safari/iOS, Chrome and desktop. */
.interior-hero::after { content: ''; display: block; width: 310px; height: 310px; position: absolute; right: 8%; top: -60px; pointer-events: none; opacity: .12; background: url('assets/starburst.svg') center / contain no-repeat; }
.interior-hero h1 { font-size: clamp(3.5rem,7vw,6.7rem); margin: 18px 0 0; max-width: 900px; }
.interior-star { display: none; }
.page-content { padding: 75px 0 110px; }
.page-content .entry-content { max-width: 1050px; margin: 0 auto; }
.page-content-full { padding-top: 45px; }
.page-content-full .entry-content { max-width: none; }
.page-featured-image { width: 100%; height: auto; max-height: 460px; object-fit: cover; margin-bottom: 40px; }
.entry-content h2,.entry-content h3 { margin-top: 1.5em; }
.entry-content p { color: #605e56; }
.entry-content a:not(.button) { color: var(--olive-dark); }
.entry-content .wp-block-group.alignwide { max-width: 1200px; margin-left: auto; margin-right: auto; }
.entry-content .wp-block-image img { border-radius: 0; }
.post-preview { border-bottom: 1px solid var(--line); padding-bottom: 35px; margin-bottom: 35px; }
.post-preview h2 { margin-bottom: 10px; font-size: 2.5rem; }
.post-preview h2 a { text-decoration: none; }
.muted { color: var(--muted); }
/* Pricing plugin */
.patrycja-pricelist { padding: 0 0 40px; }
.patrycja-pricelist .price-category { font-size: clamp(2rem,3vw,3.1rem); color: var(--ink); margin: 65px 0 18px; letter-spacing: -.045em; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.patrycja-pricelist .price-category:first-child { margin-top: 0; }
.patrycja-pricelist .price-list { width: 100%; border-collapse: collapse; }
.patrycja-pricelist .price-list th { font: 600 .7rem var(--sans); letter-spacing: .18em; color: var(--olive); text-transform: uppercase; text-align: left; padding: 10px 16px 17px 0; }
.patrycja-pricelist .price-list td { padding: 19px 16px 19px 0; border-top: 1px solid var(--line); vertical-align: top; font-size: .91rem; }
.patrycja-pricelist .price-list td strong { font-weight: 500; }
.patrycja-pricelist .price-list td:last-child,.patrycja-pricelist .price-list th:last-child { padding-right: 0; text-align: right; white-space: nowrap; font-weight: 600; }
.patrycja-pricelist .price-list tbody tr:hover { background: rgba(234,225,212,.34); }
/* Contact map plugin (retains its own stylesheet) */
.pkm-contact { max-width: 100%; }
.pkm-contact h1 { font-size: clamp(2.6rem,4.7vw,5rem); }
/* Reveal */
.has-js .reveal { opacity: 0; transform: translateY(28px); transition: opacity .85s ease, transform .85s cubic-bezier(.19,1,.22,1); }
.has-js .reveal.is-visible { opacity: 1; transform: none; }

@media (max-width: 1120px) {
  .wrap,.header-inner { width: min(calc(100% - 64px), var(--wrap)); }
  .header-inner { gap: 15px; }
  .brand-writing strong { font-size: 1.75rem; }
  .brand-writing small { font-size: .46rem; }
  .primary-nav ul { gap: 16px; }
  .hero-copy { max-width: 600px; }
  .hero-copy h1 { font-size: clamp(3.8rem,6.3vw,6rem); }
  .statement-container { gap: 65px; }
  .footer-top { gap: 40px; }
}
@media (max-width: 900px) {
  .header-inner,.wrap { width: min(calc(100% - 44px),var(--wrap)); }
  .site-header { height: 88px; min-height: 88px; }
  .header-inner { height: 88px; min-height: 88px; }
  .menu-toggle { display: block; order: 3; margin-left: 0; }
  .brand-logo-theme { height: min(var(--patrycja-header-logo-height, 140px), 68px); max-width: min(100%, 240px); }
  .primary-nav { display: none; position: absolute; top: 88px; left: 0; right: 0; background: var(--ivory); padding: 25px; box-shadow: 0 13px 15px #302a221b; margin: 0; max-height: calc(100vh - 88px); overflow-y: auto; }
  .primary-nav.is-open { display: block; }
  .primary-nav ul { flex-direction: column; align-items: flex-start; gap: 19px; }
  .primary-nav a { font-size: 1rem; }
  .header-contact { margin-left: auto; }
  .editorial-hero { height: 690px; min-height: 690px; }
  .hero-copy h1 { font-size: clamp(3.5rem,7.4vw,5.7rem); }
  .hero-side-label,.hero-scroll-cue { display: none; }
  .section-title-row { gap: 30px; }
  .statement-container { gap: 43px; }
  .statement-photo,.statement-photo img { height: 450px; min-height: 450px; }
  .contact-invite-inner { gap: 38px; }
  .contact-details { padding-left: 34px; }
}
@media (max-width: 700px) {
  .header-contact { display: none; }
  .menu-toggle { margin-left: auto; }
  .brand-symbol { font-size: 2.15rem; }
  .brand-writing strong { font-size: 1.82rem; }
  .brand-logo-theme { height: min(var(--patrycja-header-logo-height, 140px), 56px); max-width: min(100%, 190px); }
  .editorial-hero { min-height: 715px; height: min(780px, 100svh + 60px); }
  .hero-slides { inset: 0; }
  .hero-slide { inset: -9% 0; }
  .hero-slide img { object-position: 65% 40%; }
  .hero-wash { background: linear-gradient(180deg,rgba(248,242,229,.88) 0%,rgba(248,242,229,.76) 45%,rgba(248,242,229,.04) 87%); }
  .hero-content { align-items: flex-start; padding-top: 90px; padding-bottom: 160px; }
  .hero-copy { max-width: 98%; }
  .hero-copy h1 { font-size: clamp(3.4rem,13.4vw,5.7rem); margin: 21px 0 19px; }
  .hero-copy p { font-size: .94rem; line-height: 1.62; max-width: 370px; margin-bottom: 24px; }
  .hero-actions { gap: 15px; }
  .hero-actions .button { padding: 14px 17px; }
  .hero-controls { bottom: 21px; }
  .hero-progress-track { width: 64px; }
  .hero-arrow { width: 36px; height: 36px; }
  .intro-band-inner { justify-content: center; min-height: 68px; }
  .intro-band-inner > span:first-child { display: none; }
  .intro-band-asterisk { font-size: 1.25rem; }
  .intro-band-inner > span:not(.intro-band-asterisk) { font-size: .53rem; }
  .section { padding: 78px 0 76px; }
  .section-title-row { display: block; margin-bottom: 30px; padding-bottom: 30px; }
  .section-title-row h2 { font-size: clamp(2.8rem, 10vw, 4rem); }
  .section-title-row p { margin-top: 20px; }
  .services-grid { grid-template-columns: 1fr; gap: 44px; }
  .service-picture { aspect-ratio: 1.4; }
  .service-card h3 { font-size: 1.8rem; }
  .center-action { margin-top: 45px; }
  .statement-section { padding: 75px 0 90px; }
  .statement-container { grid-template-columns: 1fr; gap: 68px; }
  .statement-photo,.statement-photo img { min-height: 385px; height: 385px; }
  .floating-stamp { right: -10px; bottom: -52px; }
  .statement-copy h2 { font-size: clamp(2.8rem,10vw,4rem); }
  .quote-section { padding: 80px 0; }
  .contact-invite { padding: 80px 0; }
  .contact-invite-inner { grid-template-columns: 1fr; gap: 58px; }
  .contact-details { padding-left: 25px; }
  .footer-top { padding: 70px 0 55px; grid-template-columns: 1fr; row-gap: 36px; }
  .footer-title { font-size: 4rem; }
  .footer-bottom { flex-direction: column; gap: 6px; }
  .interior-hero { padding: 70px 0 60px; }
  .interior-hero::after { width: 180px; height: 180px; right: -35px; top: 12px; }
  .interior-hero h1 { font-size: 3.4rem; }
  .page-content { padding: 50px 0 70px; }
  .patrycja-pricelist .price-list td { font-size: .83rem; padding: 14px 6px 14px 0; }
  .patrycja-pricelist .price-list td:last-child { min-width: 85px; }
}
@media (max-width: 385px) {
  .wrap,.header-inner { width: calc(100% - 34px); }
  .hero-copy h1 { font-size: 3.2rem; }
  .hero-actions { gap: 12px; }
  .hero-text-link { font-size: .74rem; }
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
  .has-js .reveal { opacity: 1 !important; transform: none !important; }
  .hero-slide,.hero-slide img,.hero-copy { transform: none !important; }
}

/* 2.3: automatic CSS slideshow works even when a JS plugin breaks theme JS.
   JS takes over only after it successfully initializes. */
@media (prefers-reduced-motion: no-preference) {
  .hero-slides:not(.is-js-slider) .hero-slide { z-index: 0; opacity: 0; animation: patrycja-autoslide 15s linear infinite; }
  .hero-slides:not(.is-js-slider) .hero-slide:nth-child(1) { animation-delay: 0s; }
  .hero-slides:not(.is-js-slider) .hero-slide:nth-child(2) { animation-delay: -10s; }
  .hero-slides:not(.is-js-slider) .hero-slide:nth-child(3) { animation-delay: -5s; }
  @keyframes patrycja-autoslide {
    0%, 29% {opacity: 1}
    34%, 95% {opacity: 0}
    100% {opacity: 1}
  }
}
.hero-slides.is-js-slider .hero-slide { animation: none; }
.hero-slides.is-js-slider .hero-slide.is-active {opacity:1; z-index:1}
@media (prefers-reduced-motion: reduce) {
  .hero-slides.is-js-slider .hero-slide { transition-duration: .01ms !important; }
}

/* 2.4: Obrazy zawsze nad tłem banera; pozostałe warstwy nad zdjęciami. */
.editorial-hero .hero-slides { z-index: 0; }
.editorial-hero .hero-wash, .editorial-hero .hero-light { z-index: 1; }
.editorial-hero .hero-content { z-index: 3; }
.editorial-hero .hero-slide.is-active { visibility: visible; }

/* 2.5: conscious per-site opt-in for testing parallax if OS says reduce motion.
   Default behavior remains accessible. The JS respects this same override. */
@media (prefers-reduced-motion: reduce) {
  .editorial-hero[data-force-motion="true"] .hero-slide {
    transform: translate3d(0, var(--hero-shift), 0) !important;
  }
  .editorial-hero[data-force-motion="true"] .hero-copy {
    transform: translate3d(0, var(--copy-shift), 0) !important;
  }
  .editorial-hero[data-force-motion="true"] .hero-slide.is-active img {
    animation: none !important;
  }
  .editorial-hero[data-force-motion="true"] .hero-slide {
    transition: opacity 1.6s ease-in-out !important;
  }
}

/* v2.6: scroll position is animated only by RAF; keep transforms compositor-friendly. */
.editorial-hero .hero-slide, .editorial-hero .hero-copy { backface-visibility: hidden; }

/* v2.7: kontrola kadrowania — bez przybliżania Ken Burns. */
.editorial-hero .hero-slide img { transform: none !important; animation: none !important; }
.editorial-hero[data-image-fit="contain"] .hero-slide { inset: 0; transform: none !important; background: #e8dfd3; }
.editorial-hero[data-image-fit="contain"] .hero-slide img { object-fit: contain; object-position: center center; }
.editorial-hero[data-image-fit="contain"] .hero-slides { background: #e8dfd3; }
/* W trybie pełnego zdjęcia animujemy niewidoczną warstwę pod obrazem: bez przycinania jego krawędzi. */
.offer-intro { padding: 72px 0 32px; max-width: 920px; }
.offer-intro p { color: var(--muted); font-size: 1.05rem; line-height: 1.8; }
.offer-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; padding: 18px 0 75px; }
.offer-tile { background: #f5f0e8; border: 1px solid var(--line); padding: 31px; min-height: 235px; }
.offer-tile .eyebrow { font-size: .64rem; }
.offer-tile h2 { font-size: clamp(1.55rem,2.3vw,2.2rem); margin: 25px 0 12px; }
.offer-tile p { color: var(--muted); font-size: .93rem; }
.offer-bottom { background: var(--warm); padding: 56px 0; }
.offer-bottom .wrap { display:flex; justify-content:space-between; gap:24px; align-items:center; }
.offer-bottom h2 { font-size: clamp(1.8rem,3vw,2.9rem); margin: 0; }
@media(max-width: 850px) { .offer-grid {grid-template-columns: repeat(2,minmax(0,1fr));} }
@media(max-width: 600px) { .offer-grid {grid-template-columns: 1fr;} .offer-bottom .wrap {flex-direction:column;align-items:flex-start;} }


/* V2.8 — animowane podmenu „Oferta”: desktop + urządzenia dotykowe. */
.primary-nav .menu-item-has-children { position: relative; display: flex; align-items: center; gap: 3px; }
.primary-nav .menu-item-has-children > a { display: inline-flex; align-items: center; min-height: 40px; }
.primary-nav .submenu-toggle { display: inline-grid; place-items: center; width: 31px; height: 34px; border: 0; border-radius: 50%; background: transparent; color: var(--olive-dark); flex-shrink: 0; transition: background .25s ease; }
.primary-nav .submenu-toggle:hover, .primary-nav .submenu-toggle:focus-visible { background: rgba(104,109,82,.12); }
.primary-nav .submenu-toggle::after { content: ''; width: 7px; height: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .28s cubic-bezier(.2,.8,.2,1); }
.primary-nav .menu-item-has-children.is-expanded > .submenu-toggle::after { transform: translateY(2px) rotate(225deg); }
.primary-nav .sub-menu {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px 13px;
  position: absolute; top: calc(100% + 4px); left: 50%; z-index: 110;
  width: min(510px, calc(100vw - 42px)); margin: 0; padding: 22px 22px 20px;
  list-style: none; background: rgba(250,247,241,.99); border: 1px solid rgba(104,109,82,.19);
  box-shadow: 0 22px 48px rgba(46,43,33,.17); border-radius: 4px;
  opacity: 0; visibility: hidden; pointer-events: none;
  transform: translate(-50%, 12px);
  transition: opacity .3s ease, transform .34s cubic-bezier(.2,.75,.2,1), visibility .3s;
}
.primary-nav .sub-menu::before { content: 'ZABIEGI I PIELĘGNACJA'; display: block; grid-column: 1 / -1; margin: 0 0 9px; padding: 0 8px 11px; border-bottom: 1px solid rgba(104,109,82,.2); color: var(--olive); font: 600 .6rem/1.4 var(--sans); letter-spacing: .2em; }
.primary-nav .sub-menu li { display: block; min-width: 0; }
.primary-nav .sub-menu a { display: flex; align-items: center; gap: 10px; min-height: 39px; padding: 7px 9px; white-space: normal; font-size: .78rem; line-height: 1.4; color: var(--ink); border-radius: 3px; transition: background .24s ease, color .24s ease, padding-left .24s ease; }
.primary-nav .sub-menu a::before { content: '↗'; color: var(--olive); font-size: .9rem; flex-shrink: 0; }
.primary-nav .sub-menu a:hover, .primary-nav .sub-menu .current-menu-item > a { background: #eee9dd; color: var(--olive-dark); padding-left: 13px; }
.primary-nav .menu-item-has-children.is-expanded > .sub-menu { opacity: 1; visibility: visible; pointer-events: auto; transform: translate(-50%, 0); }
@media (min-width: 901px) and (hover: hover) {
  .primary-nav .menu-item-has-children:hover > .sub-menu,
  .primary-nav .menu-item-has-children:focus-within > .sub-menu { opacity: 1; visibility: visible; pointer-events: auto; transform: translate(-50%, 0); }
  .primary-nav .menu-item-has-children:hover > .submenu-toggle::after,
  .primary-nav .menu-item-has-children:focus-within > .submenu-toggle::after { transform: translateY(2px) rotate(225deg); }
  /* Podmenu nie znika podczas ruchu kursora z pozycji „Oferta” do panelu. */
  .primary-nav .sub-menu::after { content: ''; position: absolute; top: -13px; left: 0; right: 0; height: 13px; }
}
@media (max-width: 900px) {
  .primary-nav .menu-item-has-children { flex-wrap: wrap; width: 100%; justify-content: space-between; gap: 0; }
  .primary-nav .menu-item-has-children > a { flex: 1; min-height: 42px; }
  .primary-nav .submenu-toggle { width: 44px; height: 42px; background: rgba(104,109,82,.08); }
  .primary-nav .sub-menu {
    position: static; display: grid; grid-template-columns: 1fr; flex-basis: 100%;
    width: 100%; max-height: 0; overflow: hidden;
    margin: 0; padding: 0 0 0 10px; gap: 0; border: 0; border-left: 1px solid rgba(104,109,82,.26);
    box-shadow: none; border-radius: 0; background: #f6f1e8;
    opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(-7px);
    transition: max-height .45s cubic-bezier(.2,.7,.2,1), padding .36s ease, opacity .32s ease, transform .36s ease, visibility .36s;
  }
  .primary-nav .sub-menu::before { font-size: .58rem; margin: 0 0 4px; padding: 11px 10px; }
  .primary-nav .sub-menu a { font-size: .91rem; min-height: 43px; padding: 9px 10px; }
  .primary-nav .menu-item-has-children.is-expanded > .sub-menu {
    max-height: 950px; padding: 4px 0 15px 10px;
    opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0);
  }
}
@media (prefers-reduced-motion: reduce) {
  .primary-nav .sub-menu, .primary-nav .submenu-toggle::after { transition-duration: .01ms !important; }
}

/* Editorial 3.3 – voucher podarunkowy */
.voucher-section{position:relative;overflow:hidden;background:linear-gradient(115deg,#f3ede2 0%,#f9f6ef 49%,#e6e2d4 100%);padding:clamp(76px,9vw,136px) 0}
.voucher-section:before{content:"";position:absolute;inset:-15% auto auto -9%;width:420px;aspect-ratio:1;border:1px solid rgba(104,109,82,.13);border-radius:50%;pointer-events:none}
.voucher-layout{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(32px,6vw,105px)}
.voucher-copy{position:relative;z-index:2}
.voucher-copy h2{font:400 clamp(2.7rem,5vw,5.1rem)/1.08 var(--serif);letter-spacing:-.045em;margin:20px 0 27px;max-width:700px}
.voucher-copy h2 em{color:var(--olive);font-weight:400}
.voucher-copy p{max-width:540px;color:var(--muted);line-height:1.85;margin:0 0 14px}
.voucher-copy .voucher-note{margin:0 0 30px;color:var(--ink)}
.voucher-art{position:relative;min-height:390px;display:grid;place-items:center;isolation:isolate}
.voucher-art-glow{position:absolute;inset:8% 2%;background:radial-gradient(ellipse at center,rgba(104,109,82,.20),transparent 64%);filter:blur(14px);z-index:-1}
.voucher-ticket{position:relative;width:min(100%,500px);aspect-ratio:1.48;min-height:255px;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(20px,3.2vw,38px);background:linear-gradient(135deg,#f9f6ee 0%,#e6e4d6 100%);border:1px solid rgba(104,109,82,.38);box-shadow:0 32px 60px rgba(64,55,42,.16),0 6px 13px rgba(64,55,42,.09);transform:rotate(-5deg);transition:transform .55s ease,box-shadow .55s ease}
.voucher-art:hover .voucher-ticket{transform:rotate(-2deg) translateY(-8px);box-shadow:0 37px 65px rgba(64,55,42,.19)}
.voucher-ticket:before{content:"";position:absolute;inset:9px;border:1px solid rgba(104,109,82,.24);pointer-events:none}
.voucher-ticket-top,.voucher-ticket-bottom{display:flex;justify-content:space-between;gap:14px;align-items:center;font-size:.62rem;letter-spacing:.2em;color:var(--olive-dark)}
.voucher-ticket-top span:first-child{max-width:82%;line-height:1.45}
.voucher-ticket-main{text-align:center;display:grid;justify-items:center;gap:6px}
.voucher-ticket-kicker{font-size:.56rem;letter-spacing:.23em;color:var(--muted)}
.voucher-ticket-main strong{font:400 clamp(2.4rem,4.5vw,4.5rem)/.99 var(--serif);letter-spacing:-.04em;color:var(--ink)}
.voucher-ticket-main strong em{font-weight:400;font-size:.73em;color:var(--olive)}
.voucher-ticket-rule{display:block;width:72px;height:1px;background:var(--olive);margin:10px auto 4px}
.voucher-sparkle{position:absolute;color:rgba(104,109,82,.56);font:normal 40px var(--serif)}
.voucher-sparkle-one{top:7%;right:9%}.voucher-sparkle-two{bottom:7%;left:3%}
@media(max-width:850px){.voucher-layout{grid-template-columns:1fr;gap:30px}.voucher-art{min-height:320px}.voucher-ticket{max-width:470px}}
@media(max-width:480px){.voucher-section{padding:65px 0}.voucher-art{min-height:255px}.voucher-ticket{min-height:220px}.voucher-copy h2{font-size:clamp(2.3rem,10vw,3.4rem)}.voucher-ticket-main strong{font-size:clamp(2.2rem,10vw,3.4rem)}}
@media(prefers-reduced-motion:reduce){.voucher-ticket{transition:none}.voucher-art:hover .voucher-ticket{transform:rotate(-5deg)}}


/* V3.5 – kafelki oferty: opcjonalna fotografia i klikalna karta */
.offer-tile { padding: 0; overflow: hidden; transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease; }
.offer-tile-inner { display: flex; flex-direction: column; min-height: 235px; height: 100%; color: inherit; text-decoration: none; }
.offer-tile-body { padding: 31px; flex: 1; display: flex; flex-direction: column; }
.offer-tile-body h2 { margin-top: 25px; }
.offer-tile-body p { margin-bottom: 0; }
.offer-tile-photo { width: 100%; height: 190px; overflow: hidden; background: #e8e5d9; }
.offer-tile-photo img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .65s cubic-bezier(.2,.8,.2,1); }
.offer-tile--linked:hover, .offer-tile--linked:focus-within { border-color: rgba(104,109,82,.55); box-shadow: 0 16px 38px rgba(60,55,43,.085); transform: translateY(-3px); }
.offer-tile--linked:hover .offer-tile-photo img { transform: scale(1.035); }
.offer-tile--linked .offer-tile-inner:hover, .offer-tile--linked .offer-tile-inner:focus { color: var(--ink); }
.offer-tile-cta { margin-top: auto; padding-top: 25px; color: var(--olive-dark); font-size: .68rem; font-weight: 600; letter-spacing: .11em; }
.offer-tile-cta span { padding-left: 7px; font-size: 1rem; }
.offer-empty-note { margin-bottom: 55px; padding: 18px 24px; border: 1px solid var(--line); background: var(--canvas); }
@media(prefers-reduced-motion:reduce) { .offer-tile, .offer-tile-photo img { transition: none; } .offer-tile--linked:hover { transform: none; } }

/* Editorial 3.6: category deep links keep headings visible under the sticky header. */
.patrycja-pricelist .price-category[id] { scroll-margin-top: 140px; }
@media (max-width: 900px) {
  .patrycja-pricelist .price-category[id] { scroll-margin-top: 110px; }
}


/* Editorial 3.7 – Facebook contact button and the team page. */
.patrycja-fb-float { position: fixed; right: 22px; bottom: 22px; z-index: 900; display: flex;
  align-items: center; justify-content: center; width: 58px; height: 58px; border-radius: 50%;
  color: #fff; background: #356b59; box-shadow: 0 8px 27px rgba(24,46,35,.3);
  text-decoration: none; border: 2px solid rgba(255,255,255,.55); transition: transform .2s ease, background-color .2s ease; }
.patrycja-fb-float:hover, .patrycja-fb-float:focus-visible { background: #255142; color: #fff; transform: translateY(-3px); }
.patrycja-fb-float:focus-visible { outline: 3px solid #e0c7a0; outline-offset: 4px; }
.patrycja-fb-float svg { width: 27px; height: 27px; fill: currentColor; }
.patrycja-team-intro { max-width: 810px; margin: 0 auto 44px; }
.patrycja-team-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 25px; margin-top: 26px; }
.patrycja-team-person { background: #faf7f1; border: 1px solid var(--line); padding: 30px; border-radius: 6px; }
.patrycja-team-person h2 { margin: 0 0 5px; font: 400 clamp(1.8rem,2.8vw,2.6rem)/1.2 var(--serif); }
.patrycja-team-role { color: var(--olive); font-size: .74rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; margin: 0 0 16px; }
.patrycja-team-photo { width: 100%; height: auto; display: block; margin-bottom: 22px; border-radius: 3px; }
.patrycja-team-bio p:first-child { margin-top: 0; }
.patrycja-team-empty { color: var(--muted); }
@media(max-width: 650px) { .patrycja-fb-float { width: 51px; height: 51px; right: 13px; bottom: 13px; }
  .patrycja-team-grid { grid-template-columns: 1fr; } .patrycja-team-person { padding: 24px; } }
@media(prefers-reduced-motion: reduce) { .patrycja-fb-float { transition: none; } }


/* Editorial 3.8 – click-to-call button on portable screens only. */
.patrycja-phone-float {
  display: none;
  position: fixed;
  right: 22px;
  bottom: 92px;
  z-index: 900;
  width: 58px;
  height: 58px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: #fff;
  background: #356b59;
  border: 2px solid rgba(255,255,255,.55);
  box-shadow: 0 8px 27px rgba(24,46,35,.3);
  text-decoration: none;
  transition: transform .2s ease, background-color .2s ease;
}
.patrycja-phone-float svg { width: 26px; height: 26px; }
.patrycja-phone-float:hover, .patrycja-phone-float:focus-visible {
  background: #255142;
  color: #fff;
  transform: translateY(-3px);
}
.patrycja-phone-float:focus-visible { outline: 3px solid #e0c7a0; outline-offset: 4px; }
@media (max-width: 1024px) {
  .patrycja-phone-float { display: flex; }
}
@media (max-width: 650px) {
  .patrycja-phone-float { width: 51px; height: 51px; right: 13px; bottom: 76px; }
}
@media (prefers-reduced-motion: reduce) {
  .patrycja-phone-float { transition: none; }
}


/* Editorial 3.9 – readable, spacious price list on phones.
   Only affects pages using [patrycja_cennik]; desktop styling is unchanged. */
@media (max-width: 700px) {
  .pricelist-shortcode-page .interior-hero {
    padding-top: 58px;
    padding-bottom: 56px;
  }
  .pricelist-shortcode-page .interior-hero h1 {
    font-size: clamp(2.75rem, 11vw, 3.35rem);
    line-height: 1.1;
  }
  .pricelist-shortcode-page .page-content {
    width: calc(100% - 36px);
    max-width: 560px;
    padding-top: 42px;
    padding-bottom: 76px;
  }
  .pricelist-shortcode-page .entry-content,
  .pricelist-shortcode-page .patrycja-pricelist {
    width: 100%;
    min-width: 0;
  }
  .pricelist-shortcode-page .patrycja-pricelist {
    padding-bottom: 28px;
  }
  .pricelist-shortcode-page .patrycja-pricelist .price-category {
    margin: 47px 0 18px;
    padding: 0 2px 16px;
    font-size: clamp(1.7rem, 6.4vw, 2.15rem);
    line-height: 1.17;
    letter-spacing: -.035em;
    overflow-wrap: break-word;
    text-wrap: balance;
  }
  .pricelist-shortcode-page .patrycja-pricelist .price-category:first-child {
    margin-top: 0;
  }
  .pricelist-shortcode-page .patrycja-pricelist .price-list {
    width: 100%;
    max-width: 100%;
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 0;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: rgba(250, 247, 241, .96);
    overflow: hidden;
  }
  .pricelist-shortcode-page .patrycja-pricelist .price-list th,
  .pricelist-shortcode-page .patrycja-pricelist .price-list td {
    box-sizing: border-box;
    vertical-align: top;
  }
  .pricelist-shortcode-page .patrycja-pricelist .price-list th {
    padding: 16px 0 14px 15px;
    font-size: .66rem;
    letter-spacing: .13em;
    line-height: 1.4;
  }
  .pricelist-shortcode-page .patrycja-pricelist .price-list td {
    padding: 17px 0 17px 15px;
    font-size: .85rem;
    line-height: 1.55;
    overflow-wrap: anywhere;
  }
  .pricelist-shortcode-page .patrycja-pricelist .price-list th:first-child,
  .pricelist-shortcode-page .patrycja-pricelist .price-list td:first-child {
    width: 73%;
    padding-right: 10px;
  }
  .pricelist-shortcode-page .patrycja-pricelist .price-list th:last-child,
  .pricelist-shortcode-page .patrycja-pricelist .price-list td:last-child {
    width: 27%;
    min-width: 0;
    padding-left: 5px;
    padding-right: 15px;
    text-align: right;
    white-space: normal;
    overflow-wrap: normal;
    font-variant-numeric: tabular-nums;
  }
  .pricelist-shortcode-page .patrycja-pricelist .price-list tbody tr:first-child td {
    border-top-color: var(--line);
  }
  .pricelist-shortcode-page .patrycja-pricelist .price-list .muted,
  .pricelist-shortcode-page .patrycja-pricelist .price-list small {
    display: block;
    margin-top: 5px;
    line-height: 1.5;
  }
}
@media (max-width: 385px) {
  .pricelist-shortcode-page .page-content {
    width: calc(100% - 28px);
    padding-top: 35px;
  }
  .pricelist-shortcode-page .patrycja-pricelist .price-category {
    font-size: 1.65rem;
  }
  .pricelist-shortcode-page .patrycja-pricelist .price-list th {
    padding-left: 12px;
  }
  .pricelist-shortcode-page .patrycja-pricelist .price-list td {
    padding-left: 12px;
    font-size: .81rem;
  }
  .pricelist-shortcode-page .patrycja-pricelist .price-list th:last-child,
  .pricelist-shortcode-page .patrycja-pricelist .price-list td:last-child {
    padding-right: 12px;
  }
}

/* Editorial 4.0 — consistent ornaments across iOS, Android and desktop. */
.patrycja-starburst { display: inline-block; width: 1em; height: 1em; flex: 0 0 auto; vertical-align: middle; color: inherit; overflow: visible; }
.intro-band-asterisk { display: inline-flex; justify-content: center; align-items: center; line-height: 1; }
.quote-ornament { display: inline-flex; align-items: center; justify-content: center; line-height: 1; }
.voucher-sparkle { display: inline-flex; align-items: center; justify-content: center; line-height: 1; }
.voucher-ticket-top .patrycja-starburst { font-size: 1.6rem; }

/* Contact item inside the collapsed hamburger menu; desktop keeps its header CTA. */
.mobile-nav-contact { display: none; }
@media (max-width: 900px) {
  .header-contact { display: none; }
  .primary-nav .mobile-nav-contact {
    display: flex; align-items: center; justify-content: space-between; gap: 16px;
    min-height: 48px; margin-top: 20px; padding: 12px 17px;
    background: var(--olive); color: #fff; border-radius: 2px;
    text-decoration: none; font-size: 1rem; font-weight: 600;
  }
  .primary-nav .mobile-nav-contact:hover,
  .primary-nav .mobile-nav-contact:focus-visible { background: var(--olive-dark); color: #fff; }
  .primary-nav .mobile-nav-contact span { font-size: 1.2rem; line-height: 1; }
}
