/* Shared editorial system for the homepage, information pages and commerce. */
:root { --photo-radius: 22px; }
main { min-width: 0; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid #966b36; outline-offset: 5px; }
.skip-link { position: fixed; top: 8px; left: 16px; z-index: 9999; padding: 12px 20px; background: #fff; color: #211a14; transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }
.nav-links { gap: clamp(14px, 1.8vw, 28px); }
.nav-links a { font-size: 11px; letter-spacing: .045em; }
.nav-links a[aria-current="page"] { text-decoration: underline; text-underline-offset: 7px; }
.brand { width: 140px; height: 82px; flex-shrink: 0; }
.brand-mark { mask-size: 120px auto; -webkit-mask-size: 120px auto; mask-position: 50% 45%; -webkit-mask-position: 50% 45%; }
.site-header.scrolled .brand-mark { background: #11100f; }
.home .hero-media { border-radius: 0; }
.hero-media, .about-media, .training-media, .team-photo, .gallery-card, .metamorphosis-video-card, .voucher-showcase, .salon-film { border-radius: var(--photo-radius); overflow: hidden; }
.hero-media img, .about-media img, .training-media img { border-radius: inherit; }
.salon-film { margin: 0 18px; }
.hero-badge, .hero-monogram { display: none; }
.hero-media-caption { left: 20px; right: 20px; bottom: 20px; width: fit-content; max-width: calc(100% - 40px); border: 0; border-radius: 10px; background: rgba(17,16,15,.76); padding: 14px 18px; }
.social-dock { display: none; }
@media (min-width: 981px) { .floating-booksy { display: none; } }
.gallery-cta { display: flex; gap: 25px; align-items: center; justify-content: center; flex-wrap: wrap; }
.gallery-card img, .metamorphosis-video-card img { border-radius: var(--photo-radius); }
.gallery-card:nth-child(even) { border-radius: var(--photo-radius); }
.salon-gallery { padding-bottom: 90px; }
.editorial-page { padding-top: 126px; }
.editorial-page h1 { font-size: clamp(48px, 6.4vw, 88px); line-height: 1.08; letter-spacing: -.045em; }
.editorial-page h2, .training-page h2 { font-size: clamp(38px, 4.5vw, 64px); line-height: 1.09; }
.editorial-page h3 { font-size: clamp(27px, 2.5vw, 36px); line-height: 1.2; }
.editorial-page em, .training-page em { font-weight: 400; }
.editorial-hero { display: grid; grid-template-columns: 1.12fr .88fr; gap: clamp(36px, 7vw, 108px); align-items: center; padding-top: 45px; padding-bottom: 70px; }
.editorial-hero figure { margin: 0; }
.editorial-hero figure img { width: 100%; height: auto; max-height: 710px; object-fit: contain; border-radius: var(--photo-radius); display: block; }
.editorial-hero .lead { margin: 30px 0; max-width: 600px; }
.editorial-hero .text-link { display: block; width: fit-content; margin-top: 23px; }
.editorial-jumps { display: flex; gap: 22px; flex-wrap: wrap; padding-top: 24px; padding-bottom: 24px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.editorial-jumps a { font-size: 13px; padding: 8px 0; }
.editorial-split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(30px, 7vw, 100px); align-items: start; }
.editorial-prose p { line-height: 1.85; margin: 0 0 22px; }
.editorial-prose h3 { margin: 32px 0 16px; }
.editorial-prose h3:first-child { margin-top: 0; }
.editorial-prose .text-link { display: block; width: fit-content; margin: 16px 0; }
.editorial-tint { background: var(--ivory); }
.editorial-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; }
.editorial-cards article { border-top: 1px solid var(--line); padding: 30px 4px; }
.editorial-cards h3 { margin: 18px 0; }
.editorial-cards p, .editorial-service-list p { line-height: 1.8; }
.editorial-service-list article { display: grid; grid-template-columns: .8fr 1.2fr; gap: 48px; padding: 30px 0; border-top: 1px solid var(--line); }
.editorial-service-list h3, .editorial-service-list p { margin: 0; }
.editorial-actions { display: flex; gap: 30px; flex-wrap: wrap; align-items: center; margin-top: 40px; }
.editorial-results { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.editorial-results figure, .editorial-salon-grid figure { margin: 0; }
.editorial-results img { width: 100%; height: auto; aspect-ratio: 3/4; object-fit: cover; border-radius: var(--photo-radius); }
.editorial-results figcaption, .editorial-salon-grid figcaption { font-size: 12px; line-height: 1.6; padding-top: 13px; }
.editorial-faq { max-width: 980px; }
.editorial-faq details { border-bottom: 1px solid var(--line); padding: 24px 0; }
.editorial-faq summary { cursor: pointer; font-size: 19px; padding-right: 25px; }
.editorial-faq details p { line-height: 1.85; margin: 20px 0 0; }
.editorial-cta { text-align: center; padding: 85px 24px; background: var(--ivory); border-radius: var(--photo-radius); margin-top: 45px; margin-bottom: 65px; }
.editorial-cta .text-link { display: block; width: fit-content; margin: 25px auto 0; }
.editorial-team-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 35px; }
.editorial-person { min-width: 0; }
.editorial-person img { display: block; width: 100%; height: auto; aspect-ratio: 2/3; object-fit: cover; object-position: 50% 28%; border-radius: var(--photo-radius); }
.editorial-person .eyebrow { font-size: 10px; margin: 26px 0 12px; }
.editorial-person h3 { font-size: 34px; margin: 0 0 18px; }
.editorial-person p { font-size: 14px; line-height: 1.85; }
.person-placeholder { width: 100%; aspect-ratio: 2/3; border: 1px solid var(--line); border-radius: var(--photo-radius); background: #eee7de; display: flex; flex-direction: column; justify-content: center; align-items: center; color: #806137; }
.person-placeholder span { font-size: 11px; letter-spacing: .2em; }
.person-placeholder i { font-family: var(--serif); font-size: 140px; line-height: 1.3; }
.editorial-salon-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 25px; margin-top: 42px; }
.editorial-salon-grid img { display: block; width: 100%; height: auto; border-radius: var(--photo-radius); }
.editorial-intro { max-width: 650px; line-height: 1.85; margin-top: 25px; }
.editorial-video { width: 100%; max-height: 650px; border-radius: var(--photo-radius); background: #181411; }
.editorial-founder { margin: 0; }
.editorial-founder img { display: block; width: 100%; height: auto; border-radius: var(--photo-radius); }
.training-page-hero h1 { max-width: 950px; font-size: clamp(45px, 6vw, 80px); line-height: 1.1; }
.training-page-hero { padding-bottom: 70px; background: linear-gradient(110deg, rgba(13,11,10,.94), rgba(13,11,10,.48)), url('../images/agnieszka-gajda-portret.jpg') center 30%/cover; }
.editorial-title { padding: 60px 0 20px; }
.editorial-title .lead { max-width: 650px; }
.editorial-contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; }
.editorial-contact-grid h2 { font-size: 45px; }
.editorial-contact-grid address { font-style: normal; line-height: 1.8; }
.contact-phone, .contact-email { display: block; width: fit-content; margin: 18px 0; overflow-wrap: anywhere; }
.contact-phone { font-size: 27px; }
.contact-email { font-size: 14px; }
.private-map { border: 1px solid #d9cbb8; border-radius: var(--photo-radius); background: #e9e0d4; color: #2e2218; min-height: 400px; overflow: hidden; position: relative; display: flex; flex-direction: column; justify-content: center; }
.map-intro { padding: clamp(24px, 4vw, 52px); }
.map-intro h3 { font-size: 35px; margin: 14px 0; }
.map-intro p { font-size: 14px; line-height: 1.8; }
.map-intro .text-link { display: block; margin-top: 23px; font-size: 12px; }
.private-map iframe { width: 100%; height: 420px; border: 0; }
.private-map--visible { display: block; min-height: 420px; background: #d8cec0; }
.private-map--visible iframe { display: block; height: 480px; }
.map-route { position: absolute; top: 16px; right: 16px; z-index: 2; padding: 12px 16px; border-radius: 999px; background: rgba(17,16,15,.9); color: #fff; font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; box-shadow: 0 10px 28px rgba(0,0,0,.18); }
.map-revoke { border: 0; padding: 16px; background: #2e2218; color: white; cursor: pointer; font: 12px var(--sans); }
.legal-page h2 { font-size: clamp(28px, 3vw, 42px); line-height: 1.2; }
.legal-content { min-width: 0; overflow-wrap: anywhere; }
.legal-content p, .legal-content li { line-height: 1.85; }
.legal-content ul { padding-left: 22px; }
.legal-content a { text-decoration: underline; text-underline-offset: 3px; }
.legal-content section { scroll-margin-top: 135px; }
.legal-draft { padding: 22px 25px; border: 1px solid #baa887; background: #fffaf0; border-radius: 12px; font-size: 14px; margin: 25px 0 40px; }
.legal-purpose-list dt { font-weight: 600; margin-top: 22px; }
.legal-purpose-list dd { margin: 8px 0 25px; line-height: 1.8; }
/* Content stays readable if JavaScript does not run. */
html:not(.motion-ready) .reveal, html:not(.motion-ready) .image-reveal { opacity: 1; transform: none; clip-path: none; }
html:not(.motion-ready) .image-reveal::before { display: none; }
@media (max-width: 1100px) {
  .nav-links a { font-size: 15px; }
  .menu-open .nav-links { max-height: calc(100dvh - 110px); overflow-y: auto; overscroll-behavior: contain; }
  .editorial-team-grid { gap: 22px; }
  .editorial-person h3 { font-size: 29px; }
}
@media (max-width: 760px) {
  .brand { width: 124px; height: 72px; }
  .brand-mark { mask-size: 110px auto; -webkit-mask-size: 110px auto; }
  .editorial-page { padding-top: 98px; }
  .editorial-page h1 { font-size: clamp(42px, 10.5vw, 64px); }
  .editorial-page h2, .training-page h2 { font-size: clamp(34px, 8.8vw, 48px); }
  .editorial-hero { grid-template-columns: 1fr; gap: 34px; padding-top: 35px; padding-bottom: 45px; }
  .editorial-hero figure { max-width: 500px; width: 100%; margin: 0 auto; }
  .editorial-hero figure img { max-height: none; }
  .editorial-split, .editorial-contact-grid, .editorial-cards { grid-template-columns: 1fr; gap: 30px; }
  .editorial-service-list article { grid-template-columns: 1fr; gap: 15px; }
  .editorial-results { grid-template-columns: 1fr 1fr; gap: 20px 14px; }
  .editorial-team-grid { grid-template-columns: 1fr; gap: 45px; }
  .editorial-person { max-width: 480px; width: 100%; margin: 0 auto; }
  .editorial-person img { aspect-ratio: auto; height: auto; object-fit: contain; }
  .person-placeholder { aspect-ratio: 5/3; }
  .person-placeholder i { font-size: 100px; }
  .editorial-salon-grid { display: grid; grid-auto-flow: column; grid-auto-columns: 84%; grid-template-columns: none; gap: 14px; max-width: none; width: 100%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-left: 0; margin-right: 0; padding-bottom: 18px; }
  .editorial-salon-grid::-webkit-scrollbar { display: none; }
  .editorial-salon-grid figure { scroll-snap-align: start; }
  .editorial-cta { padding: 55px 22px; }
  .editorial-jumps { gap: 8px 20px; }
  .editorial-title { padding-top: 35px; }
  .private-map { min-height: 350px; }
  .salon-film { margin: 0 12px; }
  .salon-gallery { padding-bottom: 55px; }
  .gallery-cta { flex-direction: column; align-items: stretch; }
  .about-media, .training-media { border-radius: 14px; }
  .home .hero-media { border-radius: 0; }
  .legal-nav { position: static; }
  .legal-hero h1 { font-size: clamp(39px, 10vw, 54px); overflow-wrap: normal; }
  .training-page-hero h1 { font-size: clamp(41px, 10.2vw, 60px); }
  .btn { white-space: normal; text-align: center; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
  .reveal, .image-reveal { opacity: 1 !important; transform: none !important; clip-path: none !important; }
}
