/*
Theme Name: MS Studio Astra Child
Template: astra
Version: 1.0.0
Text Domain: ms-studio
*/

:root {
  --ms-ink: #2d2926;
  /* #7f746a dawało na kremie 4,30:1 — poniżej progu WCAG AA (4,5:1).
     #6e645b daje 5,45:1. Ta sama wartość, co w arkuszu strony głównej. */
  --ms-muted: #6e645b;
  --ms-line: #decfbe;
  --ms-paper: #fbf8f3;
  --ms-cream: #f4eee7;
  --ms-gold: #a9793f;
  --ms-gold-dark: #875f31;
}

*, *::before, *::after {
  box-sizing: border-box;
}

[id] {
  scroll-margin-top: 110px;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  color: var(--ms-ink);
  font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.65;
  background:
    radial-gradient(circle at 0 10%, rgba(222, 207, 190, .28), transparent 24rem),
    linear-gradient(180deg, #fffaf4 0%, #f8f2eb 100%);
}

img {
  max-width: 100%;
  height: auto;
}

.site-header,
.site-footer {
  display: none;
}

.ms-topbar {
  min-height: 86px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 28px;
  padding: 0 clamp(26px, 5vw, 72px);
  border-bottom: 1px solid rgba(222, 207, 190, .78);
  background: rgba(255, 252, 247, .96);
  position: sticky;
  top: 0;
  z-index: 50;
  box-shadow: 0 8px 24px rgba(56, 43, 31, .035);
  overflow: visible;
}

.admin-bar .ms-topbar {
  top: 32px;
}

.ms-brand {
  display: inline-flex;
  align-items: center;
  color: var(--ms-ink);
  text-decoration: none;
  white-space: nowrap;
  background: transparent;
  overflow: visible;
}

.ms-brand-logo {
  width: clamp(96px, 8vw, 132px);
  height: auto;
  display: block;
}

.ms-main-nav {
  display: flex;
  justify-content: center;
  gap: clamp(18px, 2.5vw, 36px);
  align-items: center;
}

.ms-main-nav a {
  position: relative;
  color: var(--ms-ink);
  text-decoration: none;
  font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
  font-size: 13px;
  font-weight: 300;
  line-height: 1.05;
  padding: 34px 0 24px;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
  text-transform: uppercase;
  letter-spacing: .08em;
  display: inline-flex;
  align-items: center;
  transition: transform .18s ease, color .18s ease, border-color .18s ease;
}

.ms-main-nav a:hover,
.ms-main-nav a:focus {
  color: var(--ms-gold-dark);
  border-bottom-color: var(--ms-gold);
  transform: translateY(-1px) scale(1.04);
}

.ms-main-nav a.is-current,
.ms-main-nav a[aria-current="page"] {
  color: var(--ms-gold-dark);
  border-bottom-color: transparent;
  background: none;
}

/* aktywna strona: zaoblona, kremowo-złota „poduszka" pod tekstem (sam lekki gradient) */
.ms-main-nav a.is-current::before,
.ms-main-nav a[aria-current="page"]::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 20px;
  bottom: 14px;
  left: -14px;
  right: -14px;
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(166, 116, 65, 0) 0%, rgba(166, 116, 65, .06) 42%, rgba(166, 116, 65, .22) 100%);
  filter: blur(8px);
  pointer-events: none;
}

/* delikatny wjazd przy wejściu na stronę */
@media (prefers-reduced-motion: no-preference) {
  html.msx .ms-main-nav a.is-current::before,
  html.msx .ms-main-nav a[aria-current="page"]::before {
    animation: msxNavPill .55s cubic-bezier(.16, 1, .3, 1);
  }
}
@keyframes msxNavPill {
  from { opacity: 0; transform: scale(.7); }
  to   { opacity: 1; transform: scale(1); }
}

.ms-header-tools {
  display: flex;
  align-items: center;
  gap: 15px;
  color: var(--ms-ink);
  white-space: nowrap;
}

.ms-header-tools > a:not(.ms-header-btn) {
  color: var(--ms-ink);
  text-decoration: none;
  font-weight: 700;
  font-size: 12px;
  line-height: 1;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.ms-icon-link {
  position: relative;
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: transparent;
  box-shadow: none;
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), background 0.3s ease;
}

.ms-icon-link img {
  width: 24px;
  height: 24px;
  object-fit: contain;
  display: block;
  background: transparent;
  border-radius: 0;
  transition: transform 0.3s ease;
}

.ms-icon-link:hover {
  background: transparent;
  box-shadow: none;
  transform: translateY(-3px) scale(1.1);
}

.ms-divider {
  height: 28px;
  width: 1px;
  background: #8d8075;
  opacity: .65;
}

.ms-header-btn {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 24px;
  background: var(--ms-gold);
  border: 1px solid var(--ms-gold);
  color: white;
  text-decoration: none;
  text-transform: uppercase;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .1em;
  white-space: nowrap;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
}

.ms-header-btn:visited,
.ms-header-btn:hover,
.ms-header-btn:focus {
  color: white;
  text-decoration: none;
}

.ms-header-btn:hover,
.ms-header-btn:focus {
  transform: translateY(-1px) scale(1.03);
  box-shadow: 0 10px 20px rgba(135, 95, 49, .18);
}

.ms-header-btn.is-outline {
  background: transparent;
  color: var(--ms-ink);
  border-color: #7a7168;
}

.ms-header-btn.is-outline:visited,
.ms-header-btn.is-outline:hover,
.ms-header-btn.is-outline:focus {
  color: var(--ms-ink);
}

/* Nagłówki nakładane na hero muszą mieć docelowy wygląd już przy pierwszym
   renderze, zanim site-experience.js doda klasę html.msx. */
.ms-topbar.is-hero-overlay .ms-header-btn,
.ms-topbar.is-hero-overlay .ms-header-btn.is-outline {
  border-radius: 0;
  background: rgba(255, 255, 255, .14);
  color: #fff;
  border-color: rgba(255, 255, 255, .6);
  box-shadow: none;
  text-shadow: none;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}

.ms-topbar.is-hero-overlay .ms-header-btn:hover,
.ms-topbar.is-hero-overlay .ms-header-btn:focus,
.ms-topbar.is-hero-overlay .ms-header-btn.is-outline:hover,
.ms-topbar.is-hero-overlay .ms-header-btn.is-outline:focus {
  background: #fff;
  color: #141110;
  border-color: #fff;
  transform: none;
  box-shadow: none;
}

.ast-container,
.site-content .ast-container {
  max-width: none;
  padding: 0;
}

.entry-header,
.entry-title {
  display: none;
}

.ms-page {
  --section-pad: clamp(48px, 6vw, 88px);
  font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
  background: var(--ms-paper);
}

.ms-page a,
.ms-topbar a,
.ms-footer a,
.entry-content .ms-page a,
.entry-content .ms-topbar a,
.entry-content .ms-footer a {
  text-decoration: none !important;
}

.ms-page h1,
.ms-page h2,
.ms-page h3,
.ms-serif {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
}

.ms-wrap {
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto;
}

.ms-hero {
  min-height: clamp(280px, 26vw, 360px);
  display: grid;
  grid-template-columns: minmax(0, .82fr) minmax(420px, 1.18fr);
  align-items: stretch;
  border-bottom: 1px solid var(--ms-line);
  background: linear-gradient(90deg, rgba(251,248,243,.96) 0%, rgba(251,248,243,.88) 48%, rgba(251,248,243,.18) 100%);
  overflow: hidden;
}

.ms-hero-copy {
  padding: clamp(58px, 8vw, 112px) clamp(28px, 6vw, 106px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
}

.ms-hero-copy:before,
.ms-leaf:before {
  content: "";
  position: absolute;
  width: 180px;
  height: 180px;
  left: -42px;
  bottom: 16px;
  opacity: .23;
  background:
    linear-gradient(48deg, transparent 48%, #b99569 49% 51%, transparent 52%) center/46px 46px,
    radial-gradient(ellipse at center, transparent 58%, #b99569 59% 60%, transparent 61%);
  border-radius: 50%;
}

.ms-hero-kicker {
  color: var(--ms-gold);
  text-transform: uppercase;
  letter-spacing: .18em;
  font-size: 13px;
  margin-bottom: 16px;
}

.ms-hero h1 {
  font-size: clamp(46px, 6vw, 82px);
  line-height: .98;
  margin: 0 0 24px;
  letter-spacing: 0;
}

.ms-script {
  font-family: "Brush Script MT", "Segoe Script", cursive;
  font-weight: 400;
}

.ms-hero p {
  max-width: 430px;
  font-size: clamp(17px, 1.55vw, 21px);
  color: var(--ms-muted);
  line-height: 1.65;
  margin: 0 0 32px;
}

.ms-hero.is-overlay {
  min-height: clamp(280px, 26vw, 360px);
  width: 100%;
  display: block;
  position: relative;
  background-size: cover;
  background-position: center 38%;
  overflow: hidden;
}

.ms-hero.is-overlay:before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(251,248,243,.96) 0%, rgba(251,248,243,.82) 38%, rgba(251,248,243,.18) 64%, rgba(251,248,243,.02) 100%),
    linear-gradient(0deg, rgba(45,41,38,.10), rgba(45,41,38,.02));
}

.ms-hero.is-overlay .ms-hero-copy {
  min-height: inherit;
  width: min(64vw, 980px);
  position: relative;
  z-index: 2;
}

.ms-hero.is-overlay h1 {
  white-space: nowrap;
}

.ms-hero.is-overlay .ms-script {
  display: inline-block;
  white-space: nowrap;
}

.ms-hero-carousel {
  min-height: clamp(280px, 26vw, 360px);
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid var(--ms-line);
  background: linear-gradient(90deg, rgba(251,248,243,.98) 0%, rgba(251,248,243,.90) 38%, rgba(251,248,243,.24) 100%);
}

.ms-hero-carousel-rail {
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.ms-hero-carousel-track {
  display: flex;
  width: max-content;
  height: 100%;
  will-change: transform;
}

.ms-hero-carousel-group {
  display: flex;
  height: 100%;
}

.ms-hero-carousel-group img {
  display: block;
  width: clamp(180px, 19vw, 280px);
  height: 100%;
  object-fit: cover;
  flex: 0 0 auto;
  opacity: .94;
}

.ms-hero-carousel-group img:nth-child(odd) {
  filter: saturate(.95) contrast(.98);
}

.ms-hero-carousel-group img:nth-child(even) {
  filter: saturate(1.03) contrast(1.02);
}

/* Blended Carousel (Soft Overlap and Flat Horizontal Sliding) */
.ms-hero-carousel.is-blended .ms-hero-carousel-group img {
  width: auto;
  aspect-ratio: 3 / 2;
  max-width: clamp(240px, 32vw, 480px);
  margin-right: -105px;
  opacity: 0.88;
  position: relative;
  z-index: 10;
  mask-image: linear-gradient(to right, transparent 0%, rgba(0, 0, 0, 0.03) 3%, rgba(0, 0, 0, 0.25) 15%, #000 35%, #000 65%, rgba(0, 0, 0, 0.25) 85%, rgba(0, 0, 0, 0.03) 97%, transparent 100%);
  -webkit-mask-image: linear-gradient(to right, transparent 0%, rgba(0, 0, 0, 0.03) 3%, rgba(0, 0, 0, 0.25) 15%, #000 35%, #000 65%, rgba(0, 0, 0, 0.25) 85%, rgba(0, 0, 0, 0.03) 97%, transparent 100%);
  transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94), opacity 0.3s ease, filter 0.3s ease, box-shadow 0.4s ease;
  transform-origin: center center;
}

/* Dynamic Interactive State on Hover */
.ms-hero-carousel.is-blended .ms-hero-carousel-group img:hover {
  transform: scale(1.1) rotate(0deg) translateY(0) !important;
  z-index: 100;
  opacity: 1;
  filter: saturate(1.08) contrast(1.02) drop-shadow(0 15px 30px rgba(45, 41, 38, 0.3));
  mask-image: none !important;
  -webkit-mask-image: none !important;
}

/* Responsiveness adjustments for smaller devices */
@media (max-width: 760px) {
  .ms-hero-carousel.is-blended .ms-hero-carousel-group img {
    max-width: clamp(180px, 28vw, 280px);
    margin-right: -60px;
    mask-image: linear-gradient(to right, transparent 0%, rgba(0, 0, 0, 0.03) 3%, rgba(0, 0, 0, 0.25) 15%, #000 35%, #000 65%, rgba(0, 0, 0, 0.25) 85%, rgba(0, 0, 0, 0.03) 97%, transparent 100%);
    -webkit-mask-image: linear-gradient(to right, transparent 0%, rgba(0, 0, 0, 0.03) 3%, rgba(0, 0, 0, 0.25) 15%, #000 35%, #000 65%, rgba(0, 0, 0, 0.25) 85%, rgba(0, 0, 0, 0.03) 97%, transparent 100%);
  }
}


.ms-hero-carousel:before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(251,248,243,.99) 0%, rgba(251,248,243,.94) 30%, rgba(251,248,243,.32) 62%, rgba(251,248,243,.10) 100%),
    linear-gradient(0deg, rgba(45,41,38,.10), rgba(45,41,38,.04));
  z-index: 1;
}

.ms-hero-carousel .ms-hero-copy {
  position: relative;
  z-index: 2;
  min-height: inherit;
  width: min(52vw, 760px);
  display: flex;
  align-items: center;
  padding: clamp(22px, 3vw, 42px) clamp(24px, 5vw, 64px);
}

.ms-hero-copy-surface {
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  max-width: 520px;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
  backdrop-filter: none;
}

.ms-hero-carousel .ms-hero-kicker {
  margin-bottom: 10px;
}

.ms-hero-carousel h1 {
  margin-bottom: 14px;
  font-size: clamp(32px, 4vw, 58px);
  white-space: nowrap;
}

.ms-hero-carousel p {
  margin-bottom: 18px;
  max-width: 360px;
  font-size: clamp(15px, 1.2vw, 18px);
}

.ms-hero-carousel .ms-actions {
  gap: 12px;
}

.ms-hero-carousel .ms-btn {
  min-height: 40px;
  padding: 0 22px;
  font-size: 13px;
}

.ms-contact-hero .ms-hero-carousel-rail {
  background: #fbf8f3;
}

@keyframes ms-carousel-scroll {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

.ms-hero-compact {
  min-height: clamp(280px, 26vw, 360px);
  background-position: 58% 32%;
}

.ms-hero-compact .ms-hero-copy {
  width: min(56vw, 780px);
  padding: clamp(26px, 3.4vw, 48px) clamp(26px, 4.2vw, 64px);
}

.ms-hero-compact h1 {
  margin-bottom: 18px;
  font-size: clamp(36px, 4.2vw, 62px);
}

.ms-hero-compact p {
  max-width: 380px;
  margin-bottom: 22px;
  font-size: clamp(15px, 1.25vw, 18px);
  line-height: 1.55;
}

.ms-hero-compact .ms-actions {
  gap: 14px;
}

.ms-hero.is-overlay h1 {
  font-size: clamp(32px, 4.2vw, 58px);
}

.ms-contact-hero .ms-hero-copy {
  width: min(52vw, 780px);
}

.ms-contact-hero .ms-hero-copy-surface {
  max-width: 520px;
}

.ms-contact-hero .ms-hero-kicker {
  margin-bottom: 12px;
}

.ms-contact-hero h1 {
  margin-bottom: 14px;
}

.ms-contact-hero p {
  margin-bottom: 18px;
}

.ms-card-link {
  color: inherit;
  text-decoration: none !important;
  text-decoration-line: none !important;
  display: block;
  height: 100%;
}

.ms-card-link:visited,
.ms-card-link:hover,
.ms-card-link:focus {
  color: inherit;
  text-decoration: none !important;
  text-decoration-line: none !important;
}

.ms-card-link h3,
.ms-card-link p,
.ms-card-link span,
.ms-card-link .ms-card-label {
  text-decoration: none !important;
}

.ms-card-link *,
.ms-card-link:hover *,
.ms-card-link:focus * {
  text-decoration: none !important;
}

.ms-actions {
  display: flex;
  gap: 18px;
  flex-wrap: wrap;
}

.ms-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 22px;
  border: 1px solid rgba(232, 209, 180, .62);
  border-radius: 999px;
  /* Półprzezroczyste złoto (.46) dawało z kremowym napisem 3,85:1 i zmieniało
     kontrast zależnie od tego, co jest pod spodem. Pełny kolor daje 4,96:1
     wszędzie tak samo. */
  background: #8f6430;
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  color: #fdf9f3;
  text-decoration: none;
  text-transform: none;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: .04em;
  box-shadow: 0 12px 26px -18px rgba(0, 0, 0, .55);
  transition: transform .24s ease, box-shadow .24s ease, background .24s ease, color .24s ease, border-color .24s ease;
}

.ms-btn:visited,
.ms-btn:focus {
  color: #fdf9f3;
  text-decoration: none;
}

.ms-btn:hover {
  background: rgba(166, 116, 65, .72);
  border-color: rgba(232, 209, 180, .9);
  color: #fdf9f3;
  text-decoration: none;
  transform: translateY(-2px);
  box-shadow: 0 14px 28px -14px rgba(0, 0, 0, .5);
}

.ms-btn.is-ghost {
  background: rgba(166, 116, 65, .2);
  color: var(--ms-gold-dark);
  border-color: rgba(166, 116, 65, .44);
  box-shadow: 0 10px 24px -20px rgba(0, 0, 0, .45);
}

.ms-btn.is-ghost:visited,
.ms-btn.is-ghost:focus {
  color: var(--ms-gold-dark);
}

.ms-btn.is-ghost:hover {
  background: rgba(166, 116, 65, .58);
  border-color: rgba(166, 116, 65, .72);
  color: #fdf9f3;
  transform: translateY(-2px);
  box-shadow: 0 14px 28px -16px rgba(0, 0, 0, .48);
}

.ms-section {
  padding: var(--section-pad) 0;
  border-bottom: 1px solid rgba(222, 207, 190, .72);
}

.ms-section.is-soft {
  background: #f7f0e8;
}

.ms-heading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 22px;
  margin: 0 0 34px;
  text-align: center;
}

.ms-heading:before,
.ms-heading:after {
  content: "";
  width: min(150px, 16vw);
  height: 1px;
  background: var(--ms-gold);
  opacity: .75;
}

.ms-heading h2 {
  margin: 0;
  font-size: clamp(28px, 3.5vw, 46px);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.ms-section-intro {
  max-width: 760px;
  margin: -12px auto 34px;
  color: var(--ms-muted);
  text-align: center;
  font-size: 17px;
  line-height: 1.75;
}

.ms-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px;
}

.ms-grid.is-five {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.ms-grid.is-six {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.ms-grid.is-seven {
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

@media (min-width: 961px) {
  .ms-grid.is-five,
  .ms-grid.is-six {
    gap: 16px;
  }
  .ms-grid.is-five .ms-mini-card .ms-card-body,
  .ms-grid.is-six .ms-mini-card .ms-card-body {
    padding: 18px 12px 20px;
  }
  .ms-grid.is-five .ms-card-label h3,
  .ms-grid.is-six .ms-card-label h3 {
    font-size: 13.5px;
  }
}

.ms-card {
  background: rgba(255,255,255,.78);
  border: 1px solid var(--ms-line);
  border-radius: 7px;
  box-shadow: 0 14px 34px rgba(55, 43, 34, .055);
  overflow: hidden;
}

.ms-card-media {
  position: relative;
  overflow: hidden;
}

.ms-card img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
  transition: transform .45s ease;
}

.ms-card:hover img {
  transform: scale(1.055);
}

.ms-card-body {
  padding: 22px;
}

.ms-card h3 {
  margin: 0 0 12px;
  font-size: 18px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.ms-card p,
.ms-card li {
  color: var(--ms-muted);
  line-height: 1.65;
  font-size: 14px;
}

.ms-contact-info-grid {
  align-items: stretch;
}

.ms-contact-info-card .ms-card-body {
  min-height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  text-align: center;
}

.ms-contact-info-card h3 {
  margin-bottom: 6px;
  width: 100%;
}

.ms-contact-info-card p {
  margin: 0;
}

.ms-contact-info-card strong {
  color: var(--ms-ink);
  font-weight: 500;
}

.ms-contact-info-row,
.ms-contact-social {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: var(--ms-muted);
  font-size: 14px;
  line-height: 1.5;
  text-decoration: none;
  width: 100%;
  text-align: center;
}

.ms-contact-info-row span {
  display: inline-block;
  text-align: left;
}

.ms-contact-info-row a,
.ms-contact-social {
  color: var(--ms-muted);
}

.ms-contact-info-row img,
.ms-contact-social img {
  width: 24px;
  height: 24px;
  aspect-ratio: auto;
  object-fit: contain;
  flex: 0 0 24px;
  transition: transform .25s ease;
}

.ms-contact-social:hover {
  color: var(--ms-gold);
}

.ms-contact-social:hover img {
  transform: scale(1.08);
}

.ms-card ul {
  list-style: none;
  margin: 14px 0 20px;
  padding: 0;
}

.ms-card li:before {
  content: "♥";
  color: var(--ms-gold);
  margin-right: 9px;
  font-size: 11px;
}

.ms-mini-card {
  text-align: center;
  display: flex;
  flex-direction: column;
}

.ms-mini-card .ms-card-body {
  padding: 18px 16px 24px;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.ms-mini-card .ms-btn.is-ghost {
  width: 100%;
  margin-top: auto;
  padding: 0 10px;
  white-space: nowrap;
  text-align: center;
  line-height: 1;
  font-size: clamp(11px, .82vw, 13px);
  letter-spacing: .04em;
}

.ms-mini-card .ms-btn.is-ghost:visited,
.ms-mini-card .ms-btn.is-ghost:focus {
  color: var(--ms-gold-dark);
}

.ms-mini-card .ms-btn.is-ghost:hover {
  color: #fff;
}

.ms-card-label {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 11px;
  margin-bottom: 11px;
}

.ms-mini-card .ms-card-label {
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 8px;
}


.ms-card-label img,
.ms-card-label svg {
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  padding: 7px;
  border: 1px solid var(--ms-line);
  border-radius: 50%;
  background: #fffaf5;
  object-fit: contain;
}

.ms-card-label h3 {
  margin: 0;
  font-size: 15px;
  line-height: 1.3;
}

.ms-offer-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.ms-offer-card {
  position: relative;
  min-height: 260px;
  border-radius: 7px;
  overflow: hidden;
  border: 1px solid var(--ms-line);
  box-shadow: 0 16px 38px rgba(55, 43, 34, .08);
}

.ms-offer-card > img {
  width: 100%;
  height: 100%;
  min-height: 260px;
  object-fit: cover;
  display: block;
  transition: transform .45s ease;
}

.ms-offer-card:hover > img {
  transform: scale(1.045);
}

.ms-offer-card .ms-card-label {
  position: absolute;
  left: 24px;
  right: 24px;
  bottom: 18px;
  margin: 0;
  color: #fff;
  text-shadow: 0 2px 14px rgba(0,0,0,.38);
}

.ms-offer-card .ms-card-label h3 {
  color: #fff;
}

.ms-offer-card .ms-card-label img {
  width: 38px;
  height: 38px;
  min-height: 0;
  object-fit: contain;
  background: rgba(255,255,255,.94);
  border-color: rgba(255,255,255,.9);
}

.ms-feature-band {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  border-top: 1px solid var(--ms-line);
  border-bottom: 1px solid var(--ms-line);
}

.ms-feature {
  min-height: clamp(175px, 15vw, 245px);
  position: relative;
  overflow: hidden;
  background: #f2e9df;
}

.ms-feature:before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(90deg, rgba(251,248,243,.92) 0%, rgba(251,248,243,.70) 38%, rgba(251,248,243,.08) 100%);
}

.ms-feature-copy {
  position: absolute;
  inset: 0 auto 0 0;
  z-index: 2;
  width: min(58%, 290px);
  padding: clamp(18px, 2.2vw, 30px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.ms-feature img {
  width: 100%;
  height: 100%;
  min-height: clamp(175px, 15vw, 245px);
  object-fit: cover;
  display: block;
  transition: transform .45s ease;
}

.ms-feature:hover img {
  transform: scale(1.045);
}

.ms-feature h3 {
  font-size: clamp(18px, 1.7vw, 28px);
  margin: 0 0 10px;
  letter-spacing: .04em;
  text-transform: uppercase;
  white-space: nowrap;
  line-height: 1;
}

.ms-feature .ms-note {
  max-width: 190px;
  font-size: clamp(12px, 1vw, 15px);
  line-height: 1.6;
}

.ms-link {
  color: var(--ms-gold);
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
}

.ms-link:hover,
.ms-link:focus {
  color: var(--ms-gold-dark);
}

.ms-steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px;
  text-align: center;
}

.ms-step {
  position: relative;
  padding: 12px 18px;
}

.ms-gallery {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 18px;
}

.ms-gallery img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.ms-session-inspiration {
  display: grid;
  grid-template-columns: repeat(5, minmax(230px, 1fr));
  gap: 20px;
  width: min(calc(100vw - 48px), 1540px);
  margin-left: 50%;
  transform: translateX(-50%);
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  padding: 2px 0 12px;
  scroll-snap-type: x proximity;
}

.ms-session-inspiration-card {
  position: relative;
  display: block;
  min-height: clamp(260px, 28vw, 390px);
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid rgba(209, 184, 158, .9);
  box-shadow: 0 18px 38px rgba(55, 43, 34, .08);
  background: #efe5da;
  isolation: isolate;
  color: inherit;
  text-decoration: none;
  scroll-snap-align: start;
  transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}

.ms-session-inspiration-card:hover,
.ms-session-inspiration-card:focus {
  transform: translateY(-4px);
  border-color: rgba(166, 116, 65, .68);
  box-shadow: 0 24px 48px rgba(55, 43, 34, .13);
}

.ms-session-inspiration-card img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transform: scale(1.04);
  transition: opacity 1.1s ease, transform 5.2s ease;
}

.ms-session-inspiration-card img.is-active {
  opacity: 1;
  transform: scale(1.1);
}

.ms-session-inspiration-card figcaption,
.ms-session-inspiration-caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  padding: 42px 18px 18px;
  color: #fff;
  font: 700 12px/1.35 "Inter", "Helvetica Neue", Arial, sans-serif;
  letter-spacing: .12em;
  text-transform: uppercase;
  text-shadow: 0 2px 14px rgba(35, 25, 18, .55);
  background: linear-gradient(180deg, transparent, rgba(37, 27, 21, .66));
}

.ms-section-cta {
  display: flex;
  justify-content: center;
  margin-top: 28px;
}

.ms-session-gallery-hero {
  min-height: clamp(390px, 52vh, 560px);
}

.ms-session-gallery-hero .ms-cinematic-copy {
  max-width: 820px;
}

.ms-session-gallery-index {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin: -10px auto 34px;
}

.ms-session-gallery-index a {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 16px;
  border: 1px solid rgba(166, 116, 65, .45);
  border-radius: 999px;
  color: var(--ms-ink);
  text-decoration: none;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  background: rgba(255,255,255,.54);
  transition: transform .2s ease, background .2s ease, color .2s ease;
}

.ms-session-gallery-index a:hover,
.ms-session-gallery-index a:focus {
  background: var(--ms-gold);
  color: #fff;
  transform: translateY(-1px);
}

.ms-session-gallery-block {
  padding: clamp(26px, 4vw, 42px) 0;
  border-top: 1px solid rgba(222, 207, 190, .72);
}

.ms-session-gallery-block:first-of-type {
  border-top: 0;
}

.ms-session-gallery-head {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  gap: 28px;
  align-items: end;
  margin-bottom: 20px;
}

.ms-session-gallery-head h2 {
  margin: 0;
  font-size: clamp(28px, 3.2vw, 44px);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.ms-session-gallery-head p {
  margin: 0;
  color: var(--ms-muted);
  line-height: 1.7;
}

.ms-session-gallery-grid {
  display: grid;
  grid-template-columns: 1.2fr .8fr .8fr;
  grid-auto-rows: clamp(150px, 18vw, 230px);
  gap: 14px;
}

.ms-session-gallery-grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 8px;
  box-shadow: 0 18px 38px rgba(55, 43, 34, .07);
}

.ms-session-gallery-grid img:first-child {
  grid-row: span 2;
}

.ms-session-ideas {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.ms-session-idea {
  background: rgba(255,255,255,.68);
  border: 1px solid var(--ms-line);
  border-radius: 8px;
  padding: 22px;
}

.ms-session-idea h3 {
  margin: 0 0 8px;
  font-size: 16px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.ms-session-idea p {
  margin: 0;
  color: var(--ms-muted);
  line-height: 1.65;
}

@media (max-width: 1024px) {
  .ms-session-gallery-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .ms-session-ideas {
    grid-template-columns: 1fr;
  }
  .ms-session-gallery-head {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .ms-session-gallery-grid {
    grid-template-columns: 1fr;
    grid-auto-rows: 220px;
  }
  .ms-session-gallery-grid img:first-child {
    grid-row: span 1;
  }
}

.ms-reviews-section {
  background:
    radial-gradient(circle at 92% 100%, rgba(222, 207, 190, .34), transparent 18rem),
    radial-gradient(circle at 8% 0%, rgba(166, 116, 65, .12), transparent 22rem),
    #fbf8f3;
}

.ms-reviews-slider {
  display: flex;
  gap: 28px;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x proximity;
  scroll-behavior: auto;
  padding: 8px 4px 20px;
  scrollbar-width: none;
  cursor: grab;
  user-select: none;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
}

.ms-reviews-slider.is-dragging {
  scroll-snap-type: none;
  cursor: grabbing;
}

.ms-reviews-slider::-webkit-scrollbar {
  display: none;
}

.ms-reviews-slider:after {
  content: "";
  flex: 0 0 calc(66.666% + 19px);
}

.ms-review-card {
  position: relative;
  flex: 0 0 calc(33.333% - 19px);
  scroll-snap-align: start;
  display: grid;
  grid-template-columns: 82px 1fr;
  gap: 18px;
  align-items: start;
  min-height: 192px;
  padding: 30px 24px 26px;
  overflow: hidden;
  border: 1px solid rgba(255, 252, 247, .55);
  border-radius: 18px;
  background:
    linear-gradient(160deg, rgba(255, 253, 250, .62), rgba(250, 243, 233, .34));
  -webkit-backdrop-filter: blur(14px) saturate(1.35);
  backdrop-filter: blur(14px) saturate(1.35);
  box-shadow:
    0 16px 40px -18px rgba(55, 43, 34, .26),
    inset 0 1px 0 rgba(255, 255, 255, .65),
    inset 0 0 0 1px rgba(222, 207, 190, .35);
  transform: translateZ(0);
  transform-origin: center;
  transition: transform .3s cubic-bezier(.16, 1, .3, 1), box-shadow .3s ease, border-color .3s ease;
}

/* przesuwający się refleks (apple glass) */
.ms-review-card::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: -90%;
  width: 60%;
  transform: skewX(-22deg);
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .5), transparent);
  transition: left .7s ease;
  pointer-events: none;
  z-index: 2;
}

.ms-review-card:hover {
  transform: translateY(-3px) scale(1.012);
  border-color: rgba(255, 252, 247, .8);
  box-shadow:
    0 26px 52px -20px rgba(55, 43, 34, .34),
    inset 0 1px 0 rgba(255, 255, 255, .8),
    inset 0 0 0 1px rgba(169, 121, 63, .28);
}

.ms-review-card:hover::after {
  left: 120%;
}

.ms-review-card > img,
.ms-review-avatar {
  width: 82px;
  height: 82px;
  border-radius: 50%;
  border: 3px solid #fffaf5;
  box-shadow: 0 9px 20px rgba(55, 43, 34, .13);
}

.ms-review-card > img {
  object-fit: cover;
}

.ms-review-avatar {
  display: grid;
  place-items: center;
  color: #fffaf5;
  background:
    radial-gradient(circle at 32% 24%, rgba(255,255,255,.32), transparent 22px),
    linear-gradient(135deg, var(--avatar-accent, var(--ms-gold)), #5a4638);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 24px;
  line-height: 1;
  letter-spacing: .03em;
}

.ms-review-avatar.ms-review-avatar-photo {
  overflow: hidden;
  background: #fffaf5;
}

.ms-review-avatar.ms-review-avatar-photo img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.ms-review-copy {
  position: relative;
  padding-top: 12px;
}

.ms-review-mark {
  position: absolute;
  left: 0;
  top: -16px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 42px;
  line-height: 1;
  color: var(--ms-gold);
  opacity: .62;
  pointer-events: none;
}

.ms-review-copy p {
  margin: 0 0 12px;
  color: var(--ms-muted);
  font-size: 14px;
  font-style: italic;
  line-height: 1.68;
}

.has-long-review:not(.is-expanded) .ms-review-text {
  max-height: 7.1em;
  overflow: hidden;
}

.ms-review-more {
  display: inline-flex;
  align-items: center;
  margin: -2px 0 10px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ms-gold-dark);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
}

.ms-review-more:hover,
.ms-review-more:focus {
  color: var(--ms-gold);
}

.ms-review-copy strong {
  display: block;
  color: var(--ms-ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 15px;
  font-weight: 400;
}

.ms-reviews-bottom {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 22px;
  margin-top: 12px;
}

.ms-review-dots {
  grid-column: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.ms-review-dots button {
  width: 8px;
  height: 8px;
  padding: 0;
  border-radius: 50%;
  border: 1px solid var(--ms-gold);
  background: transparent;
  cursor: pointer;
  transition: background .2s ease, transform .2s ease;
}

.ms-review-dots button.is-active,
.ms-review-dots button:hover,
.ms-review-dots button:focus {
  background: var(--ms-gold);
  transform: scale(1.08);
}

.ms-more-reviews {
  grid-column: 3;
  justify-self: end;
  color: var(--ms-gold-dark);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  text-decoration: none;
}

.ms-more-reviews:hover,
.ms-more-reviews:focus {
  color: var(--ms-ink);
  transform: translateY(-1px);
}

.ms-contact {
  display: grid;
  grid-template-columns: .8fr 1.4fr .8fr;
  gap: 34px;
  align-items: start;
}

.ms-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.ms-form input,
.ms-form textarea {
  width: 100%;
  border: 1px solid var(--ms-line);
  background: rgba(255,255,255,.7);
  min-height: 42px;
  padding: 10px 12px;
  /* Safari na iPhonie przybliża cały ekran przy dotknięciu pola z czcionką
     mniejszą niż 16 px. Nie ma sposobu, żeby to wyłączyć — trzeba dać 16 px. */
  font-size: 16px;
}

.ms-form button {
  cursor: pointer;
}

.ms-form button:disabled {
  cursor: wait;
  opacity: .72;
}

.ms-form textarea,
.ms-form .ms-form-full {
  grid-column: 1 / -1;
}

.ms-form textarea {
  min-height: 92px;
}

.ms-hp {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.ms-form-status {
  min-height: 20px;
  margin: 0;
  font-size: 13px;
  color: var(--ms-muted);
}
.ms-form-status.is-ok {
  color: #2f7a3f;
}
.ms-form-status.is-error {
  color: #a9563f;
}

.ms-note {
  color: var(--ms-muted);
  line-height: 1.7;
}

.ms-contact-list {
  display: grid;
  gap: 12px;
  color: var(--ms-muted);
  line-height: 1.5;
}

.ms-contact-row {
  display: grid;
  grid-template-columns: 30px 1fr;
  gap: 8px;
  align-items: center;
}

.ms-contact-row a {
  color: inherit;
  text-decoration: none;
}

.ms-contact-row a:hover {
  color: var(--ms-gold);
}

.ms-contact-icon {
  width: 28px;
  height: 28px;
  object-fit: contain;
}

.ms-split {
  display: grid;
  grid-template-columns: .95fr 1.05fr;
  gap: 42px;
  align-items: center;
}

.ms-polaroid {
  transform: rotate(-3deg);
  background: white;
  padding: 12px;
  box-shadow: 0 18px 38px rgba(54, 39, 25, .14);
}

.ms-polaroid img {
  width: 100%;
  display: block;
}

.ms-price {
  font-family: Georgia, serif;
  font-size: 36px;
  color: var(--ms-gold-dark);
  margin-top: 18px;
}

.ms-table {
  width: 100%;
  border-collapse: collapse;
  background: rgba(255,255,255,.55);
  border: 1px solid var(--ms-line);
}

.ms-table th,
.ms-table td {
  padding: 16px;
  border: 1px solid var(--ms-line);
  color: var(--ms-muted);
  text-align: center;
}

.ms-pricing-section {
  padding-top: clamp(48px, 6vw, 84px);
}

.ms-pricing-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.ms-pricing-panel {
  background: rgba(255,255,255,.72);
  border: 1px solid var(--ms-line);
  box-shadow: 0 18px 34px rgba(55, 43, 34, .08);
  padding: clamp(14px, 2vw, 22px);
}

.ms-pricing-panel h3 {
  margin: 0 0 6px;
  font-family: Georgia, serif;
  font-size: clamp(24px, 2.2vw, 30px);
  line-height: 1.05;
  text-align: center;
}

.ms-pricing-note {
  margin: 0 0 12px;
  color: var(--ms-muted);
  line-height: 1.5;
  font-size: 15px;
}

.ms-pricing-subgrid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.ms-pricing-table {
  background: rgba(255,255,255,.86);
  table-layout: fixed;
}

.ms-pricing-table th {
  background: rgba(233, 225, 214, .95);
  color: #26211d;
  font-family: Georgia, serif;
  text-transform: uppercase;
  letter-spacing: .06em;
  font-size: 12px;
  line-height: 1.12;
  padding: 8px 6px;
}

.ms-pricing-table th[colspan] {
  text-transform: none;
  letter-spacing: 0;
  font-size: 14px;
}

.ms-pricing-table td {
  vertical-align: middle;
  color: var(--ms-ink);
  padding: 8px 6px;
  font-size: 13px;
  line-height: 1.3;
}

.ms-pricing-table td:first-child {
  width: 50%;
}

.ms-pricing-note-cell {
  display: block;
  margin-top: 4px;
  color: #c53a32;
  font-size: 11px;
  line-height: 1.25;
}

.ms-pricing-th-top,
.ms-pricing-th-bottom {
  display: block;
}

.ms-pricing-th-bottom {
  font-size: 12px;
}

.ms-pricing-section .ms-table th,
.ms-pricing-section .ms-table td {
  padding-top: 8px;
  padding-bottom: 8px;
}

.ms-print-order-section {
  background:
    radial-gradient(circle at 8% 0, rgba(222, 207, 190, .32), transparent 18rem),
    #fbf8f3;
}

.ms-print-order {
  display: grid;
  grid-template-columns: minmax(220px, 0.68fr) minmax(560px, 1.6fr) minmax(260px, 0.75fr);
  gap: 22px;
  align-items: start;
}

.ms-print-uploader,
.ms-print-order-panel,
.ms-print-summary {
  min-width: 0;
}

.ms-print-order-panel,
.ms-print-summary {
  background: rgba(255,255,255,.78);
  border: 1px solid var(--ms-line);
  border-radius: 8px;
  box-shadow: 0 16px 34px rgba(55, 43, 34, .065);
}

.ms-print-order-panel {
  padding: 20px;
}

.ms-print-uploader {
  align-self: start;
  min-height: 0;
  display: grid;
  grid-template-rows: auto auto;
  align-content: start;
  gap: 16px;
}

.ms-print-drop {
  width: 100%;
  aspect-ratio: 1 / 1;
  height: auto;
  min-height: 0;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 12px;
  padding: 20px;
  border: 1px dashed rgba(169, 121, 63, .62);
  border-radius: 8px;
  background: rgba(251, 248, 243, .82);
  box-shadow: 0 16px 34px rgba(55, 43, 34, .065);
  text-align: center;
  cursor: pointer;
  transition: border-color .2s ease, background .2s ease, transform .2s ease;
}

.ms-print-drop:hover,
.ms-print-drop:focus-within {
  border-color: var(--ms-gold);
  background: #fffaf5;
  transform: translateY(-1px);
}

.ms-print-drop input {
  width: min(240px, 100%);
  display: block;
  margin: 4px auto 0;
  padding: 0;
  font-size: 0;
  line-height: 0;
  color: transparent;
  caret-color: transparent;
  text-align: center;
}

.ms-print-drop input::file-selector-button {
  display: block;
  margin: 0 auto;
  color: var(--ms-ink);
  font: inherit;
  padding: 4px 10px;
  font-size: 13px;
  line-height: 1.2;
  border: 1px solid var(--ms-line);
  background: rgba(255,255,255,.9);
  cursor: pointer;
}

.ms-print-drop-title {
  font-family: Georgia, "Times New Roman", serif;
  color: var(--ms-ink);
  font-size: clamp(20px, 1.8vw, 24px);
  line-height: 1.15;
}

.ms-print-drop-note,
.ms-print-help p,
.ms-print-summary p,
.ms-print-empty {
  color: var(--ms-muted);
  font-size: 14px;
  line-height: 1.6;
}

.ms-print-help {
  width: 100%;
  aspect-ratio: 1 / 1;
  height: auto;
  min-height: 0;
  overflow: hidden;
  display: grid;
  align-content: center;
  padding: 16px;
  background: rgba(244,238,231,.72);
  border: 1px solid rgba(222, 207, 190, .76);
  border-radius: 7px;
  box-shadow: 0 16px 34px rgba(55, 43, 34, .065);
}

.ms-print-help strong {
  display: block;
  margin-bottom: 6px;
  color: var(--ms-ink);
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
}

.ms-print-help p {
  margin: 0;
  font-size: 13px;
  line-height: 1.55;
}

.ms-print-order-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  margin-bottom: 16px;
}

.ms-print-order h3,
.ms-print-summary h3 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 24px;
  font-weight: 400;
}

.ms-print-clear,
.ms-print-item button {
  border: 0;
  background: transparent;
  color: var(--ms-gold-dark);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
}

.ms-print-clear:hover,
.ms-print-item button:hover {
  color: var(--ms-gold);
}

.ms-print-items {
  display: grid;
  gap: 14px;
}

.ms-print-item {
  display: grid;
  grid-template-columns: 80px minmax(0, 1fr) 125px;
  gap: 16px;
  align-items: stretch;
  padding: 14px;
  border: 1px solid rgba(222, 207, 190, .82);
  border-radius: 8px;
  background: rgba(251,248,243,.72);
}

.ms-print-thumb {
  width: 80px;
  aspect-ratio: 1;
  overflow: hidden;
  border-radius: 7px;
  background: #f4eee7;
  border: 3px solid #fffaf5;
  box-shadow: 0 8px 16px rgba(55, 43, 34, .10);
  align-self: center;
}

.ms-print-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.ms-print-details {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
  width: 100%;
}

.ms-print-fields {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: start;
  min-width: 0;
  width: 100%;
}

.ms-print-fields label.is-disabled {
  opacity: 0.48;
}

.ms-print-file-name {
  flex: 1 1 220px;
  min-width: 0;
  color: var(--ms-ink);
  font-weight: 700;
  font-size: 13px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.ms-print-fields label {
  display: grid;
  gap: 5px;
  color: var(--ms-muted);
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  min-width: 0;
}

.ms-print-fields > label:nth-child(1) { flex: 1.4 1 180px; }
.ms-print-fields > label:nth-child(2) { flex: 1 1 110px; }
.ms-print-fields > label:nth-child(3) { flex: 1.4 1 180px; }
.ms-print-fields > label:nth-child(4) { flex: 0.8 1 70px; }

.ms-print-fields select,
.ms-print-fields input {
  width: 100%;
  min-width: 0;
  min-height: 40px;
  border: 1px solid var(--ms-line);
  border-radius: 0;
  background: rgba(255,255,255,.86);
  color: var(--ms-ink);
  font: inherit;
  font-size: 13px;
  letter-spacing: 0;
  text-transform: none;
  padding: 0 8px;
}

.ms-print-fields select {
  text-overflow: ellipsis;
}


.ms-print-line-summary {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  align-self: center;
  text-align: right;
  gap: 4px;
}

.ms-print-line-summary strong {
  color: var(--ms-ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 20px;
  font-weight: 400;
  white-space: nowrap;
}

.ms-print-line-summary span {
  color: var(--ms-muted);
  font-size: 12px;
  line-height: 1.35;
}

.ms-print-summary {
  position: sticky;
  top: 104px;
  display: grid;
  gap: 14px;
  padding: 22px;
}

.ms-print-summary-row,
.ms-print-total {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(222, 207, 190, .76);
  color: var(--ms-muted);
}

.ms-print-summary-row strong,
.ms-print-total strong {
  color: var(--ms-ink);
  font-weight: 700;
}

.ms-print-total {
  align-items: baseline;
  color: var(--ms-ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 20px;
}

.ms-print-total strong {
  color: var(--ms-gold-dark);
  font-size: 28px;
  font-weight: 400;
  white-space: nowrap;
}

.ms-print-customer {
  display: grid;
  gap: 7px;
  padding: 12px;
  border: 1px solid rgba(222, 207, 190, .76);
  background: rgba(251, 248, 243, .68);
  border-radius: 6px;
}

.ms-print-customer label {
  color: var(--ms-muted);
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 700;
}

.ms-print-customer input {
  width: 100%;
  min-height: 38px;
  padding: 8px 10px;
  border: 1px solid var(--ms-line);
  border-radius: 4px;
  background: rgba(255,255,255,.86);
  color: var(--ms-ink);
  font: inherit;
  font-size: 13px;
}

.ms-print-customer input:focus {
  border-color: var(--ms-gold);
  outline: 2px solid var(--ms-gold);
  outline-offset: 2px;
}

.ms-print-note-field {
  display: grid;
  gap: 6px;
  margin-top: 4px;
}

.ms-print-note-field label {
  color: var(--ms-muted);
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 700;
}

.ms-print-note-field textarea {
  width: 100%;
  min-height: 80px;
  padding: 8px 10px;
  border: 1px solid var(--ms-line);
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.86);
  color: var(--ms-ink);
  font: inherit;
  font-size: 13px;
  resize: vertical;
  line-height: 1.4;
}

.ms-print-note-field textarea:focus {
  border-color: var(--ms-gold);
  outline: 2px solid var(--ms-gold);
  outline-offset: 2px;
}

.ms-print-note-field textarea:disabled {
  opacity: .48;
  background: rgba(255, 255, 255, 0.4);
  cursor: not-allowed;
}

.ms-print-summary .ms-btn {
  width: 100%;
  padding-left: 14px;
  padding-right: 14px;
  text-align: center;
}

.ms-print-summary .ms-btn.is-ready {
  background: linear-gradient(135deg, var(--ms-gold-dark), var(--ms-gold));
  border-color: var(--ms-gold-dark);
  color: #fff;
  box-shadow: 0 14px 28px rgba(166, 116, 65, .24);
  transform: translateY(-1px);
}

.ms-print-summary .ms-btn.is-ready:hover,
.ms-print-summary .ms-btn.is-ready:focus {
  box-shadow: 0 18px 34px rgba(166, 116, 65, .32);
}

.ms-print-status {
  min-height: 22px;
  margin: -2px 0 0;
  font-weight: 700;
}

.ms-print-status.is-error {
  color: #a9563f;
}

.ms-print-status.is-success {
  color: #2f7a3f;
}

.ms-print-upload-progress {
  display: grid;
  gap: 7px;
  padding: 10px 11px;
  border: 1px solid rgba(169, 121, 63, .24);
  background: rgba(255, 250, 245, .72);
  border-radius: 6px;
}

.ms-print-upload-progress[hidden] {
  display: none;
}

.ms-print-upload-progress-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  font-size: 12px;
  font-weight: 700;
  color: var(--ms-ink);
}

.ms-print-upload-progress-head strong {
  color: var(--ms-gold-dark);
  white-space: nowrap;
}

.ms-print-upload-track {
  overflow: hidden;
  height: 8px;
  border-radius: 999px;
  background: rgba(222, 207, 190, .58);
}

.ms-print-upload-track span {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #8d6f4f, var(--ms-gold));
  transition: width .18s ease;
}

.ms-print-upload-progress small {
  color: var(--ms-muted);
  font-size: 11px;
  line-height: 1.35;
}

.ms-print-summary .ms-btn:disabled {
  opacity: .48;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

.ms-about-intro {
  padding: clamp(36px, 5vw, 66px) 0 28px;
}

.ms-about-intro-grid {
  display: grid;
  grid-template-columns: 260px 1fr 150px;
  gap: 42px;
  align-items: center;
}

.ms-about-intro h2 {
  margin: 0 0 18px;
  font-size: 30px;
  color: var(--ms-gold);
}

.ms-about-copy p {
  margin: 0 0 16px;
  color: var(--ms-muted);
  line-height: 1.8;
}

.ms-about-leaf {
  min-height: 190px;
  opacity: .32;
  background:
    linear-gradient(42deg, transparent 48%, #b99569 49% 51%, transparent 52%) center/40px 40px,
    radial-gradient(ellipse at center, transparent 58%, #b99569 59% 60%, transparent 61%);
  border-radius: 50%;
}

.ms-philosophy {
  padding: clamp(42px, 5vw, 68px) 0 28px;
}

.ms-philosophy-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 1px solid var(--ms-line);
  background: rgba(255,255,255,.52);
  border-radius: 6px;
  overflow: hidden;
}

.ms-philosophy-item {
  display: grid;
  grid-template-columns: 60px minmax(0, 1fr);
  gap: 12px;
  padding: 26px 18px;
  align-items: center;
  border-right: 1px solid var(--ms-line);
}

.ms-philosophy-item > div {
  min-width: 0;
}

.ms-philosophy-item:last-child {
  border-right: 0;
}

.ms-round-icon {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  object-fit: contain;
  box-shadow: 0 0 0 1px rgba(222, 207, 190, .85);
}

.ms-philosophy-item h3,
.ms-team-person h3,
.ms-why h3,
.ms-work h3 {
  margin: 0 0 8px;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.ms-philosophy-item h3 {
  font-size: 18px;
  letter-spacing: .02em;
}

.ms-philosophy-item p {
  margin: 0;
  color: var(--ms-muted);
  line-height: 1.62;
  font-size: 14px;
}

.ms-about-two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: start;
  padding: 28px 0 44px;
}

.ms-why ul {
  list-style: none;
  margin: 18px 0 0;
  padding: 0;
}

.ms-why li {
  margin: 0 0 12px;
  color: var(--ms-muted);
  line-height: 1.55;
}

.ms-why li:before {
  content: "♥";
  color: var(--ms-gold);
  margin-right: 10px;
  font-size: 12px;
}

.ms-work-steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  text-align: center;
}

.ms-work-step img {
  width: 64px;
  height: 64px;
  object-fit: contain;
  border-radius: 50%;
  margin: 0 auto 9px;
}

.ms-work-step strong {
  display: block;
  color: var(--ms-gold);
  font-family: Georgia, serif;
  font-size: 20px;
  font-weight: 400;
}

.ms-work-step p {
  margin: 6px 0 0;
  color: var(--ms-muted);
  font-size: 13px;
  line-height: 1.45;
}

.ms-team {
  padding: clamp(42px, 5vw, 68px) 0;
  border-top: 1px solid rgba(222, 207, 190, .72);
  border-bottom: 1px solid rgba(222, 207, 190, .72);
}

.ms-team-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 70px;
}

.ms-team-person {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 34px;
  align-items: center;
}

.ms-team-person img {
  width: 160px;
  height: 170px;
  object-fit: cover;
  border-radius: 5px;
  box-shadow: 0 16px 32px rgba(54, 39, 25, .12);
}

.ms-team-name {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 10px;
}

.ms-team-name strong {
  font-family: "Brush Script MT", "Segoe Script", cursive;
  font-size: 42px;
  line-height: 1;
  font-weight: 400;
}

.ms-team-name span {
  text-transform: uppercase;
  letter-spacing: .22em;
  font-size: 13px;
}

.ms-team-person p {
  color: var(--ms-muted);
  line-height: 1.72;
  margin: 0 0 10px;
}

.ms-about-stats {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1px;
  background: var(--ms-line);
  border-top: 1px solid var(--ms-line);
  border-bottom: 1px solid var(--ms-line);
}

.ms-about-stat {
  background: var(--ms-paper);
  min-height: 112px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 16px 14px;
  text-align: center;
}

.ms-about-stat img {
  width: 44px;
  height: 44px;
  object-fit: contain;
}

.ms-about-stat:first-child img {
  width: 54px;
  height: 54px;
  margin-bottom: -4px;
}

.ms-about-stat strong {
  display: block;
  font-family: Georgia, serif;
  font-size: 32px;
  font-weight: 400;
  line-height: 1;
}

.ms-about-stat span {
  display: block;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--ms-muted);
  font-size: 11px;
  line-height: 1.35;
  margin-top: 5px;
}

.ms-wedding-section {
  padding: clamp(46px, 5vw, 76px) 0;
  border-bottom: 1px solid rgba(222, 207, 190, .8);
}

.ms-wedding-title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 22px;
  margin-bottom: 34px;
}

.ms-wedding-title:before,
.ms-wedding-title:after {
  content: "";
  width: min(140px, 16vw);
  height: 1px;
  background: var(--ms-gold);
  opacity: .72;
}

.ms-wedding-title h2 {
  margin: 0;
  font-family: "Brush Script MT", "Segoe Script", cursive;
  font-size: clamp(44px, 6vw, 72px);
  line-height: 1;
}

.ms-wedding-film-grid {
  display: grid;
  grid-template-columns: 1fr 1fr minmax(260px, .78fr);
  gap: clamp(24px, 4vw, 46px);
  align-items: start;
}

.ms-wedding-package {
  position: relative;
  padding: 0 22px;
}

.ms-wedding-package + .ms-wedding-package {
  border-left: 1px solid var(--ms-line);
}

.ms-brush-label {
  position: relative;
  display: inline-block;
  min-width: 250px;
  padding: 12px 28px 13px;
  background: transparent;
  color: #fff;
  text-transform: uppercase;
  letter-spacing: .04em;
  font-family: Georgia, serif;
  font-size: 16px;
  white-space: nowrap;
  z-index: 0;
}

.ms-brush-label:before {
  content: "";
  position: absolute;
  inset: -10px -22px;
  background: url('../assets/images/brush-stroke-label.svg') center / 100% 100% no-repeat;
  z-index: -1;
  transform: rotate(-1deg);
}

.ms-wedding-side .ms-brush-label {
  min-width: 285px;
}

.ms-wedding-time {
  margin: 14px 0 24px;
  font-family: Georgia, serif;
  font-size: 20px;
}

.ms-heart-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.ms-heart-list li {
  margin: 0 0 16px;
  color: var(--ms-ink);
  line-height: 1.45;
}

.ms-heart-list li:before {
  content: "♥";
  color: var(--ms-gold);
  margin-right: 13px;
}

.ms-wedding-side .ms-heart-list li {
  color: var(--ms-muted);
  line-height: 1.55;
}

.ms-price-brush {
  position: relative;
  display: inline-block;
  margin-top: 28px;
  padding: 12px 42px 14px;
  min-width: 190px;
  text-align: center;
  background: transparent;
  font-family: Georgia, serif;
  font-size: 32px;
  z-index: 0;
}

.ms-price-brush:before {
  content: "";
  position: absolute;
  inset: -9px -20px;
  background: url('../assets/images/brush-stroke-price.svg') center / 100% 100% no-repeat;
  z-index: -1;
  transform: rotate(-1.2deg);
}

.ms-wedding-polaroid {
  position: relative;
  background:
    linear-gradient(135deg, rgba(255,255,255,.38), transparent 38%),
    #fffaf5;
  padding: 28px 18px 22px;
  box-shadow: 0 22px 34px rgba(55, 43, 34, .18);
  transform: rotate(4.5deg);
  border: 1px solid rgba(207, 185, 165, .85);
  overflow: visible;
}

.ms-wedding-polaroid:before {
  content: "";
  position: absolute;
  top: -17px;
  left: 50%;
  width: 112px;
  height: 32px;
  background:
    linear-gradient(90deg, rgba(255,255,255,.28), transparent 22%, rgba(255,255,255,.20) 58%, transparent),
    linear-gradient(180deg, rgba(231, 207, 184, .92), rgba(213, 188, 166, .76));
  box-shadow: 0 7px 14px rgba(55, 43, 34, .13);
  opacity: .94;
  z-index: 4;
  transform: translateX(-50%) rotate(4deg);
  clip-path: polygon(2% 10%, 96% 0, 100% 88%, 5% 100%);
  border-radius: 3px;
}

.ms-wedding-polaroid:after {
  content: "";
  position: absolute;
  inset: 10px;
  border: 1px solid rgba(164, 130, 101, .42);
  pointer-events: none;
  z-index: 2;
}

.ms-wedding-polaroid img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  display: block;
  margin-top: 16px;
  border: 10px solid #fff;
  box-shadow: 0 10px 20px rgba(55, 43, 34, .13);
}

.ms-wedding-polaroid .ms-wedding-card-note {
  position: relative;
  z-index: 3;
  padding: 6px 10px 0;
}

.ms-wedding-card-note {
  text-align: center;
  font-family: Georgia, serif;
  font-size: 23px;
  line-height: 1.35;
}

.ms-wedding-photo-grid {
  display: grid;
  grid-template-columns: 1.1fr .78fr 1fr;
  gap: clamp(26px, 4vw, 50px);
  align-items: center;
}

.ms-feature-list {
  display: grid;
  gap: 22px;
}

.ms-feature-row {
  display: grid;
  grid-template-columns: 54px 1fr;
  gap: 16px;
  align-items: center;
  color: var(--ms-muted);
  line-height: 1.55;
}

.ms-feature-row img {
  width: 48px;
  height: 48px;
  padding: 10px;
  border-radius: 50%;
  background: #eee3d8;
  object-fit: contain;
}

.ms-wedding-photo-card img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  display: block;
  box-shadow: 0 16px 30px rgba(55, 43, 34, .14);
  transform: rotate(-5deg);
}

.ms-wedding-side {
  display: grid;
  gap: 22px;
}

.ms-combo-card {
  border: 1px solid var(--ms-line);
  border-radius: 12px;
  padding: 32px 26px;
  text-align: center;
  background: rgba(255,255,255,.32);
}

.ms-combo-card strong.ms-serif {
  display: block;
  font-size: 21px;
  margin-bottom: 24px;
  color: var(--ms-ink);
}

.ms-combo-row {
  margin-bottom: 22px;
  color: var(--ms-muted);
}

.ms-combo-row span {
  display: block;
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-bottom: 4px;
}

.ms-combo-price {
  display: block;
  font-size: 28px;
  color: var(--ms-ink);
  font-family: Georgia, serif;
}

.ms-combo-note {
  margin: -6px 0 18px;
  color: var(--ms-gold-dark);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.ms-combo-heart {
  width: 80px;
  height: 40px;
  margin: 10px auto 0;
  display: block;
  opacity: .8;
}

.ms-wedding-links {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin-top: 28px;
}

.ms-wedding-links.is-center {
  justify-content: center;
}

@media (max-width: 960px) {
  .ms-pricing-grid {
    grid-template-columns: 1fr;
  }

  .ms-pricing-subgrid {
    grid-template-columns: 1fr;
  }

  .ms-hero,
  .ms-split,
  .ms-contact {
    grid-template-columns: 1fr;
  }

  .ms-hero.is-overlay .ms-hero-copy {
    width: min(72%, 620px);
  }

  .ms-hero-carousel {
    min-height: 320px;
  }

  .ms-hero-carousel .ms-hero-copy {
    width: min(70%, 620px);
    padding: 20px 22px;
  }

  .ms-hero-carousel h1 {
    font-size: clamp(30px, 4vw, 46px);
  }

  .ms-grid,
  .ms-grid.is-five,
  .ms-grid.is-six,
  .ms-grid.is-three,
  .ms-grid.is-seven,
  .ms-offer-grid,
  .ms-steps,
  .ms-testimonials,
  .ms-stats,
  .ms-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ms-about-intro-grid,
  .ms-about-two-col,
  .ms-team-grid,
  .ms-team-person,
  .ms-philosophy-grid,
  .ms-about-stats {
    grid-template-columns: 1fr;
  }

  .ms-philosophy-item {
    border-right: 0;
    border-bottom: 1px solid var(--ms-line);
  }

  .ms-philosophy-item:last-child {
    border-bottom: 0;
  }

  .ms-work-steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ms-reviews-slider {
    gap: 28px;
  }

  .ms-review-card {
    flex-basis: calc(50% - 14px);
  }

  .ms-reviews-slider:after {
    flex-basis: calc(50% + 14px);
  }

}

@media (max-width: 1250px) {
  .ms-print-order {
    grid-template-columns: 1fr;
  }

  .ms-print-uploader {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: none;
  }

  .ms-print-drop,
  .ms-print-help {
    aspect-ratio: auto;
    min-height: 180px;
    padding: 24px 20px;
  }

  .ms-print-summary {
    position: static;
  }
}

@media (max-width: 1180px) {
  .ms-topbar {
    position: static;
    grid-template-columns: 1fr;
    gap: 16px;
    padding: 22px;
  }

  .admin-bar .ms-topbar {
    top: 0;
  }

  .ms-brand {
    justify-content: center;
  }

  .ms-main-nav,
  .ms-header-tools {
    flex-wrap: wrap;
    justify-content: center;
  }

  .ms-main-nav a {
    padding: 8px 0;
  }

  .ms-hero,
  .ms-split,
  .ms-contact {
    grid-template-columns: 1fr;
  }

  .ms-hero.is-overlay .ms-hero-copy {
    width: min(72%, 620px);
  }

  .ms-hero-carousel {
    min-height: 320px;
    background-position: 60% center;
  }

  .ms-hero-carousel .ms-hero-copy {
    width: min(72%, 620px);
  }

  .ms-pricing-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ms-grid,
  .ms-grid.is-five,
  .ms-grid.is-six,
  .ms-grid.is-three,
  .ms-grid.is-seven,
  .ms-offer-grid,
  .ms-steps,
  .ms-testimonials,
  .ms-stats,
  .ms-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ms-reviews-slider {
    gap: 28px;
  }

  .ms-review-card {
    flex-basis: calc(50% - 14px);
  }

  .ms-reviews-slider:after {
    flex-basis: calc(50% + 14px);
  }

}

@media (max-width: 640px) {
  .ms-wrap {
    width: min(100% - 28px, 1180px);
  }

  .ms-pricing-grid {
    grid-template-columns: 1fr;
  }

  .ms-grid,
  .ms-grid.is-five,
  .ms-grid.is-six,
  .ms-grid.is-three,
  .ms-grid.is-seven,
  .ms-offer-grid,
  .ms-pricing-subgrid,
  .ms-steps,
  .ms-testimonials,
  .ms-stats,
  .ms-gallery,
  .ms-print-order,
  .ms-print-uploader,
  .ms-form {
    grid-template-columns: 1fr;
  }

  .ms-print-summary {
    position: static;
  }

  .ms-print-item {
    grid-template-columns: 70px minmax(0, 1fr);
    align-items: start;
    gap: 12px;
  }

  .ms-print-line-summary {
    grid-column: 1 / -1;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    border-top: 1px dashed rgba(222, 207, 190, 0.5);
    padding-top: 8px;
    margin-top: 4px;
  }

  .ms-hero-copy {
    padding: 42px 22px;
  }

  .ms-hero-carousel {
    min-height: 280px;
    background-position: 70% center;
  }

  .ms-hero-carousel .ms-hero-copy {
    width: 100%;
    padding: 14px;
    align-items: flex-start;
  }

  .ms-hero-copy-surface {
    max-width: 100%;
    padding: 0;
  }

  .ms-hero-carousel h1 {
    font-size: clamp(28px, 9vw, 38px);
    margin-bottom: 12px;
    white-space: nowrap;
  }

  .ms-hero-carousel p {
    margin-bottom: 14px;
  }

  .ms-hero-carousel .ms-btn {
    min-height: 38px;
    padding: 0 18px;
  }

  .ms-hero-carousel-group img {
    width: clamp(130px, 34vw, 180px);
  }

  .ms-wedding-title {
    gap: 12px;
  }

  .ms-wedding-title h2 {
    font-size: 42px;
  }

  .ms-hero.is-overlay {
    min-height: 620px;
    background-position: 62% center;
  }

  .ms-hero.is-overlay:before {
    background: linear-gradient(90deg, rgba(251,248,243,.96) 0%, rgba(251,248,243,.84) 58%, rgba(251,248,243,.24) 100%);
  }

  .ms-hero.is-overlay .ms-hero-copy {
    width: 100%;
  }

  .ms-hero.is-overlay h1,
  .ms-hero.is-overlay .ms-script {
    white-space: normal;
  }

  .ms-feature-band {
    grid-template-columns: 1fr;
  }

  .ms-feature-copy {
    width: min(78%, 330px);
  }

  .ms-heading {
    gap: 12px;
  }

  .ms-reviews-slider {
    gap: 16px;
  }

  .ms-review-card {
    flex-basis: 100%;
  }

  .ms-reviews-slider:after {
    display: none;
  }

  .ms-review-card {
    grid-template-columns: 70px 1fr;
    gap: 14px;
    padding: 28px 18px 22px;
  }

  .ms-review-card > img,
  .ms-review-avatar {
    width: 70px;
    height: 70px;
  }

  .ms-reviews-bottom {
    grid-template-columns: 1fr;
    justify-items: center;
  }

  .ms-review-dots,
  .ms-more-reviews {
    grid-column: auto;
    justify-self: center;
  }
}

@media (max-width: 760px) {
  .ms-wedding-hero,
  .ms-wedding-film-grid,
  .ms-wedding-photo-grid {
    grid-template-columns: 1fr;
  }

  .ms-wedding-package + .ms-wedding-package {
    border-left: 0;
    border-top: 1px solid var(--ms-line);
    padding-top: 28px;
  }

  .ms-wedding-polaroid,
  .ms-wedding-photo-card img {
    transform: none;
    max-width: 420px;
    margin: 0 auto;
  }
}

.ms-wedding-gallery-page {
  background:
    radial-gradient(circle at 50% 0, rgba(255,255,255,.88), transparent 22rem),
    var(--ms-paper);
  padding-top: clamp(54px, 7vw, 92px);
}

.ms-wedding-gallery-page .ms-wedding-title {
  margin-bottom: 18px;
}

.ms-wedding-gallery-page .ms-wedding-title h1 {
  margin: 0;
  font-family: "Brush Script MT", "Segoe Script", cursive;
  font-size: clamp(48px, 7vw, 84px);
  font-weight: 400;
  color: #4c4038;
  line-height: .95;
}

.ms-gallery-intro {
  text-align: center;
  margin: 0 auto 34px;
}

.ms-gallery-intro .ms-brush-label {
  min-width: min(760px, 78vw);
  margin-bottom: 18px;
}

.ms-gallery-intro p {
  margin: 0;
  color: var(--ms-muted);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 18px;
}

.ms-wedding-gallery-grid {
  column-count: 3;
  column-gap: 14px;
}

.ms-wedding-gallery-item {
  margin: 0;
  margin-bottom: 14px;
  background: #fffaf5;
  border: 1px solid rgba(222, 207, 190, .88);
  box-shadow: 0 12px 24px rgba(55, 43, 34, .12);
  overflow: hidden;
  break-inside: avoid;
}

.ms-gallery-open {
  width: 100%;
  padding: 0;
  border: 0;
  display: block;
  background: transparent;
  cursor: zoom-in;
  line-height: 0;
}

.ms-wedding-gallery-item img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform .5s ease, filter .5s ease;
}

.ms-wedding-gallery-item:nth-child(3n + 2) img {
  aspect-ratio: auto;
}

.ms-wedding-gallery-item:nth-child(5n) img {
  aspect-ratio: auto;
}

.ms-wedding-gallery-item:hover img {
  transform: scale(1.035);
  filter: saturate(1.04) contrast(1.03);
}

.ms-gallery-lightbox[hidden] {
  display: none !important;
}

.ms-gallery-lightbox {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  place-items: center;
  padding: clamp(18px, 3vw, 42px);
  background: rgba(34, 28, 24, .9);
}

.ms-gallery-lightbox img {
  max-width: min(92vw, 1400px);
  max-height: 86vh;
  object-fit: contain;
  box-shadow: 0 24px 60px rgba(0,0,0,.42);
  background: #fffaf5;
}

.ms-gallery-lightbox-close,
.ms-gallery-lightbox-nav {
  position: fixed;
  z-index: 1001;
  width: 46px;
  height: 46px;
  border: 1px solid rgba(255,255,255,.72);
  border-radius: 50%;
  background: rgba(255,250,245,.92);
  color: #4c4038;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 34px;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 12px 26px rgba(0,0,0,.24);
}

.ms-gallery-lightbox-close {
  top: 22px;
  right: 22px;
  font-size: 32px;
}

.ms-gallery-lightbox-nav {
  top: 50%;
  transform: translateY(-50%);
}

.ms-gallery-lightbox-nav.is-prev {
  left: 22px;
}

.ms-gallery-lightbox-nav.is-next {
  right: 22px;
}

.ms-gallery-lightbox-close:hover,
.ms-gallery-lightbox-nav:hover {
  background: #fff;
}

body.ms-lightbox-open {
  overflow: hidden;
}

.ms-wedding-video-page {
  border-bottom: 0;
}

.ms-wedding-video-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(18px, 2.5vw, 28px);
}

.ms-video-quality-note {
  display: block;
  width: fit-content;
  min-width: min(520px, 100%);
  margin: -4px 0 34px;
  color: #000;
  font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.55;
  text-transform: none;
  letter-spacing: 0;
  text-align: center;
  white-space: nowrap;
}

.ms-video-quality-note:before {
  background-image: url('../assets/images/brush-stroke-price.svg');
  transform: rotate(-.8deg);
}

.ms-wedding-video-card {
  position: relative;
  margin: 0;
  padding: clamp(14px, 1.5vw, 18px) clamp(14px, 1.5vw, 18px) clamp(16px, 1.7vw, 20px);
  background: rgba(255, 250, 246, .86);
  border: 1px solid rgba(196, 166, 145, .58);
  box-shadow: 0 18px 38px rgba(55, 43, 34, .14);
  cursor: pointer;
  overflow: visible;
  transition: transform .2s ease, box-shadow .2s ease;
}

.ms-wedding-video-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 22px 44px rgba(55, 43, 34, .18);
}

.ms-video-couple-name {
  display: block;
  margin: 0 0 14px;
  color: var(--ms-muted);
  font-family: Georgia, serif;
  font-size: clamp(14px, 1.55vw, 18px);
  line-height: 1.25;
  text-transform: uppercase;
  letter-spacing: .06em;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ms-wedding-video-card iframe {
  width: 100%;
  aspect-ratio: 16 / 9;
  display: block;
  border: 0;
  background: #1f1a17;
}

.ms-wedding-video-card img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  display: block;
  box-sizing: border-box;
  border: clamp(6px, .8vw, 8px) solid #fff;
  filter: saturate(1.02) contrast(1.02);
  box-shadow: 0 10px 22px rgba(55, 43, 34, .14);
}

.ms-video-play {
  position: absolute;
  inset: calc(50% + 28px) auto auto 50%;
  transform: translate(-50%, -50%);
  width: 74px;
  height: 74px;
  display: grid;
  place-items: center;
  border: 2px solid rgba(255,255,255,.9);
  border-radius: 50%;
  background: rgba(48, 38, 31, .22);
  color: #fff;
  font-size: 28px;
  line-height: 1;
  box-shadow: 0 12px 28px rgba(0,0,0,.22);
}

.ms-wedding-video-card:hover .ms-video-play {
  background: rgba(48, 38, 31, .32);
}

.ms-video-frame-shell {
  width: min(96vw, 1920px);
  aspect-ratio: 16 / 9;
  background: #000;
  box-shadow: 0 24px 60px rgba(0,0,0,.42);
}

.ms-video-frame-shell iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

@media (max-width: 900px) {
  .ms-wedding-gallery-grid {
    column-count: 2;
  }
}

@media (max-width: 640px) {
  .ms-wedding-gallery-page .ms-wedding-title h1 {
    font-size: 48px;
  }

  .ms-gallery-intro .ms-brush-label {
    min-width: 0;
    width: 100%;
    font-size: 13px;
  }

  .ms-wedding-gallery-grid {
    column-count: 1;
    column-gap: 12px;
  }

  .ms-wedding-video-grid {
    grid-template-columns: 1fr;
  }

  .ms-video-quality-note {
    min-width: 0;
    width: 100%;
    white-space: normal;
  }

  .ms-video-couple-name {
    font-size: clamp(13px, 3.6vw, 16px);
  }

  .ms-video-frame-shell {
    width: min(100vw - 28px, 1280px);
  }

  .ms-gallery-lightbox {
    padding: 58px 14px 22px;
  }

  .ms-gallery-lightbox-close,
  .ms-gallery-lightbox-nav {
    width: 40px;
    height: 40px;
    font-size: 28px;
  }

  .ms-gallery-lightbox-nav.is-prev {
    left: 10px;
  }

  .ms-gallery-lightbox-nav.is-next {
    right: 10px;
  }
}

@media (max-width: 760px) {
  html,
  body {
    max-width: 100%;
    overflow-x: hidden;
  }

  body {
    font-size: 15px;
  }

  [id] {
    scroll-margin-top: 24px;
  }

  .ms-topbar {
    min-height: 0;
    gap: 12px;
    padding: 14px;
    overflow-x: clip;
  }

  .ms-brand-logo {
    width: clamp(86px, 28vw, 112px);
  }

  .ms-main-nav {
    width: 100%;
    min-width: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px 12px;
    overflow: hidden;
  }

  .ms-main-nav a {
    padding: 6px 0;
    font-size: 12px;
    letter-spacing: .02em;
    white-space: normal;
    text-align: center;
  }

  .ms-header-tools {
    width: 100%;
    min-width: 0;
    display: grid;
    grid-template-columns: repeat(5, 32px);
    justify-content: center;
    justify-items: center;
    align-items: center;
    gap: 10px;
    white-space: normal;
  }

  .ms-divider {
    display: none;
  }

  .ms-header-btn {
    grid-column: 1 / -1;
    width: min(260px, 100%);
    min-height: 38px;
    padding: 0 14px;
    font-size: 10px;
    letter-spacing: .08em;
  }

  .ms-page {
    --section-pad: 42px;
  }

  .ms-wrap {
    width: min(100% - 28px, 1180px);
  }

  .ms-heading {
    gap: 10px;
    margin-bottom: 26px;
  }

  .ms-heading:before,
  .ms-heading:after,
  .ms-wedding-title:before,
  .ms-wedding-title:after {
    width: 32px;
    min-width: 32px;
  }

  .ms-heading h2,
  .ms-wedding-title h2 {
    font-size: clamp(30px, 10vw, 42px);
    line-height: 1.05;
    letter-spacing: .03em;
  }

  .ms-actions,
  .ms-wedding-links {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    width: 100%;
  }

  .ms-btn {
    width: 100%;
    min-height: 42px;
    padding: 0 16px;
    font-size: 13px;
    letter-spacing: .04em;
    text-align: center;
  }

  .ms-hero,
  .ms-hero.is-overlay,
  .ms-hero-carousel,
  .ms-sessions-hero {
    min-height: auto;
  }

  .ms-hero-copy,
  .ms-hero.is-overlay .ms-hero-copy,
  .ms-hero-carousel .ms-hero-copy,
  .ms-sessions-hero-copy,
  .ms-wedding-hero-copy {
    width: 100%;
    padding: 34px 18px;
  }

  .ms-hero h1,
  .ms-hero-carousel h1,
  .ms-sessions-hero-copy h1 {
    font-size: clamp(29px, 8.4vw, 36px);
    line-height: 1.05;
    max-width: 100%;
    overflow-wrap: normal;
  }

  .ms-hero .ms-script,
  .ms-hero-carousel .ms-script,
  .ms-sessions-hero-copy .ms-script {
    font-size: clamp(24px, 7.4vw, 34px);
    line-height: .95;
    max-width: 100%;
  }

  .ms-hero-carousel h1 .ms-script {
    white-space: normal;
  }

  .ms-hero:not(.ms-hero-carousel) h1 .ms-script {
    white-space: normal;
  }

  .ms-hero p,
  .ms-hero-carousel p,
  .ms-sessions-hero-copy p {
    max-width: 100%;
    font-size: 15px;
    line-height: 1.58;
  }

  .ms-feature-band,
  .ms-offer-grid,
  .ms-grid,
  .ms-grid.is-five,
  .ms-grid.is-six,
  .ms-grid.is-three,
  .ms-grid.is-seven,
  .ms-steps,
  .ms-testimonials,
  .ms-stats,
  .ms-gallery,
  .ms-pricing-grid,
  .ms-pricing-subgrid,
  .ms-print-order,
  .ms-print-uploader,
  .ms-about-intro-grid,
  .ms-about-two-col,
  .ms-work-steps,
  .ms-team-grid,
  .ms-team-person,
  .ms-about-stats,
  .ms-contact,
  .ms-form {
    grid-template-columns: 1fr;
  }

  .ms-card-body,
  .ms-pricing-panel,
  .ms-print-order-panel,
  .ms-print-summary,
  .ms-combo-card {
    padding: 18px;
  }

  .ms-print-summary {
    position: static;
  }

  .ms-print-item {
    grid-template-columns: 70px minmax(0, 1fr);
    align-items: start;
    gap: 12px;
  }

  .ms-print-file-name-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }

  .ms-print-res-row {
    justify-content: flex-start;
  }

  .ms-print-thumb {
    align-self: start;
  }

  .ms-print-fields {
    flex-direction: column;
  }

  .ms-print-fields > label {
    flex: 1 1 100% !important;
    width: 100%;
  }

  .ms-print-line-summary {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    border-top: 1px dashed rgba(222, 207, 190, 0.5);
    padding-top: 8px;
    margin-top: 4px;
    gap: 8px 12px;
  }

  .ms-print-line-summary span {
    font-size: 11px;
  }

  .ms-mini-card .ms-btn.is-ghost {
    white-space: normal;
    line-height: 1.25;
  }

  .ms-feature {
    min-height: 230px;
  }

  .ms-feature-copy {
    width: min(82%, 340px);
    padding: 18px;
  }

  .ms-feature img {
    min-height: 230px;
  }

  .ms-offer-card,
  .ms-offer-card > img {
    min-height: 220px;
  }

  .ms-feature-row {
    grid-template-columns: 44px 1fr;
    gap: 12px;
    align-items: start;
  }

  .ms-feature-row img {
    width: 42px;
    height: 42px;
    padding: 9px;
  }

  .ms-wedding-film-grid,
  .ms-wedding-photo-grid {
    gap: 30px;
  }

  .ms-wedding-package {
    padding: 0;
  }

  .ms-wedding-side .ms-brush-label,
  .ms-brush-label {
    min-width: 0;
    width: 100%;
    max-width: 100%;
    white-space: normal;
    text-align: center;
    line-height: 1.35;
    overflow-wrap: anywhere;
  }

  .ms-price-brush {
    min-width: min(190px, 82vw);
  }

  .ms-table {
    table-layout: fixed;
  }

  .ms-table th,
  .ms-table td {
    padding: 9px 6px;
    overflow-wrap: anywhere;
  }

  .ms-pricing-table th {
    font-size: 11px;
    letter-spacing: .03em;
  }

  .ms-pricing-table td {
    font-size: 12px;
  }

  .ms-pricing-note-cell {
    font-size: 10px;
  }

  .ms-team-person {
    justify-items: center;
    text-align: center;
  }

  .ms-team-name {
    justify-content: center;
    flex-wrap: wrap;
  }

  .ms-about-stat {
    min-height: 0;
    padding: 18px 14px;
  }

  .ms-review-card {
    grid-template-columns: 62px 1fr;
    gap: 12px;
    padding: 24px 16px 20px;
  }

  .ms-review-card > img,
  .ms-review-avatar {
    width: 62px;
    height: 62px;
  }

  .ms-contact-row {
    grid-template-columns: 28px minmax(0, 1fr);
  }

  .ms-contact-row a,
  .ms-contact-row span {
    overflow-wrap: anywhere;
  }

  .ms-wedding-gallery-page {
    padding-top: 44px;
  }

  .ms-wedding-gallery-page .ms-wedding-title h1 {
    font-size: clamp(42px, 14vw, 54px);
    line-height: 1;
  }

  .ms-gallery-intro {
    margin-bottom: 28px;
  }

  .ms-gallery-intro p {
    font-size: 16px;
    line-height: 1.58;
  }

  .ms-gallery-intro .ms-brush-label,
  .ms-video-quality-note {
    padding-left: 16px;
    padding-right: 16px;
  }

  .ms-video-quality-note {
    margin-bottom: 24px;
    font-size: 15px;
    white-space: normal;
    overflow-wrap: normal;
  }

  .ms-wedding-video-card {
    padding: 14px;
  }

  .ms-video-play {
    width: 58px;
    height: 58px;
    font-size: 22px;
    inset: calc(50% + 20px) auto auto 50%;
  }
}

@media (max-width: 420px) {
  .ms-wrap {
    width: min(100% - 22px, 1180px);
  }

  .ms-topbar {
    padding: 12px 11px;
  }

  .ms-main-nav {
    gap: 7px 11px;
  }

  .ms-main-nav a {
    font-size: 11px;
  }

  .ms-header-tools {
    gap: 8px;
  }

  .ms-icon-link {
    width: 26px;
    height: 26px;
  }

  .ms-icon-link img {
    width: 22px;
    height: 22px;
  }

  .ms-header-btn {
    flex: 1 1 145px;
    padding: 0 10px;
  }

  .ms-heading h2,
  .ms-wedding-title h2 {
    font-size: clamp(28px, 11vw, 38px);
  }

  .ms-heading:before,
  .ms-heading:after,
  .ms-wedding-title:before,
  .ms-wedding-title:after {
    width: 22px;
    min-width: 22px;
  }

  .ms-hero-copy,
  .ms-hero.is-overlay .ms-hero-copy,
  .ms-hero-carousel .ms-hero-copy,
  .ms-sessions-hero-copy,
  .ms-wedding-hero-copy {
    padding-left: 14px;
    padding-right: 14px;
  }

  .ms-card-body,
  .ms-pricing-panel,
  .ms-combo-card {
    padding: 16px 14px;
  }

  .ms-pricing-panel h3 {
    font-size: 24px;
  }

  .ms-review-card {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
  }

  .ms-review-mark {
    left: 50%;
    transform: translateX(-50%);
  }

  .ms-gallery-lightbox-nav.is-prev {
    left: 8px;
  }

  .ms-gallery-lightbox-nav.is-next {
    right: 8px;
  }
}

/* --- SCROLL REVEAL ANIMATIONS --- */
.ms-reveal {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform, opacity;
}

.ms-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* --- PREMIUM INTERACTIVE FEATURES --- */

/* 1. Quality badges & layout improvements for print ordering */
.ms-print-file-name-row {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 8px 12px;
  border-bottom: 1px dashed rgba(222, 207, 190, 0.4);
  padding-bottom: 8px;
  width: 100%;
}

.ms-print-res-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 8px;
  justify-content: flex-end;
  flex: 0 0 auto;
}

.ms-print-resolution {
  font-size: 11px;
  color: var(--ms-muted);
  line-height: 1.2;
}

.ms-print-thumb {
  position: relative;
}

.ms-print-dpi-badge {
  display: none;
  padding: 2px 6px;
  font-size: 10px;
  font-weight: 700;
  border-radius: 4px;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  vertical-align: middle;
  white-space: nowrap;
}

.ms-print-dpi-badge.quality-excellent {
  background-color: #d1e7dd;
  color: #0f5132;
  border: 1px solid #badbcc;
}

.ms-print-dpi-badge.quality-good {
  background-color: #fff3cd;
  color: #664d03;
  border: 1px solid #ffecb5;
}

.ms-print-dpi-badge.quality-low {
  background-color: #f8d7da;
  color: #842029;
  border: 1px solid #f5c2c7;
}

.ms-summary-row {
  display: flex;
  justify-content: space-between;
  margin-bottom: 10px;
  font-size: 14px;
}

.ms-summary-row.discount {
  color: #2e7d32;
  font-weight: 500;
}

.ms-summary-row.total {
  font-size: 18px;
  font-weight: bold;
  color: var(--ms-ink);
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px dashed var(--ms-line);
}

.ms-summary-row.total strong {
  color: var(--ms-gold);
  font-family: Playfair Display, Georgia, serif;
  font-size: 24px;
}

/* 3. Session Guide Accordion */
.ms-session-guide-accordion {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-top: 32px;
}

.ms-accordion-item {
  background: white;
  border: 1px solid var(--ms-line);
  border-radius: 6px;
  overflow: hidden;
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.ms-accordion-item:hover {
  border-color: var(--ms-gold);
}

.ms-accordion-item.active {
  border-color: var(--ms-gold);
  box-shadow: 0 4px 12px rgba(169, 121, 63, 0.05);
}

.ms-accordion-header {
  padding: 20px 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  user-select: none;
}

.ms-accordion-header h3 {
  margin: 0;
  font-size: 18px;
  font-family: Playfair Display, Georgia, serif;
  color: var(--ms-ink);
}

.ms-accordion-icon {
  font-size: 20px;
  color: var(--ms-gold);
  transition: transform 0.3s ease;
  font-weight: bold;
}

.ms-accordion-item.active .ms-accordion-icon {
  transform: rotate(45deg);
}

.ms-accordion-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.ms-accordion-body {
  padding: 0 24px 24px 24px;
  font-size: 15px;
  color: var(--ms-muted);
  border-top: 1px solid var(--ms-cream);
  padding-top: 16px;
}

.ms-accordion-body p {
  margin: 0 0 12px 0;
}

.ms-accordion-body p:last-child {
  margin-bottom: 0;
}

.ms-accordion-body ul, .ms-accordion-body ol {
  margin: 12px 0;
  padding-left: 20px;
}

.ms-accordion-body li {
  margin-bottom: 6px;
}

/* Contact inquiry: shared hooks also style protected forms in saved CMS templates. */
#kontakt > .ms-wrap.ms-contact {
  grid-template-columns: minmax(240px,.8fr) minmax(0,1.7fr) !important;
  max-width: 1240px !important;
  gap: clamp(32px,5vw,72px) !important;
  align-items: start;
}
#kontakt > .ms-contact > .kt-head { margin: 0; text-align: left; }
#kontakt > .ms-contact > .kt-head h2 { font-size: clamp(36px,3.6vw,54px); line-height: 1.12; }
#kontakt > .ms-contact > .kt-head .kt-lead { font-size: 15px; line-height: 1.8; margin-top: 24px; }
#kontakt .ms-contact-wizard-container {
  position: relative; width: 100%; max-width: none; margin: 0 !important;
  padding: clamp(24px,3vw,40px); border: 1px solid #e5ddd2; border-radius: 16px;
  background: #fff; box-shadow: 0 12px 40px #2d292605;
  backdrop-filter: none; overflow: visible;
}
#kontakt .ms-contact-wizard-container::before { content: none; }
.ms-contact-wizard-container [hidden] { display: none !important; }
#kontakt .ms-wizard-progress { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin: 0 0 34px; }
#kontakt .ms-wizard-progress::before { content: none; }
#kontakt .ms-wizard-progress-step {
  display: flex; align-items: center; gap: 7px; width: auto; height: auto;
  border: 0; border-top: 2px solid #e9e4dd; padding-top: 12px;
  border-radius: 0; background: none; box-shadow: none;
  color: #827970; font-size: 11px; font-weight: 500; transition: color .2s,border-color .2s;
}
#kontakt .ms-wizard-progress-step.active { border-color: #a9793f; color: #694a28; }
#kontakt .ms-wizard-progress-step[aria-current] { color: #2d2926; font-weight: 650; }
.ms-wizard-step-number { font-variant-numeric: tabular-nums; opacity: .7; }
.ms-form-wizard { position: relative; }
.ms-wizard-step { display: none; }
.ms-wizard-step.active { display: block; }
#kontakt .ms-wizard-step h3 { font-family: inherit; font-size: 22px; font-weight: 550; line-height: 1.3; letter-spacing: -.025em; margin: 0 0 10px; color: #2d2926; scroll-margin-top: 130px; }
.ms-wizard-step h3:focus { outline: none; }
.ms-wizard-step > p { color: #756b61; font-size: 14px; line-height: 1.7; margin: 0 0 24px; }
#kontakt .ms-wizard-services-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin: 28px 0 0; }
#kontakt .ms-wizard-service-card {
  display: grid; grid-template-columns: 30px minmax(0,1fr); column-gap: 12px; align-content: center;
  position: relative; min-height: 120px; padding: 22px 28px 22px 18px;
  border: 1px solid #e5ddd2; border-radius: 10px; background: #fff; text-align: left;
  cursor: pointer; box-shadow: none; transition: background .2s,border-color .2s;
}
#kontakt .ms-wizard-service-card:hover { transform: none; border-color: #ad8b65; background: #fcfaf7; }
#kontakt .ms-wizard-service-card.active { border-color: #a9793f; background: #f8f3eb; box-shadow: inset 0 0 0 1px #a9793f; }
#kontakt .ms-wizard-service-card:focus-within { outline: 2px solid #79532a; outline-offset: 3px; }
#kontakt .ms-wizard-service-card .ms-wizard-service-icon { grid-row: 1 / 3; align-self: center; width: 28px; height: 32px; margin: 0; object-fit: contain; }
#kontakt .ms-wizard-service-card strong { font-family: inherit; font-size: 14px; font-weight: 600; line-height: 1.4; margin: 0 !important; color: #2d2926; }
#kontakt .ms-wizard-service-card small { grid-column: 2; display: block; margin-top: 6px; font-size: 11px; line-height: 1.6; color: #776c60; }
#kontakt .ms-wizard-service-card input[type=radio] { position: absolute; top: 10px; right: 10px; width: 14px; height: 14px; padding: 0; margin: 0; accent-color: #a9793f; }
#kontakt .ms-form-wizard .ms-form { display: grid; grid-template-columns: 1fr; gap: 18px; }
#kontakt .ms-form-wizard .ms-form > div { margin: 0 !important; }
#kontakt .ms-form-wizard label:not(.ms-wizard-service-card) { display: block; font-size: 12px !important; font-weight: 500 !important; letter-spacing: 0 !important; text-transform: none !important; color: #514a42 !important; margin-bottom: 8px !important; }
#kontakt .ms-form-wizard input:not([type=radio]), #kontakt .ms-form-wizard textarea {
  width: 100%; min-width: 0; border: 1px solid #ded7cd; border-radius: 7px;
  background: #fff; color: #2d2926; padding: 13px 15px; font: inherit; font-size: 16px;
  line-height: 1.5; box-shadow: none; transition: border-color .2s,box-shadow .2s;
}
#kontakt .ms-form-wizard textarea { min-height: 110px; resize: vertical; }
#kontakt .ms-form-wizard input::placeholder, #kontakt .ms-form-wizard textarea::placeholder { color: #978e84; }
#kontakt .ms-form-wizard input:focus-visible, #kontakt .ms-form-wizard textarea:focus-visible { outline: 0; border-color: #a9793f; box-shadow: 0 0 0 3px #a9793f20; }
#kontakt .ms-form-wizard .is-invalid { border-color: #b94a3b; }
.ms-wizard-alert { display: none; padding: 12px 15px; border-radius: 6px; background: #fcf0ed; color: #913d30; font-size: 13px; line-height: 1.6; margin-bottom: 18px; }
#kontakt .ms-wizard-buttons { display: flex; justify-content: space-between; align-items: center; gap: 12px; border-top: 1px solid #eee8df; padding-top: 24px; margin-top: 28px; }
#kontakt .ms-form-wizard .ms-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 46px; padding: 12px 20px; border: 1px solid #2d2926; border-radius: 6px; background: #2d2926; color: white; box-shadow: none; font-size: 13px; font-weight: 500; line-height: 1.4; text-decoration: none; letter-spacing: 0; cursor: pointer; transform: none; }
#kontakt .ms-form-wizard .ms-btn::before, #kontakt .ms-form-wizard .ms-btn::after { content: none; }
#kontakt .ms-form-wizard .ms-btn:hover { background: #514438; border-color: #514438; }
#kontakt .ms-form-wizard .ms-btn:focus-visible { outline: 2px solid #a9793f; outline-offset: 4px; }
#kontakt .ms-form-wizard .ms-btn:disabled { opacity: .5; cursor: wait; }
#kontakt .ms-wizard-buttons .ms-wizard-next { margin-left: auto; min-width: 110px; }
#kontakt .ms-form-wizard .ms-wizard-prev, #kontakt .ms-form-wizard .is-ghost { background: transparent; color: #695743; border-color: #d9cdbd; }
#kontakt .ms-form-wizard .is-ghost:hover, #kontakt .ms-form-wizard .ms-wizard-prev:hover { background: #f8f3eb; }
.ms-wizard-dynamic { margin-top: 24px; }
#kontakt .ms-wizard-step .ms-wizard-service-note { margin: 16px 0 0; font-size: 12px; color: #82776b; }
.ms-wizard-callout { padding: 20px; border-radius: 8px; background: #f8f5ef; }
.ms-wizard-callout strong { display: block; font-size: 15px; margin-bottom: 10px; }
.ms-wizard-callout p { font-size: 13px; line-height: 1.7; margin: 0; }
.ms-wizard-inline-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.ms-wizard-print-info { margin-top: 24px; padding: 26px; background: #f8f5ef; border-radius: 10px; }
.ms-wizard-print-info .ms-wizard-eyebrow { font-size: 10px; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; color: #8f6430; margin: 0 0 14px; }
.ms-wizard-print-info h4 { font-family: "Bodoni Moda",Georgia,serif; font-weight: 400; font-size: clamp(23px,2.8vw,30px); line-height: 1.25; letter-spacing: -.025em; margin: 0 0 14px; color: #2d2926; }
.ms-wizard-print-info p, .ms-wizard-print-info li { font-size: 13px; line-height: 1.8; color: #6e645b; }
.ms-wizard-print-info ol { padding-left: 20px; margin: 18px 0 24px; }
.ms-wizard-print-info li { padding-left: 4px; margin-bottom: 6px; }
.ms-wizard-print-info .ms-wizard-print-help { font-size: 12px; margin: 18px 0 0; }
.ms-wizard-print-help a { color: #694a28; text-underline-offset: 3px; }
.ms-wizard-summary-box { border: 1px solid #e5ddd2; border-radius: 8px; padding: 6px 22px; margin-bottom: 24px; background: #fcfaf7; }
.ms-wizard-summary-box .ms-summary-row { display: grid; grid-template-columns: 110px minmax(0,1fr); gap: 12px; border-bottom: 1px solid #e9e2d8; padding: 12px 0; font-size: 13px; line-height: 1.6; overflow-wrap: anywhere; }
.ms-wizard-summary-box .ms-summary-row:last-child { border-bottom: 0; }
.ms-summary-row > span { color: #82776b; }
.ms-summary-row strong { font-weight: 500; }
.ms-wizard-summary-box .ms-summary-row.block { display: block; }
.ms-summary-row.block p { margin: 6px 0 0; white-space: pre-wrap; }
#kontakt .ms-wizard-actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-start; }
#kontakt .ms-wizard-actions .ms-btn { flex: 1 1 auto; max-width: none; }
#kontakt .ms-wizard-status { font-size: 13px; line-height: 1.7; }
@media(max-width:1000px) {
  #kontakt > .ms-wrap.ms-contact { grid-template-columns: 1fr !important; max-width: 820px !important; gap: 28px !important; }
  #kontakt > .ms-contact > .kt-head { max-width: 600px; }
}
@media(max-width:580px) {
  #kontakt .ms-contact-wizard-container { padding: 22px 18px; border-radius: 12px; }
  #kontakt .ms-wizard-progress { gap: 8px; margin-bottom: 28px; }
  #kontakt .ms-wizard-progress-step { flex-direction: column; align-items: flex-start; gap: 4px; font-size: 10px; }
  #kontakt .ms-wizard-services-grid { grid-template-columns: 1fr; gap: 10px; }
  #kontakt .ms-wizard-service-card { min-height: 90px; padding: 18px 32px 18px 18px; }
  .ms-wizard-print-info { padding: 20px; }
  .ms-wizard-print-info > .ms-btn { width: 100%; }
  .ms-wizard-summary-box { padding: 4px 16px; }
  .ms-wizard-summary-box .ms-summary-row { grid-template-columns: 80px minmax(0,1fr); }
}
@media(prefers-reduced-motion:reduce) {
  #kontakt .ms-form-wizard *, #kontakt .msx-success, #kontakt .msx-success * { animation: none !important; transition: none !important; }
  #kontakt .msx-success-ring svg path { stroke-dashoffset: 0; }
}
/* 5. Gallery Filters & Stories */
.ms-gallery-filters {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-bottom: 40px;
  flex-wrap: wrap;
}

.ms-filter-btn {
  background: var(--ms-cream);
  border: 1px solid var(--ms-line);
  color: var(--ms-muted);
  padding: 8px 20px;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border-radius: 30px;
  cursor: pointer;
  transition: all 0.3s ease;
}

.ms-filter-btn:hover {
  border-color: var(--ms-gold);
  color: var(--ms-ink);
}

.ms-filter-btn.active {
  background: var(--ms-gold);
  border-color: var(--ms-gold);
  color: white;
  box-shadow: 0 4px 10px rgba(169, 121, 63, 0.15);
}

button.ms-header-btn {
  cursor: pointer;
  font-family: inherit;
}

/* ===== Cinematic hero (strona główna) ===== */
.ms-cinematic-hero {
  position: relative;
  min-height: clamp(540px, 82vh, 820px);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  overflow: hidden;
}
.ms-cinematic-hero > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}
/* pokaz slajdów (crossfade) w tle hero */
.ms-hero-slide {
  opacity: 0;
  animation: msHeroSlides 18s linear infinite;
  will-change: opacity;
}
.ms-hero-slide:nth-child(1) { animation-delay: 0s; }
.ms-hero-slide:nth-child(2) { animation-delay: -12s; }
.ms-hero-slide:nth-child(3) { animation-delay: -6s; }
@keyframes msHeroSlides {
  0%   { opacity: 1; }
  28%  { opacity: 1; }
  33%  { opacity: 0; }
  95%  { opacity: 0; }
  100% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .ms-hero-slide { animation: none; opacity: 0; }
  .ms-hero-slide:nth-child(1) { opacity: 1; }
}
/* Slajdy sterowane JS (dowolna liczba) – nadpisuje animację CSS, gdy hero zarządzane z panelu */
.ms-cinematic-hero.js-slideshow .ms-hero-slide { animation: none; opacity: 0; transition: opacity 1.2s ease; }
.ms-cinematic-hero.js-slideshow .ms-hero-slide.is-active { opacity: 1; }
.ms-cinematic-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(45,41,38,.44) 0%, rgba(45,41,38,.16) 30%, rgba(45,41,38,.30) 62%, rgba(45,41,38,.72) 100%);
}
.ms-cinematic-copy {
  position: relative;
  z-index: 2;
  max-width: 760px;
  padding: clamp(28px, 5vw, 56px);
  color: #fff;
  text-shadow: 0 1px 16px rgba(0, 0, 0, .45);
}
/* lekkie przyciemnienie pod samym tekstem – większa czytelność napisów */
.ms-cinematic-copy::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 128%;
  height: 150%;
  background: radial-gradient(60% 58% at 50% 50%, rgba(16, 12, 9, .55) 0%, rgba(16, 12, 9, .32) 46%, transparent 76%);
  filter: blur(26px);
  pointer-events: none;
}
.ms-cinematic-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 12px;
  letter-spacing: .28em;
  text-transform: uppercase;
  font-weight: 700;
  color: #f3e4cf;
  margin-bottom: 22px;
}
.ms-cinematic-eyebrow::before,
.ms-cinematic-eyebrow::after {
  content: "";
  width: 34px;
  height: 1px;
  background: rgba(243,228,207,.8);
}
.ms-cinematic-copy h1 {
  color: #fff;
  font-size: clamp(40px, 6vw, 86px);
  line-height: 1.02;
  margin: 0 0 18px;
  text-shadow: 0 2px 26px rgba(0,0,0,.32);
}
.ms-cinematic-copy h1 .ms-script {
  display: block;
  color: #fbeede;
  font-size: 1.06em;
}
.ms-cinematic-copy h1 .ms-cinematic-sub {
  display: block;
  font-family: "Brush Script MT", "Segoe Script", cursive;
  color: #fbeede;
  font-weight: 400;
  font-size: .5em;
  margin-top: 8px;
}
.ms-cinematic-copy p {
  font-size: clamp(16px, 1.5vw, 21px);
  line-height: 1.6;
  max-width: 540px;
  margin: 0 auto 30px;
  color: rgba(255,255,255,.92);
}
.ms-cinematic-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  justify-content: center;
}
.ms-cinematic-actions .ms-btn {
  min-height: 44px;
  padding: 0 22px;
  border-radius: 999px;
  border: 1px solid rgba(232, 209, 180, .62);
  background: rgba(166, 116, 65, .46);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  color: #fdf9f3;
  font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: .04em;
  line-height: 1.2;
  text-transform: none;
  box-shadow: 0 12px 26px -18px rgba(0, 0, 0, .65);
}
.ms-cinematic-actions .ms-btn:visited,
.ms-cinematic-actions .ms-btn:focus {
  color: #fdf9f3;
}
.ms-cinematic-actions .ms-btn:hover {
  background: rgba(166, 116, 65, .72);
  border-color: rgba(232, 209, 180, .9);
  color: #fdf9f3;
  transform: translateY(-2px);
  box-shadow: 0 14px 28px -14px rgba(0, 0, 0, .6);
}
.ms-cinematic-actions .ms-btn.is-ghost {
  color: #fdf9f3;
  border-color: rgba(232, 209, 180, .5);
  background: rgba(84, 57, 34, .24);
}
.ms-cinematic-actions .ms-btn.is-ghost:hover,
.ms-cinematic-actions .ms-btn.is-ghost:focus {
  color: #fdf9f3;
  background: rgba(166, 116, 65, .58);
  border-color: rgba(232, 209, 180, .82);
}
.ms-cinematic-scroll {
  position: absolute;
  left: 50%;
  bottom: 22px;
  transform: translateX(-50%);
  z-index: 3;
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(255,255,255,.85);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.ms-cinematic-scroll span {
  width: 1px;
  height: 30px;
  background: linear-gradient(#fff, transparent);
}
@media (max-width: 760px) {
  .ms-cinematic-hero { min-height: clamp(460px, 78vh, 640px); }
  .ms-cinematic-copy h1 { font-size: clamp(32px, 9vw, 46px); }
  .ms-cinematic-eyebrow { letter-spacing: .2em; }
}

/* ===== Fix: nagłówek w jednym rzędzie na laptopach (1181–1520px) ===== */
@media (min-width: 1181px) and (max-width: 1520px) {
  .ms-topbar {
    gap: 16px;
    padding: 0 clamp(16px, 2.4vw, 34px);
  }
  .ms-main-nav {
    gap: clamp(9px, 1.4vw, 18px);
  }
  .ms-main-nav a {
    font-size: 12px;
    letter-spacing: .03em;
  }
  .ms-header-tools {
    gap: 9px;
  }
  .ms-header-tools > a:not(.ms-header-btn) {
    width: 26px;
  }
  .ms-header-btn {
    padding: 0 13px;
    font-size: 12px;
  }
}


/* ===== Stopka strony (go-live) ===== */
.ms-footer:not(.ms-contact-footer) { background: var(--ms-ink); color: #e9e2d8; padding: clamp(40px,5vw,64px) 0 0; margin-top: 56px; }
.ms-footer:not(.ms-contact-footer) .ms-footer-inner { width: min(100% - 48px, 1180px); margin: 0 auto; display: grid; grid-template-columns: 1.5fr 1fr 1.1fr; gap: clamp(24px,4vw,56px); padding-bottom: 32px; }
.ms-footer h3 { font: 700 12px/1 "Inter","Helvetica Neue",Arial,sans-serif; letter-spacing: .14em; text-transform: uppercase; color: var(--ms-gold); margin: 0 0 16px; }
.ms-footer a { color: inherit; text-decoration: none; }
.ms-footer:not(.ms-contact-footer) a { color: #e9e2d8; }
.ms-footer-nav a, .ms-footer-contact a { display: block; margin-bottom: 10px; font-size: 15px; }
.ms-footer-nav a:hover, .ms-footer-contact a:hover, .ms-footer-bottom a:hover { color: var(--ms-gold); text-decoration: underline; }
.ms-footer-logo { width: 118px; height: auto; }
.ms-footer:not(.ms-contact-footer) .ms-footer-logo { filter: brightness(0) invert(1); opacity: .9; }
.ms-footer-tagline { color: var(--ms-muted); font-size: 14px; line-height: 1.6; margin: 14px 0 16px; max-width: 290px; }
.ms-footer:not(.ms-contact-footer) .ms-footer-tagline,
.ms-footer-contact p { color: #c9bfb2; }
.ms-footer-contact p { font-size: 14px; line-height: 1.6; margin: 0 0 10px; }
.ms-footer-social { display: flex; gap: 12px; }
.ms-footer-social a {
  display: inline-flex;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  transition: transform .22s ease, filter .22s ease;
}
.ms-footer-social a:hover,
.ms-footer-social a:focus-visible {
  transform: scale(1.14);
  filter: drop-shadow(0 6px 10px rgba(169, 121, 63, .22));
}
.ms-footer-social img { width: 26px; height: 26px; }
/* #8d8177 przy 12,5 px dawało 3,58:1 — dużo poniżej progu. */
.ms-footer-bottom { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; font-size: 13px; color: var(--ms-muted); }
.ms-footer:not(.ms-contact-footer) .ms-footer-bottom { border-top: 1px solid rgba(255,255,255,.12); width: min(100% - 48px, 1180px); margin: 0 auto; padding: 20px 0 26px; color: #b8aea0; }

.ms-contact-footer {
  background: linear-gradient(180deg, rgba(244,238,231,.92) 0%, rgba(251,248,243,.98) 100%);
  border-top: 1px solid rgba(222,207,190,.72);
  color: var(--ms-ink);
  font-family: "Inter", system-ui, sans-serif;
  font-size: 16px;
  font-weight: 300;
  line-height: 1.75;
  margin-top: 0;
  /* Zmniejszone z clamp(42px,6vw,76px) — stopka zajmowała zbyt dużo ekranu. */
  padding: clamp(30px, 4vw, 52px) 0 0;
}
.ms-contact-footer-main {
  display: grid;
  grid-template-columns: .85fr 1.4fr .95fr;
  gap: clamp(24px, 4vw, 42px);
  align-items: start;
}
.ms-contact-footer-intro {
  display: flex;
  min-height: 100%;
  flex-direction: column;
  justify-content: center;
}
.ms-contact-footer-title {
  display: flex;
  width: fit-content;
  flex-direction: column;
  align-items: center;
}
.ms-contact-footer-intro h2 {
  font-family: "Bodoni Moda", Didot, Georgia, serif;
  font-weight: 400;
  margin: 14px 0 14px;
}
.ms-contact-footer .ms-note {
  margin-bottom: 14px;
}
.ms-contact-footer .ms-form input,
.ms-contact-footer .ms-form textarea {
  background: rgba(255,255,255,.72);
  font-family: "Inter", system-ui, sans-serif;
  font-weight: 400;
}
.ms-contact-footer .ms-form .ms-btn {
  border-radius: 999px;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: .04em;
}
.ms-contact-footer .ms-contact-list {
  padding-top: 4px;
}
.ms-contact-footer .ms-contact-row a,
.ms-contact-footer .ms-contact-row span {
  color: var(--ms-muted);
}
.ms-contact-footer [data-ms-setting="address"] {
  white-space: pre-line;
}
.ms-contact-footer .ms-contact-row a:hover {
  color: var(--ms-gold-dark);
}
.ms-contact-clock {
  border: 1.5px solid #c99b6e;
  border-radius: 50%;
  display: inline-block;
  position: relative;
  width: 22px;
  height: 22px;
  margin-left: 3px;
}
.ms-contact-clock::before,
.ms-contact-clock::after {
  content: "";
  position: absolute;
  left: 9px;
  top: 5px;
  width: 1.5px;
  background: #c99b6e;
  border-radius: 2px;
  transform-origin: bottom center;
}
.ms-contact-clock::before { height: 6px; }
.ms-contact-clock::after { height: 5px; transform: rotate(48deg); }
/* Dolny pasek stopki w JEDNYM rzędzie. Wcześniej nawigacja i linia z prawami
   autorskimi były osobnymi wierszami wyśrodkowanymi na środku, przez co pasek
   zajmował ok. 120 px wysokości na każdej podstronie. Teraz linki idą z lewej,
   prawa autorskie z prawej, a zawijanie zostaje na wąskie ekrany. */
.ms-contact-footer-links {
  /* Kreska ledwie zaznaczona i minimalne odstępy — pasek ma tylko oddzielać,
     nie budować kolejnej sekcji. */
  border-top: 1px solid rgba(222,207,190,.45);
  margin-top: clamp(14px, 2.2vw, 22px);
  padding: 10px 0 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px 24px;
  flex-wrap: wrap;
}
.ms-contact-footer-links .ms-footer-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 22px;
  justify-content: flex-start;
  margin-bottom: 0;
}
.ms-contact-footer-links .ms-footer-nav a {
  color: var(--ms-ink);
  font-size: 13px;
  margin: 0;
}
.ms-contact-footer .ms-footer-bottom { font-size: 12.5px; }
.ms-contact-footer .ms-footer-bottom {
  flex-direction: row;
  align-items: center;
  gap: 8px 18px;
  justify-content: flex-end;
  text-align: right;
  flex-wrap: wrap;
  border-top: 0;
  padding: 0;
  margin: 0;
  width: auto;
}
.ms-contact-footer .ms-footer-bottom a {
  position: static;
}

@media (max-width: 900px) {
  .ms-contact-footer-main { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .ms-footer:not(.ms-contact-footer) .ms-footer-inner { grid-template-columns: 1fr; gap: 26px; }
  .ms-footer-bottom { flex-direction: column; text-align: center; }
  .ms-contact-footer-links { justify-content: center; gap: 10px 18px; }
  .ms-contact-footer-links .ms-footer-nav { justify-content: center; }
  .ms-contact-footer .ms-footer-bottom { justify-content: center; text-align: center; flex-direction: row; }
  .ms-contact-footer-links .ms-footer-nav { justify-content: center; }
}

/* ============================================================
   MSX — warstwa „experience" strony głównej (html.msx)
   Bez klasy .msx (edytor treści / brak JS) nic z tego nie działa.
   ============================================================ */

/* ——— INTRO (kurtyna) ——— */
.msx-intro { display: none; }
html.msx .msx-intro {
  display: block;
  position: fixed; inset: 0; z-index: 4000;
  pointer-events: none;
  animation: msxIntroGone .1s linear 2.55s forwards;
}
.msx-intro-half {
  position: absolute; left: 0; right: 0; height: 50.5%;
  background: linear-gradient(180deg, #fbf7f1 0%, #f3ece2 100%);
}
.msx-intro-half.is-top { top: 0; }
.msx-intro-half.is-bottom { bottom: 0; background: linear-gradient(0deg, #fbf7f1 0%, #f3ece2 100%); }
html.msx .msx-intro-half.is-top { animation: msxCurtainUp .95s cubic-bezier(.83, 0, .17, 1) 1.6s forwards; }
html.msx .msx-intro-half.is-bottom { animation: msxCurtainDown .95s cubic-bezier(.83, 0, .17, 1) 1.6s forwards; }
.msx-intro-core {
  position: absolute; inset: 0; z-index: 2;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px;
  animation: msxCoreOut .55s ease 1.3s forwards;
}
.msx-intro-name {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(30px, 5.6vw, 58px);
  letter-spacing: .65em; text-indent: .65em;
  color: #3d342c; opacity: 0;
  animation: msxName 1.15s cubic-bezier(.16, 1, .3, 1) .12s forwards;
}
@keyframes msxName { to { letter-spacing: .2em; text-indent: .2em; opacity: 1; } }
@keyframes msxLine { to { width: 84px; } }
@keyframes msxFadeUp { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
@keyframes msxCoreOut { to { opacity: 0; transform: translateY(-14px); } }
@keyframes msxCurtainUp { to { transform: translateY(-101%); } }
@keyframes msxCurtainDown { to { transform: translateY(101%); } }
@keyframes msxIntroGone { to { visibility: hidden; opacity: 0; } }

/* ——— wejście topbara ——— */
@media (prefers-reduced-motion: no-preference) {
  html.msx.msx-home:not(.msx-skip-intro) .ms-topbar { animation: msxTopIn .9s cubic-bezier(.16, 1, .3, 1) 2.15s both; }
}
@keyframes msxTopIn { from { opacity: 0; transform: translateY(-14px); } to { opacity: 1; transform: translateY(0); } }

/* ——— wejście treści hero po kurtynie ——— */
@media (prefers-reduced-motion: no-preference) {
  html.msx:not(.msx-ready) .ms-cinematic-copy > *,
  html.msx:not(.msx-ready) .ms-cinematic-scroll { opacity: 0; }
  html.msx.msx-ready .ms-cinematic-copy > * { animation: msxHeroUp 1s cubic-bezier(.16, 1, .3, 1) both; }
  html.msx.msx-ready .ms-cinematic-copy > *:nth-child(1) { animation-delay: .05s; }
  html.msx.msx-ready .ms-cinematic-copy > *:nth-child(2) { animation-delay: .18s; }
  html.msx.msx-ready .ms-cinematic-copy > *:nth-child(3) { animation-delay: .34s; }
  html.msx.msx-ready .ms-cinematic-copy > *:nth-child(4) { animation-delay: .5s; }
  html.msx.msx-ready .ms-cinematic-scroll { animation: msxFadeUp 1s ease .95s both; }
}
@keyframes msxHeroUp {
  from { opacity: 0; transform: translateY(34px); filter: blur(8px); }
  to   { opacity: 1; transform: translateY(0);  filter: blur(0); }
}

/* ——— hero: Ken Burns + ziarno + poświata ——— */
@media (prefers-reduced-motion: no-preference) {
  html.msx .ms-cinematic-hero .ms-hero-slide {
    animation: msHeroSlides 18s linear infinite, msxKen 18s ease-in-out infinite alternate;
  }
  html.msx .ms-cinematic-hero.js-slideshow .ms-hero-slide { animation: none; }
  html.msx .ms-cinematic-hero.js-slideshow .ms-hero-slide.is-active { animation: msxKen 14s ease-in-out infinite alternate; }
}
@keyframes msxKen { from { transform: scale(1); } to { transform: scale(1.09) translateY(-1.5%); } }
html.msx .ms-cinematic-hero::after {
  content: "";
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  opacity: .12; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.7'/%3E%3C/svg%3E");
}
.msx-glow {
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: radial-gradient(620px circle at var(--mx, 50%) var(--my, 40%), rgba(255, 219, 178, .16), transparent 62%);
}

/* ——— pasek postępu przewijania ——— */
.msx-progress {
  position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 3000;
  background: linear-gradient(90deg, #c89a6b, var(--ms-gold, #A67441));
  transform: scaleX(0); transform-origin: 0 50%;
  pointer-events: none;
}

/* ——— szklany sticky header (topbar już jest sticky w bazie) ——— */
html.msx .ms-topbar { transition: min-height .4s ease, background .4s ease, box-shadow .4s ease; }
html.msx.msx-stuck .ms-topbar {
  min-height: 64px;
  background: rgba(252, 248, 242, .9);
  -webkit-backdrop-filter: blur(16px) saturate(1.4);
  backdrop-filter: blur(16px) saturate(1.4);
  box-shadow: 0 10px 34px -16px rgba(80, 56, 34, .35);
}
html.msx.msx-stuck .ms-header-btn,
html.msx.msx-stuck .ms-header-btn.is-outline {
  background: rgba(252, 248, 242, .62);
  border-color: rgba(105, 74, 43, .62);
  color: #4d3420;
  text-shadow: 0 1px 0 rgba(255, 255, 255, .76);
}
html.msx.msx-stuck .ms-header-btn:hover,
html.msx.msx-stuck .ms-header-btn:focus,
html.msx.msx-stuck .ms-header-btn.is-outline:hover,
html.msx.msx-stuck .ms-header-btn.is-outline:focus {
  background: #6e4e2d;
  border-color: #6e4e2d;
  color: #fff;
  text-shadow: 0 1px 2px rgba(0, 0, 0, .28);
}

/* ——— wzbogacone reveale ——— */
html.msx .ms-reveal {
  filter: blur(7px);
  transition: opacity .9s cubic-bezier(.16, 1, .3, 1), transform .9s cubic-bezier(.16, 1, .3, 1), filter .9s ease;
}
html.msx .ms-reveal.is-visible { filter: blur(0); }
html.msx .msx-r {
  opacity: 0; transform: translateY(26px); filter: blur(7px);
  transition: opacity .9s cubic-bezier(.16, 1, .3, 1), transform .9s cubic-bezier(.16, 1, .3, 1), filter .9s ease;
}
html.msx .msx-r.is-in { opacity: 1; transform: translateY(0); filter: blur(0); }
@media (prefers-reduced-motion: reduce) {
  html.msx .ms-reveal, html.msx .msx-r { filter: none; transform: none; opacity: 1; }
}

/* ——— podkreślenie nagłówków sekcji ——— */
html.msx .ms-heading h2 { position: relative; padding-bottom: 12px; }
html.msx .ms-heading h2::after {
  content: ""; position: absolute; left: 50%; bottom: 0;
  width: 68px; height: 2px; background: var(--ms-gold, #A67441);
  transform: translateX(-50%) scaleX(0); transform-origin: center;
  transition: transform .8s cubic-bezier(.16, 1, .3, 1) .3s;
}
html.msx .ms-heading.is-visible h2::after { transform: translateX(-50%) scaleX(1); }

/* ——— karty: hover, zoom zdjęć ——— */
html.msx .ms-card { transition: transform .5s cubic-bezier(.16, 1, .3, 1), box-shadow .5s ease; }
html.msx .ms-card:hover { transform: translateY(-8px); box-shadow: 0 30px 50px -22px rgba(90, 62, 40, .4); }
html.msx .ms-card-media { overflow: hidden; }
html.msx .ms-card-media img { transition: transform .9s cubic-bezier(.16, 1, .3, 1); }
html.msx .ms-card:hover .ms-card-media img { transform: scale(1.08); }
html.msx .ms-feature, html.msx .ms-offer-card { overflow: hidden; }
html.msx .ms-feature img, html.msx .ms-offer-card > img { will-change: transform; }
html.msx .ms-review-card { transition: transform .3s cubic-bezier(.16, 1, .3, 1), box-shadow .3s ease, border-color .3s ease; }
html.msx .ms-review-card:hover {
  transform: translateY(-3px) scale(1.012);
  box-shadow:
    0 26px 52px -20px rgba(55, 43, 34, .34),
    inset 0 1px 0 rgba(255, 255, 255, .8),
    inset 0 0 0 1px rgba(169, 121, 63, .28);
}

/* ——— przyciski: poświata przejścia ——— */
html.msx .ms-btn { position: relative; overflow: hidden; transition: transform .35s ease, box-shadow .35s ease, background .35s ease, color .35s ease; }
html.msx .ms-btn::after {
  content: ""; position: absolute; top: 0; bottom: 0; left: -80%;
  width: 55%; transform: skewX(-22deg);
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .35), transparent);
  transition: left .6s ease;
  pointer-events: none;
}
html.msx .ms-btn:hover { transform: translateY(-2px); box-shadow: 0 14px 26px -12px rgba(120, 82, 47, .55); }
html.msx .ms-btn:hover::after { left: 110%; }

/* ——— wskaźnik przewijania hero ——— */
html.msx .ms-cinematic-scroll span { animation: msxScrollPulse 2.2s ease-in-out infinite; }
@keyframes msxScrollPulse { 0%, 100% { transform: scaleY(.35); opacity: .5; } 50% { transform: scaleY(1); opacity: 1; } }

html.msx { scroll-behavior: smooth; }

/* ============================================================
   MSX-KONTAKT — kinowe hero strony Kontakt + UX formularzy
   ============================================================ */

/* ——— hero: pełnoekranowa taśma filmowa z ciemną winietą ——— */
.ms-contact-hero.msx-cine {
  min-height: clamp(450px, 68vh, 700px);
  display: flex; align-items: center; justify-content: center;
  background: #2b2421;
  border-bottom: 0;
}
.ms-contact-hero.msx-cine .ms-hero-carousel-rail { opacity: 1; }
.ms-contact-hero.msx-cine .ms-hero-carousel-group img {
  width: clamp(220px, 24vw, 380px);
  opacity: .9; filter: saturate(.92) contrast(1.02);
}
.msx-cine-shade {
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background:
    radial-gradient(120% 90% at 50% 110%, rgba(24, 18, 14, .88) 0%, rgba(24, 18, 14, .42) 46%, transparent 72%),
    linear-gradient(180deg, rgba(30, 24, 19, .62) 0%, rgba(30, 24, 19, .34) 38%, rgba(30, 24, 19, .58) 78%, rgba(24, 18, 14, .86) 100%);
}
.msx-cine-shade::after {
  content: ""; position: absolute; inset: 0;
  opacity: .1; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.7'/%3E%3C/svg%3E");
}
.ms-contact-hero.msx-cine .ms-hero-copy {
  position: relative; z-index: 2;
  padding: clamp(36px, 5.5vw, 72px) 24px;
  text-align: center; align-items: center;
  max-width: 880px; margin: 0 auto;
}
.ms-contact-hero.msx-cine .ms-hero-copy::before {
  content: "";
  display: block;
  position: absolute;
  z-index: -1;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 120%;
  height: 132%;
  background: radial-gradient(58% 56% at 50% 50%, rgba(16, 12, 9, .52) 0%, rgba(16, 12, 9, .30) 46%, transparent 76%);
  filter: blur(30px);
  pointer-events: none;
}
.ms-contact-hero.msx-cine .ms-hero-copy-surface {
  background: transparent; border: 0; box-shadow: none; padding: 0;
  -webkit-backdrop-filter: none; backdrop-filter: none;
  display: flex; flex-direction: column; align-items: center;
}
.ms-contact-hero.msx-cine .ms-hero-kicker {
  color: #e3c39a; letter-spacing: .3em; font-size: 12px;
  border: 1px solid rgba(227, 195, 154, .4); border-radius: 999px;
  padding: 8px 18px; margin-bottom: 26px;
}
.ms-contact-hero.msx-cine h1 {
  color: #fdf9f3; font-size: clamp(54px, 8vw, 104px);
  margin: 0 0 4px; text-shadow: 0 4px 30px rgba(0, 0, 0, .35);
}
.msx-cine-script {
  font-family: "Brush Script MT", "Segoe Script", cursive;
  font-size: clamp(26px, 3.6vw, 44px);
  color: var(--ms-gold, #A67441);
  filter: brightness(1.35);
  margin: 0 0 18px;
  transform: rotate(-2deg);
}
.ms-contact-hero.msx-cine p {
  color: rgba(253, 249, 243, .82); max-width: 560px;
  margin: 0 auto 30px; font-size: clamp(16px, 1.5vw, 20px);
}
.ms-contact-hero.msx-cine .ms-actions {
  display: flex;
  flex-wrap: nowrap;
  gap: 12px;
  width: min(100%, 920px);
  margin: 0 auto;
  justify-content: center;
}
.ms-contact-hero.msx-cine .ms-actions > * {
  flex: 0 0 auto;
  justify-content: center;
  white-space: nowrap;
}
.ms-contact-hero.msx-cine .msx-chip { padding: 0 26px; }
.msx-chip {
  display: inline-flex; align-items: center; gap: 9px;
  min-height: 44px; padding: 0 20px;
  border: 1px solid rgba(232, 209, 180, .55); border-radius: 999px;
  background: rgba(166, 116, 65, .38);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  color: #fdf9f3; text-decoration: none !important;
  font-size: 14px; letter-spacing: .04em;
  position: relative; overflow: hidden;
  transition: background .3s ease, border-color .3s ease, transform .3s ease, box-shadow .3s ease;
}
.msx-chip::after {
  content: ""; position: absolute; top: 0; bottom: 0; left: -80%;
  width: 55%; transform: skewX(-22deg);
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .35), transparent);
  transition: left .6s ease;
  pointer-events: none;
}
.msx-chip img { width: 17px; height: 17px; filter: brightness(0) invert(1); opacity: .92; }
.msx-chip:hover {
  background: rgba(166, 116, 65, .62); border-color: rgba(232, 209, 180, .85);
  transform: translateY(-2px); box-shadow: 0 12px 26px -12px rgba(0, 0, 0, .55);
}
.msx-chip:hover::after { left: 110%; }
.ms-contact-hero.msx-cine .ms-actions > a:first-child {
  min-height: 44px !important;
  padding: 0 20px !important;
  border: 1px solid rgba(232, 209, 180, .55) !important;
  border-radius: 999px !important;
  background: rgba(166, 116, 65, .38) !important;
  color: #fdf9f3 !important;
  font-family: "Inter", "Helvetica Neue", Arial, sans-serif !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  letter-spacing: .04em !important;
  line-height: 1.2 !important;
  text-transform: none !important;
  text-decoration: none !important;
}
.msx-cine-scroll {
  position: absolute; left: 50%; bottom: 26px; transform: translateX(-50%);
  z-index: 2; color: rgba(253, 249, 243, .72);
  font-size: 11px; letter-spacing: .3em; text-transform: uppercase;
  display: flex; flex-direction: column; align-items: center; gap: 8px;
}
.msx-cine-scroll span {
  width: 1px; height: 34px; background: rgba(253, 249, 243, .65);
  transform-origin: top center;
}
html.msx .msx-cine-scroll span { animation: msxScrollPulse 2.2s ease-in-out infinite; }

/* wejście hero Kontakt (stagger) */
@media (prefers-reduced-motion: no-preference) {
  html.msx.msx-ready .msx-cine .ms-hero-copy-surface > * { animation: msxHeroUp 1s cubic-bezier(.16, 1, .3, 1) both; }
  html.msx.msx-ready .msx-cine .ms-hero-copy-surface > *:nth-child(1) { animation-delay: .1s; }
  html.msx.msx-ready .msx-cine .ms-hero-copy-surface > *:nth-child(2) { animation-delay: .24s; }
  html.msx.msx-ready .msx-cine .ms-hero-copy-surface > *:nth-child(3) { animation-delay: .38s; }
  html.msx.msx-ready .msx-cine .ms-hero-copy-surface > *:nth-child(4) { animation-delay: .52s; }
  html.msx.msx-ready .msx-cine .ms-hero-copy-surface > *:nth-child(5) { animation-delay: .68s; }
  html.msx.msx-ready .msx-cine .msx-cine-scroll { animation: msxFadeUp 1s ease 1.1s both; }
}

/* ——— karty info: nowoczesny szklany styl (glass jak przyciski, bez przelatującego błysku) ——— */
.ms-contact-info-grid { gap: 18px; }
.ms-contact-info-card {
  position: relative;
  background: linear-gradient(155deg, rgba(255, 252, 247, .82) 0%, rgba(244, 238, 231, .58) 100%);
  border: 1px solid rgba(169, 121, 63, .22);
  border-radius: 20px;
  box-shadow:
    0 18px 42px -22px rgba(75, 53, 30, .42),
    inset 0 1px 0 rgba(255, 255, 255, .7);
  -webkit-backdrop-filter: blur(14px) saturate(1.08);
  backdrop-filter: blur(14px) saturate(1.08);
  overflow: hidden;
  transition: transform .5s cubic-bezier(.16, 1, .3, 1), box-shadow .5s ease, border-color .5s ease;
}
.ms-contact-info-card::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(120% 78% at 50% -18%, rgba(255, 255, 255, .5) 0%, transparent 56%);
}
.ms-contact-info-card .ms-card-body {
  position: relative;
  z-index: 1;
  padding: 28px 22px;
}
.ms-contact-info-card h3 {
  color: var(--ms-gold-dark);
}
.ms-contact-info-card:hover {
  transform: translateY(-6px);
  border-color: rgba(169, 121, 63, .5);
  box-shadow:
    0 30px 56px -24px rgba(75, 53, 30, .52),
    inset 0 1px 0 rgba(255, 255, 255, .85);
}

/* ——— formularze: walidacja, ładowanie, sukces ——— */
.ms-form input.is-invalid, .ms-form textarea.is-invalid,
.ms-form-wizard input.is-invalid, .ms-form-wizard textarea.is-invalid {
  border-color: #b94a3b !important;
  box-shadow: 0 0 0 3px rgba(185, 74, 59, .14);
  animation: msxShake .4s ease;
}
@keyframes msxShake {
  0%, 100% { transform: translateX(0); }
  25% { transform: translateX(-5px); }
  50% { transform: translateX(5px); }
  75% { transform: translateX(-3px); }
}
.msx-field-err {
  display: block; margin-top: 5px;
  color: #b94a3b; font-size: 12px; line-height: 1.4;
}
.ms-btn.is-loading { pointer-events: none; opacity: .75; position: relative; }
.ms-btn.is-loading::before {
  content: ""; display: inline-block;
  width: 15px; height: 15px; margin-right: 9px;
  border: 2px solid rgba(255, 255, 255, .4); border-top-color: #fff;
  border-radius: 50%;
  animation: msxSpin .7s linear infinite;
}
@keyframes msxSpin { to { transform: rotate(360deg); } }

/* panel sukcesu (kreator + stopka) */
.msx-success {
  text-align: center; padding: 34px 18px;
  animation: msxFadeUp .6s ease both;
}
.msx-success-ring {
  width: 74px; height: 74px; margin: 0 auto 18px;
  border-radius: 50%;
  border: 2px solid var(--ms-gold, #A67441);
  display: flex; align-items: center; justify-content: center;
  animation: msxPop .55s cubic-bezier(.16, 1, .3, 1) both;
}
.msx-success-ring svg { width: 34px; height: 34px; }
.msx-success-ring svg path {
  fill: none; stroke: var(--ms-gold, #A67441); stroke-width: 3;
  stroke-linecap: round; stroke-linejoin: round;
  stroke-dasharray: 48; stroke-dashoffset: 48;
  animation: msxCheck .55s ease .25s forwards;
}
@keyframes msxPop { from { transform: scale(.5); opacity: 0; } to { transform: scale(1); opacity: 1; } }
@keyframes msxCheck { to { stroke-dashoffset: 0; } }
.msx-success h3 { margin: 0 0 8px; font-size: 24px; }
.msx-success p { margin: 0 auto; max-width: 460px; color: var(--ms-muted, #8a8170); }

/* status wysyłki w kreatorze */
.ms-wizard-status { margin: 12px 0 0; font-size: 14px; }
.ms-wizard-status.is-error { color: #b94a3b; }
.ms-wizard-status.is-ok { color: #3f6b3a; }

/* mobile */
@media (max-width: 700px) {
  .ms-contact-hero.msx-cine { min-height: 64vh; }
  .ms-contact-hero.msx-cine .ms-hero-carousel-group img { width: clamp(160px, 44vw, 240px); }
  .ms-contact-hero.msx-cine .ms-actions { grid-template-columns: 1fr; width: min(100%, 310px); }
  .ms-contact-hero.msx-cine .ms-actions > :nth-child(4) { grid-column: auto; }
  .msx-chip { font-size: 13px; padding: 0 15px; }
}

/* ============================================================
   MSX-2 — niższe hero podstron, wejście oferty, szklane przyciski
   nagłówka, animacja logo, szklane CTA w hero Kontaktu
   ============================================================ */

/* ——— hero podstron niższe o ~1/6 (strona główna bez zmian) ——— */
.ms-cinematic-hero.ms-hero-lower { min-height: clamp(450px, 68vh, 690px); }
.ms-wedding-visual-hero::before {
  background: linear-gradient(180deg, rgba(45,41,38,.18) 0%, rgba(45,41,38,.06) 42%, rgba(45,41,38,.28) 100%);
}
@keyframes msxBannerIn {
  from { opacity: 0; transform: scale(1.045); filter: blur(10px); }
  to   { opacity: 1; transform: scale(1);     filter: blur(0); }
}

/* ——— hero Kontakt: główny przycisk w tym samym szklanym stylu co chipy ——— */
.ms-contact-hero.msx-cine .ms-actions .ms-btn {
  border-radius: 999px;
  border: 1px solid rgba(232, 209, 180, .65);
  background: rgba(166, 116, 65, .55);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  color: #fdf9f3;
  font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
  font-weight: 500;
  text-transform: none;
  letter-spacing: .04em;
  font-size: 14px;
  line-height: 1.2;
  padding: 0 20px;
}
.ms-contact-hero.msx-cine .ms-actions .ms-btn:hover {
  background: rgba(166, 116, 65, .82);
  border-color: rgba(232, 209, 180, .95);
}

/* ——— nagłówek: szklane przyciski ——— */
html.msx .ms-header-btn {
  border-radius: 999px;
  border: 1px solid rgba(166, 116, 65, .42);
  background: rgba(166, 116, 65, .14);
  -webkit-backdrop-filter: blur(10px) saturate(1.1); backdrop-filter: blur(10px) saturate(1.1);
  color: #6e4e2d;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .04em;
  text-transform: none;
  box-shadow: 0 10px 22px -16px rgba(80, 56, 34, .4);
  transition: background .3s ease, color .3s ease, border-color .3s ease, transform .3s ease, box-shadow .3s ease;
}
html.msx .ms-header-btn.is-outline {
  background: rgba(232, 209, 180, .12);
  border-color: rgba(166, 116, 65, .36);
  color: #7a5a3a;
}
html.msx .ms-header-btn:hover,
html.msx .ms-header-btn:focus {
  background: rgba(140, 95, 50, .92); color: #fff;
  border-color: rgba(232, 209, 180, .9);
  transform: translateY(-2px);
  box-shadow: 0 14px 28px -14px rgba(80, 56, 34, .5);
}
html.msx .ms-header-btn.is-outline:hover,
html.msx .ms-header-btn.is-outline:focus {
  background: rgba(166, 116, 65, .82); color: #fff;
  border-color: rgba(166, 116, 65, .6);
}

/* ——— logo: błysk po najechaniu (jak na przyciskach) + delikatne powiększenie ——— */
html.msx .ms-brand { position: relative; overflow: visible; background: transparent; }
html.msx .ms-brand::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 0%, transparent 38%, rgba(255, 255, 255, .78) 50%, transparent 62%, transparent 100%);
  background-size: 240% 100%;
  background-position: 130% 0;
  opacity: 0;
  transition: background-position .95s ease, opacity .2s ease;
  -webkit-mask-image: url("../assets/images/ms-logo-pdf.png");
  mask-image: url("../assets/images/ms-logo-pdf.png");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  pointer-events: none;
}
html.msx .ms-brand:hover::after {
  background-position: -30% 0;
  opacity: 1;
}
html.msx .ms-brand-logo {
  transition: transform .5s cubic-bezier(.16, 1, .3, 1), filter .5s ease;
  transform-origin: center;
}
html.msx .ms-brand:hover .ms-brand-logo {
  transform: scale(1.025);
  filter: none;
}

.msx-intro-logo {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: transparent;
  opacity: 0;
  animation: msxIntroLogoIn .95s cubic-bezier(.16, 1, .3, 1) .08s forwards;
}

.msx-intro-logo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 0%, transparent 38%, rgba(255, 255, 255, .82) 50%, transparent 62%, transparent 100%);
  background-size: 240% 100%;
  background-position: 130% 0;
  opacity: 0;
  -webkit-mask-image: url("../assets/images/ms-logo-pdf.png");
  mask-image: url("../assets/images/ms-logo-pdf.png");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  pointer-events: none;
  animation: msxIntroLogoShine 1.05s ease .62s forwards;
}

.msx-intro-logo img {
  width: clamp(118px, 12vw, 172px);
  height: auto;
  display: block;
  transform-origin: center;
  animation: msxIntroLogoPulse 1.15s cubic-bezier(.16, 1, .3, 1) .14s both;
}

@keyframes msxIntroLogoIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes msxIntroLogoPulse {
  from { transform: scale(.96); }
  to { transform: scale(1.025); }
}

@keyframes msxIntroLogoShine {
  from { background-position: 130% 0; opacity: 0; }
  18% { opacity: 1; }
  82% { opacity: 1; }
  to { background-position: -30% 0; opacity: 0; }
}

/* ——— intro tylko raz na sesję ——— */
html.msx-skip-intro .msx-intro { display: none !important; }

/* ============================================================
   Mobile polish — compact header + horizontal content lanes
   ============================================================ */
@media (max-width: 760px) {
  html,
  body {
    overflow-x: hidden;
  }

  .ms-topbar {
    position: sticky;
    top: 0;
    display: grid;
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 9px;
    min-height: 0;
    padding: 10px 10px 12px;
  }

  .admin-bar .ms-topbar {
    top: 0;
  }

  .ms-brand-logo {
    width: clamp(76px, 23vw, 104px);
  }

  .ms-main-nav {
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: center;
    width: 100%;
    gap: clamp(5px, 1.8vw, 10px);
    overflow: hidden;
  }

  .ms-main-nav a {
    flex: 0 1 auto;
    min-width: 0;
    padding: 2px 0 4px;
    font-size: clamp(7.5px, 2.15vw, 10.5px);
    line-height: 1.05;
    letter-spacing: 0;
    white-space: nowrap;
    text-align: center;
  }

  .ms-main-nav a.is-current::before,
  .ms-main-nav a[aria-current="page"]::before {
    top: -4px;
    bottom: -5px;
    left: -5px;
    right: -5px;
    border-radius: 9px;
    filter: blur(5px);
  }

  .ms-header-tools {
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: center;
    width: 100%;
    gap: clamp(5px, 1.8vw, 9px);
    overflow: hidden;
    white-space: nowrap;
  }

  .ms-divider {
    display: none;
  }

  .ms-icon-link {
    flex: 0 0 auto;
    width: clamp(20px, 6.2vw, 28px);
    height: clamp(20px, 6.2vw, 28px);
  }

  .ms-icon-link img {
    width: clamp(18px, 5.4vw, 24px);
    height: clamp(18px, 5.4vw, 24px);
  }

  .ms-header-btn {
    flex: 0 1 auto;
    grid-column: auto;
    width: auto;
    min-width: 0;
    min-height: clamp(28px, 8vw, 36px);
    padding: 0 clamp(8px, 2.4vw, 12px);
    font-size: clamp(8px, 2.15vw, 10px);
    letter-spacing: 0;
  }

  .ms-grid,
  .ms-grid.is-five,
  .ms-grid.is-six,
  .ms-grid.is-three,
  .ms-grid.is-seven {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(168px, 42vw);
    grid-template-columns: none;
    gap: 12px;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x proximity;
    padding: 2px 4px 14px;
    margin-left: -4px;
    margin-right: -4px;
    scrollbar-width: none;
  }

  .ms-grid::-webkit-scrollbar,
  .ms-print-order::-webkit-scrollbar {
    display: none;
  }

  .ms-grid > * {
    scroll-snap-align: start;
  }

  .ms-mini-card .ms-card-media img,
  .ms-card img {
    aspect-ratio: 4 / 3;
  }

  .ms-mini-card .ms-card-body {
    padding: 13px 10px 16px;
  }

  .ms-card-label img,
  .ms-card-label svg {
    width: 30px;
    height: 30px;
    flex-basis: 30px;
    padding: 5px;
  }

  .ms-card-label h3,
  .ms-card h3 {
    font-size: clamp(11px, 2.9vw, 13px);
    line-height: 1.18;
    letter-spacing: .035em;
  }

  .ms-card p,
  .ms-card li {
    font-size: clamp(11px, 2.85vw, 12px);
    line-height: 1.42;
  }

  .ms-mini-card .ms-btn.is-ghost {
    min-height: 34px;
    padding: 0 8px;
    font-size: clamp(10px, 2.65vw, 12px);
    white-space: normal;
  }

  .ms-print-order {
    display: grid;
    grid-template-columns: minmax(210px, 26vw) minmax(520px, 58vw) minmax(250px, 28vw);
    gap: 14px;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x proximity;
    padding: 2px 4px 16px;
    margin-left: -4px;
    margin-right: -4px;
    align-items: start;
    scrollbar-width: none;
  }

  .ms-print-uploader,
  .ms-print-order-panel,
  .ms-print-summary {
    scroll-snap-align: start;
  }

  .ms-print-uploader {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
    gap: 12px;
  }

  .ms-print-drop,
  .ms-print-help {
    aspect-ratio: auto;
    min-height: 150px;
    padding: 16px 14px;
  }

  .ms-print-order-panel,
  .ms-print-summary {
    padding: 16px;
  }

  .ms-print-summary {
    position: static;
  }

  .ms-print-item {
    grid-template-columns: 72px minmax(0, 1fr) 112px;
    gap: 12px;
  }

  .ms-print-fields {
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 8px;
  }

  .ms-print-fields > label {
    flex: 1 1 0 !important;
    width: auto;
  }

  .ms-print-fields select,
  .ms-print-fields input {
    min-height: 36px;
    font-size: 12px;
    padding: 0 6px;
  }

  .ms-print-line-summary {
    grid-column: auto;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: flex-end;
    justify-content: center;
    border-top: 0;
    padding-top: 0;
    margin-top: 0;
  }
}

@media (max-width: 420px) {
  .ms-topbar {
    padding-left: 7px;
    padding-right: 7px;
  }

  .ms-main-nav {
    gap: clamp(3px, 1.2vw, 6px);
  }

  .ms-main-nav a {
    font-size: clamp(6.7px, 2.02vw, 8.5px);
  }

  .ms-header-tools {
    gap: clamp(4px, 1.25vw, 7px);
  }

  /* Było 28 px wysokości i 7-8,5 px czcionki — w te dwa główne przyciski
     trudno było trafić kciukiem i ledwo dało się je przeczytać. */
  .ms-header-btn {
    min-height: 44px;
    padding: 0 clamp(9px, 2.4vw, 13px);
    font-size: clamp(9px, 2.5vw, 11px);
  }

  .ms-grid,
  .ms-grid.is-five,
  .ms-grid.is-six,
  .ms-grid.is-three,
  .ms-grid.is-seven {
    grid-auto-columns: minmax(150px, 48vw);
  }

  .ms-print-order {
    grid-template-columns: 190px 500px 235px;
  }
}

/* === LINKI W TREŚCI ===
   Odnośniki wplecione w akapity (bez własnej klasy) dostawały domyślny
   przeglądarkowy błękit, który w kremowo-złotej palecie wygląda jak usterka.
   --ms-gold-dark daje na kremie 4,8:1, czyli powyżej progu WCAG AA. */
main a:not([class]),
.ms-page a:not([class]) {
  color: var(--ms-gold-dark);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  text-decoration-color: rgba(135, 95, 49, .42);
  transition: color .25s ease, text-decoration-color .25s ease;
}
main a:not([class]):hover,
main a:not([class]):focus-visible,
.ms-page a:not([class]):hover,
.ms-page a:not([class]):focus-visible {
  color: var(--ms-ink);
  text-decoration-color: currentColor;
}

/* === IKONY SOCIAL RYSOWANE KRESKĄ ===
   Jeden zestaw na nagłówek i stopkę. Wcześniej stopka miała kolorowe PNG-i
   (niebieski Facebook, gradientowy Instagram, czerwony YouTube), które gryzły
   się z kremowo-złotą paletą i nie zgadzały się z nagłówkiem. Kolor bierze się
   z currentColor, więc każdy kontekst ustawia go sam. */
.sx-ico { width: 24px; height: 24px; display: block; color: currentColor; transition: color .3s ease; }
.sx-ico svg { width: 100%; height: 100%; display: block; }

/* Podstrony z hero mają w swoim <style> regułę .sx-ico{color:#fff} dla ikon
   w nagłówku. W stopce dawało to białe ikony na kremie, czyli niewidoczne —
   stąd wymuszenie dziedziczenia koloru z linku. */
.ms-footer-social .sx-ico { color: inherit; }
.ms-footer-social a { color: var(--ms-gold); }
.ms-footer-social a:hover,
.ms-footer-social a:focus-visible { color: var(--ms-ink); }
/* Ciemna stopka (podstrony bez formularza kontaktowego) — kreska musi być jasna. */
.ms-footer:not(.ms-contact-footer) .ms-footer-social a { color: rgba(255, 255, 255, .82); }
.ms-footer:not(.ms-contact-footer) .ms-footer-social a:hover,
.ms-footer:not(.ms-contact-footer) .ms-footer-social a:focus-visible { color: #fff; }
/* Cel dotykowy 44 px przy ikonie 24 px — jak w nagłówku. */
.ms-footer-social a { position: relative; }

/* === POLE DOTYKOWE IKON ===
   Ikony mają 24-28 px, a palec potrzebuje 44 px. Powiększenie samego pudełka
   rozpychało pasek na telefonie tak, że „Zapytaj o ofertę" i „Panel" wyjeżdżały
   poza ekran. Pseudoelement powiększa obszar kliknięcia, nie zajmując miejsca. */
.ms-icon-link::after,
.ms-footer-social a::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 44px;
  height: 44px;
  transform: translate(-50%, -50%);
}

/* === PASEK NAD ZDJĘCIEM ===
   Przezroczysty pasek nad jasnym kadrem (biała ściana, suknia, okno) gubił
   białe napisy. Wąski cień pod samym paskiem działa niezależnie od gradientu
   hero, więc ratuje każdą podstronę, i znika, gdy pasek robi się kremowy. */
.ms-topbar.is-hero-overlay::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 190%;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(12, 9, 7, .55), rgba(12, 9, 7, .2) 58%, rgba(12, 9, 7, 0));
  transition: opacity .4s ease;
}
.ms-topbar.is-hero-overlay.sx-solid::before { opacity: 0; }

/* === MSX AMBIENT + GALAZKI (home) — dodane automatycznie === */
.ms-ambient{display:none}
html.msx.ms-amb .ms-ambient{display:block;position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
html.msx.ms-amb .ms-page,
html.msx.ms-amb .ms-section,
html.msx.ms-amb .ms-reviews-section{background:transparent}
.ms-ambient .ms-bg-grain{position:absolute;inset:0;opacity:.16;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.ms-ambient .ms-bg-blob{position:absolute;border-radius:50%;filter:blur(64px);will-change:transform}
.ms-ambient .b1{width:40vw;height:40vw;left:-8vw;top:42vh;opacity:.5;mix-blend-mode:multiply;background:radial-gradient(circle,rgba(169,121,63,.6),transparent 64%)}
.ms-ambient .b2{width:34vw;height:34vw;right:-6vw;top:14vh;opacity:.44;mix-blend-mode:multiply;background:radial-gradient(circle,rgba(135,95,49,.5),transparent 64%)}
.ms-ambient .b3{width:32vw;height:32vw;left:36vw;top:72vh;opacity:.58;background:radial-gradient(circle,rgba(255,249,240,.95),transparent 60%)}
.ms-ambient .b4{width:30vw;height:30vw;right:14vw;top:60vh;opacity:.4;mix-blend-mode:multiply;background:radial-gradient(circle,rgba(190,140,80,.5),transparent 62%)}
@media (prefers-reduced-motion:no-preference){
 .ms-ambient .b1{animation:msAmbD1 34s ease-in-out infinite}
 .ms-ambient .b2{animation:msAmbD2 42s ease-in-out infinite}
 .ms-ambient .b3{animation:msAmbD3 36s ease-in-out infinite}
 .ms-ambient .b4{animation:msAmbD1 46s ease-in-out infinite}
}
@keyframes msAmbD1{50%{transform:translate(40px,-30px) scale(1.08)}}
@keyframes msAmbD2{50%{transform:translate(-34px,26px) scale(1.1)}}
@keyframes msAmbD3{50%{transform:translate(28px,30px) scale(.93)}}
html.msx.ms-amb{--ms-branch:url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%20200%20146%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M22%20130%20C80%20122%20124%2066%20182%2016%22%20stroke%3D%22%238f6633%22%20stroke-width%3D%221.4%22%20fill%3D%22none%22%2F%3E%3Cpath%20d%3D%22M72%20113%20C84%20105%2093%2093%2097%2079%22%20stroke%3D%22%238f6633%22%20stroke-width%3D%220.9%22%20fill%3D%22none%22%2F%3E%3Cg%20transform%3D%22translate%2842.3%20125.1%29%20rotate%28147.2%29%20scale%281.02%29%22%3E%3Cpath%20d%3D%22M0%200%20C-4.6%20-6%20-4.4%20-14%200%20-19.5%20C4.4%20-14%204.6%20-6%200%200%20Z%22%20fill%3D%22rgba%28154%2C111%2C57%2C0.16%29%22%20stroke%3D%22%238f6633%22%20stroke-width%3D%220.9%22%2F%3E%3Cpath%20d%3D%22M0%20-2%20L0%20-16.5%22%20stroke%3D%22%238f6633%22%20stroke-width%3D%220.6%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%2857.7%20118.7%29%20rotate%28-10.1%29%20scale%280.97%29%22%3E%3Cpath%20d%3D%22M0%200%20C-4.6%20-6%20-4.4%20-14%200%20-19.5%20C4.4%20-14%204.6%20-6%200%200%20Z%22%20fill%3D%22rgba%28154%2C111%2C57%2C0.16%29%22%20stroke%3D%22%238f6633%22%20stroke-width%3D%220.9%22%2F%3E%3Cpath%20d%3D%22M0%20-2%20L0%20-16.5%22%20stroke%3D%22%238f6633%22%20stroke-width%3D%220.6%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%2872.7%20110.3%29%20rotate%28119.9%29%20scale%280.92%29%22%3E%3Cpath%20d%3D%22M0%200%20C-4.6%20-6%20-4.4%20-14%200%20-19.5%20C4.4%20-14%204.6%20-6%200%200%20Z%22%20fill%3D%22rgba%28154%2C111%2C57%2C0.16%29%22%20stroke%3D%22%238f6633%22%20stroke-width%3D%220.9%22%2F%3E%3Cpath%20d%3D%22M0%20-2%20L0%20-16.5%22%20stroke%3D%22%238f6633%22%20stroke-width%3D%220.6%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%2887.4%20100.2%29%20rotate%28-6.6%29%20scale%280.87%29%22%3E%3Cpath%20d%3D%22M0%200%20C-4.6%20-6%20-4.4%20-14%200%20-19.5%20C4.4%20-14%204.6%20-6%200%200%20Z%22%20fill%3D%22rgba%28154%2C111%2C57%2C0.16%29%22%20stroke%3D%22%238f6633%22%20stroke-width%3D%220.9%22%2F%3E%3Cpath%20d%3D%22M0%20-2%20L0%20-16.5%22%20stroke%3D%22%238f6633%22%20stroke-width%3D%220.6%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28102.0%2088.8%29%20rotate%28112.2%29%20scale%280.82%29%22%3E%3Cpath%20d%3D%22M0%200%20C-4.6%20-6%20-4.4%20-14%200%20-19.5%20C4.4%20-14%204.6%20-6%200%200%20Z%22%20fill%3D%22rgba%28154%2C111%2C57%2C0.16%29%22%20stroke%3D%22%238f6633%22%20stroke-width%3D%220.9%22%2F%3E%3Cpath%20d%3D%22M0%20-2%20L0%20-16.5%22%20stroke%3D%22%238f6633%22%20stroke-width%3D%220.6%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28116.6%2076.1%29%20rotate%28-25.9%29%20scale%280.77%29%22%3E%3Cpath%20d%3D%22M0%200%20C-4.6%20-6%20-4.4%20-14%200%20-19.5%20C4.4%20-14%204.6%20-6%200%200%20Z%22%20fill%3D%22rgba%28154%2C111%2C57%2C0.16%29%22%20stroke%3D%22%238f6633%22%20stroke-width%3D%220.9%22%2F%3E%3Cpath%20d%3D%22M0%20-2%20L0%20-16.5%22%20stroke%3D%22%238f6633%22%20stroke-width%3D%220.6%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28131.3%2062.6%29%20rotate%28123.0%29%20scale%280.72%29%22%3E%3Cpath%20d%3D%22M0%200%20C-4.6%20-6%20-4.4%20-14%200%20-19.5%20C4.4%20-14%204.6%20-6%200%200%20Z%22%20fill%3D%22rgba%28154%2C111%2C57%2C0.16%29%22%20stroke%3D%22%238f6633%22%20stroke-width%3D%220.9%22%2F%3E%3Cpath%20d%3D%22M0%20-2%20L0%20-16.5%22%20stroke%3D%22%238f6633%22%20stroke-width%3D%220.6%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28146.3%2048.5%29%20rotate%28-27.2%29%20scale%280.67%29%22%3E%3Cpath%20d%3D%22M0%200%20C-4.6%20-6%20-4.4%20-14%200%20-19.5%20C4.4%20-14%204.6%20-6%200%200%20Z%22%20fill%3D%22rgba%28154%2C111%2C57%2C0.16%29%22%20stroke%3D%22%238f6633%22%20stroke-width%3D%220.9%22%2F%3E%3Cpath%20d%3D%22M0%20-2%20L0%20-16.5%22%20stroke%3D%22%238f6633%22%20stroke-width%3D%220.6%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28161.7%2034.2%29%20rotate%28109.4%29%20scale%280.62%29%22%3E%3Cpath%20d%3D%22M0%200%20C-4.6%20-6%20-4.4%20-14%200%20-19.5%20C4.4%20-14%204.6%20-6%200%200%20Z%22%20fill%3D%22rgba%28154%2C111%2C57%2C0.16%29%22%20stroke%3D%22%238f6633%22%20stroke-width%3D%220.9%22%2F%3E%3Cpath%20d%3D%22M0%20-2%20L0%20-16.5%22%20stroke%3D%22%238f6633%22%20stroke-width%3D%220.6%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%2884.5%2096.0%29%20rotate%28-176.0%29%20scale%280.70%29%22%3E%3Cpath%20d%3D%22M0%200%20C-4.6%20-6%20-4.4%20-14%200%20-19.5%20C4.4%20-14%204.6%20-6%200%200%20Z%22%20fill%3D%22rgba%28154%2C111%2C57%2C0.16%29%22%20stroke%3D%22%238f6633%22%20stroke-width%3D%220.9%22%2F%3E%3Cpath%20d%3D%22M0%20-2%20L0%20-16.5%22%20stroke%3D%22%238f6633%22%20stroke-width%3D%220.6%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%2893.2%2084.1%29%20rotate%28-58.0%29%20scale%280.60%29%22%3E%3Cpath%20d%3D%22M0%200%20C-4.6%20-6%20-4.4%20-14%200%20-19.5%20C4.4%20-14%204.6%20-6%200%200%20Z%22%20fill%3D%22rgba%28154%2C111%2C57%2C0.16%29%22%20stroke%3D%22%238f6633%22%20stroke-width%3D%220.9%22%2F%3E%3Cpath%20d%3D%22M0%20-2%20L0%20-16.5%22%20stroke%3D%22%238f6633%22%20stroke-width%3D%220.6%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28182.0%2016.0%29%20rotate%2849.2%29%20scale%280.62%29%22%3E%3Cpath%20d%3D%22M0%200%20C-4.6%20-6%20-4.4%20-14%200%20-19.5%20C4.4%20-14%204.6%20-6%200%200%20Z%22%20fill%3D%22rgba%28154%2C111%2C57%2C0.16%29%22%20stroke%3D%22%238f6633%22%20stroke-width%3D%220.9%22%2F%3E%3Cpath%20d%3D%22M0%20-2%20L0%20-16.5%22%20stroke%3D%22%238f6633%22%20stroke-width%3D%220.6%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28179.0%2020.0%29%20rotate%2821.2%29%20scale%280.55%29%22%3E%3Cpath%20d%3D%22M0%200%20C-4.6%20-6%20-4.4%20-14%200%20-19.5%20C4.4%20-14%204.6%20-6%200%200%20Z%22%20fill%3D%22rgba%28154%2C111%2C57%2C0.16%29%22%20stroke%3D%22%238f6633%22%20stroke-width%3D%220.9%22%2F%3E%3Cpath%20d%3D%22M0%20-2%20L0%20-16.5%22%20stroke%3D%22%238f6633%22%20stroke-width%3D%220.6%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28184.0%2021.0%29%20rotate%2877.2%29%20scale%280.55%29%22%3E%3Cpath%20d%3D%22M0%200%20C-4.6%20-6%20-4.4%20-14%200%20-19.5%20C4.4%20-14%204.6%20-6%200%200%20Z%22%20fill%3D%22rgba%28154%2C111%2C57%2C0.16%29%22%20stroke%3D%22%238f6633%22%20stroke-width%3D%220.9%22%2F%3E%3Cpath%20d%3D%22M0%20-2%20L0%20-16.5%22%20stroke%3D%22%238f6633%22%20stroke-width%3D%220.6%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E")}
html.msx.ms-amb .ms-section{position:relative;overflow:hidden}
html.msx.ms-amb .ms-section>.ms-wrap{position:relative;z-index:1}
html.msx.ms-amb .ms-section::before,
html.msx.ms-amb .ms-section::after{content:"";position:absolute;z-index:0;width:270px;height:197px;background:var(--ms-branch) no-repeat center/contain;opacity:.16;pointer-events:none}
html.msx.ms-amb .ms-section::before{top:6px;left:-8px}
html.msx.ms-amb .ms-section::after{bottom:6px;right:-8px;transform:scaleX(-1)}
html.msx.ms-amb .ms-section:nth-of-type(even)::before{transform:scaleY(-1)}
html.msx.ms-amb .ms-section.ms-no-branch-br::after{content:none}
@media (max-width:768px){
 html.msx.ms-amb .ms-section::before,html.msx.ms-amb .ms-section::after{width:170px;height:124px;opacity:.1}
}

/* === Dostępność i czytelny nagłówek mobilny === */
.ms-skip-link {
  position: fixed;
  top: 8px;
  left: 8px;
  z-index: 10000;
  padding: 11px 16px;
  background: #fff;
  color: #211d1a;
  border: 2px solid var(--ms-gold);
  text-decoration: none;
  font-weight: 700;
  transform: translateY(-160%);
  transition: transform .18s ease;
}
.ms-skip-link:focus { transform: translateY(0); }

:where(a, button, input, select, textarea):focus-visible {
  outline: 2px solid var(--ms-gold);
  outline-offset: 3px;
}

.sx-hero-dots button { width: 44px !important; height: 44px !important; }

@media (max-width: 760px) {
  .ms-topbar { justify-items: stretch; }
  .ms-brand { justify-self: center; }
  .ms-main-nav,
  .ms-header-tools {
    justify-content: flex-start;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
  }
  .ms-main-nav::-webkit-scrollbar,
  .ms-header-tools::-webkit-scrollbar { display: none; }
  .ms-main-nav { gap: 6px; padding: 0 2px 3px; }
  .ms-main-nav a {
    flex: 0 0 auto;
    min-height: 44px;
    padding: 0 8px;
    font-size: 11px;
    line-height: 1.15;
  }
  .ms-header-tools { gap: 6px; padding: 1px 2px; }
  /* Pięć ikon po 44 px zajmowało 220 px z 379 px dostępnych i wypychało
     przycisk „Panel" poza ekran. Rysunek zostaje 28 px, a pole dotykowe 44 px
     rysuje pseudoelement .ms-icon-link::after — nie zajmuje miejsca w układzie. */
  .ms-icon-link,
  .ms-header-tools > a:not(.ms-header-btn) {
    flex: 0 0 auto;
    width: 28px;
    height: 28px;
  }
  .ms-icon-link img { width: 24px; height: 24px; }
  .ms-header-btn {
    flex: 0 0 auto;
    min-height: 44px;
    padding: 0 12px;
    font-size: 11px;
    letter-spacing: .03em;
  }
}

@media (max-width: 420px) {
  /* Pięć pozycji menu potrzebuje ~500 px, a pasek ma 379 px — bez zawijania
     „Kontakt" wypadał poza ekran i był nieklikalny. Menu zawija się do dwóch
     wyśrodkowanych wierszy; niższy wiersz (36 px zamiast 44) trzyma pasek
     w ryzach, a i tak zostaje powyżej minimum WCAG 2.2 dla celu dotykowego. */
  .ms-main-nav { gap: 0 4px; flex-wrap: wrap; justify-content: center; }
  .ms-main-nav a { min-height: 36px; font-size: 10.5px; padding-inline: 7px; }
  .ms-header-tools { flex-wrap: wrap; justify-content: center; row-gap: 4px; }
}
