/*
 * Fiorelia Bestellkatalog
 * Ergänzt das unveränderte Legacy-Stylesheet ausschließlich für neue Seiten.
 */

.catalog-main-nav {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-left: auto;
}

.catalog-main-nav > a:not(.header-whatsapp) {
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .09em;
  text-decoration: none;
  text-transform: uppercase;
}

.catalog-main-nav > a:not(.header-whatsapp):hover,
.catalog-main-nav > a:not(.header-whatsapp):focus-visible {
  color: var(--rose-dark);
}

.catalog-main-nav .header-whatsapp { margin-left: 0; }

.catalog-breadcrumbs {
  width: min(1460px, calc(100% - 72px));
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin: -3px auto 20px;
  color: #8b8279;
  font-size: 11px;
  letter-spacing: .04em;
}

.catalog-breadcrumbs a { color: inherit; text-underline-offset: 3px; }
.catalog-breadcrumbs a:hover { color: var(--rose-dark); }

.catalog-button {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 11px 19px;
  border: 1px solid var(--rose-dark);
  border-radius: 12px;
  background: var(--rose-dark);
  color: #fffaf5;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .03em;
  text-decoration: none;
  box-shadow: 0 12px 28px rgba(129,68,75,.15);
  transition: transform .2s ease, background-color .2s ease, border-color .2s ease;
}

.catalog-button:hover { background: #71383f; transform: translateY(-1px); }
.catalog-button:focus-visible { outline: 3px solid rgba(168,95,102,.28); outline-offset: 3px; }
.catalog-button-secondary { border-color: var(--line); background: rgba(255,253,249,.7); color: var(--rose-dark); box-shadow: none; }
.catalog-button-secondary:hover { border-color: var(--rose-dark); background: var(--paper); }
.catalog-text-link { color: var(--rose-dark); font-size: 12px; font-weight: 700; text-underline-offset: 4px; }

/* Katalogübersicht */
.catalog-hub-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(330px, .72fr);
  align-items: center;
  gap: clamp(34px, 5vw, 78px);
  width: min(1460px, calc(100% - 72px));
  min-height: 560px;
  overflow: hidden;
  margin: 0 auto;
  padding: clamp(44px, 6vw, 82px) clamp(32px, 6vw, 88px);
  border: 1px solid var(--line);
  border-radius: 30px;
  background:
    radial-gradient(circle at 86% 22%, rgba(168,95,102,.23), transparent 26%),
    radial-gradient(circle at 75% 85%, rgba(113,128,108,.2), transparent 32%),
    linear-gradient(145deg, #eee7dc 0%, #f8f3eb 64%);
  box-shadow: 0 28px 90px rgba(76,55,42,.08);
}

.catalog-hub-hero::after {
  content: "";
  position: absolute;
  right: clamp(-90px, -4vw, -28px);
  bottom: -165px;
  width: 490px;
  height: 490px;
  border: 1px solid rgba(129,68,75,.2);
  border-radius: 50%;
}

.catalog-hub-hero-copy { position: relative; z-index: 1; min-width: 0; }

.catalog-hub-hero h1 {
  position: relative;
  z-index: 1;
  max-width: 790px;
  margin: 17px 0 24px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(47px, 5.5vw, 80px);
  font-weight: 400;
  line-height: .98;
  letter-spacing: -.045em;
}

.catalog-lead { position: relative; z-index: 1; max-width: 720px; color: var(--muted); font-size: 17px; line-height: 1.75; }
.catalog-hero-actions { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 10px; margin-top: 32px; }
.catalog-hub-hero-image {
  position: relative;
  z-index: 1;
  width: min(100%, 500px);
  aspect-ratio: 4 / 5;
  overflow: hidden;
  margin: 0;
  justify-self: end;
  border: 1px solid rgba(129,68,75,.22);
  border-radius: 18px 78px 18px 78px;
  background: rgba(255,253,249,.72);
  box-shadow: 0 28px 70px rgba(76,55,42,.17);
}
.catalog-hub-hero-image img { width: 100%; height: 100%; display: block; object-fit: cover; }

.catalog-product-section,
.catalog-hub-info,
.catalog-hub-faq {
  width: min(1220px, calc(100% - 72px));
  margin-inline: auto;
}

.catalog-product-section { padding-top: clamp(70px, 9vw, 120px); }
.catalog-section-heading { max-width: 750px; }
.catalog-section-heading h2,
.catalog-hub-info h2,
.catalog-hub-faq h2,
.catalog-contact-card h2 {
  margin: 13px 0 17px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(34px, 4vw, 54px);
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: -.03em;
}
.catalog-section-heading p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.7; }

.catalog-product-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin-top: 40px;
}

.catalog-product-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: var(--paper);
  color: var(--ink);
  text-decoration: none;
  box-shadow: 0 16px 44px rgba(76,55,42,.06);
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}

.catalog-product-card:hover { transform: translateY(-4px); border-color: rgba(129,68,75,.55); box-shadow: 0 22px 55px rgba(76,55,42,.12); }
.catalog-product-card:focus-visible { outline: 3px solid rgba(168,95,102,.24); outline-offset: 4px; }
.catalog-card-image { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #eee8de; }
.catalog-card-image img { width: 100%; height: 100%; display: block; object-fit: contain; mix-blend-mode: multiply; transition: transform .4s ease; }
.catalog-product-card:hover .catalog-card-image img { transform: scale(1.035); }
.catalog-season-badge { position: absolute; left: 13px; bottom: 13px; padding: 7px 10px; border-radius: 999px; background: rgba(255,253,249,.92); color: var(--rose-dark); font-size: 9px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; backdrop-filter: blur(7px); }
.catalog-card-copy { min-height: 235px; display: flex; flex-direction: column; align-items: flex-start; padding: 23px; }
.catalog-card-kicker { margin-bottom: 10px; color: var(--rose-dark); font-size: 11px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.catalog-card-copy > strong { font-family: Georgia, "Times New Roman", serif; font-size: 28px; font-weight: 400; line-height: 1.1; }
.catalog-card-copy > strong + span { margin-top: 13px; color: var(--muted); font-size: 13px; line-height: 1.65; }
.catalog-card-link { margin-top: auto !important; padding-top: 20px; color: var(--rose-dark) !important; font-size: 12px !important; font-weight: 800; }

.catalog-hub-info { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(290px, .65fr); gap: 18px; margin-top: 65px; }
.catalog-info-copy { padding: clamp(28px, 5vw, 54px); border: 1px solid var(--line); border-radius: 22px; background: var(--paper); color: var(--muted); line-height: 1.75; }
.catalog-info-copy h2, .catalog-long-copy h2 { margin: 1.45em 0 .55em; color: var(--ink); font-family: Georgia, "Times New Roman", serif; font-size: clamp(27px, 3vw, 38px); font-weight: 400; line-height: 1.15; }
.catalog-info-copy h2:first-child, .catalog-long-copy h2:first-child { margin-top: 0; }
.catalog-hub-info > .pickup-notice { align-self: stretch; margin: 0; padding: 28px; border-radius: 22px; }
.catalog-hub-faq { margin-top: 18px; margin-bottom: 72px; padding: clamp(28px, 5vw, 48px); }

/* Gemeinsame Produktseiten */
.catalog-booking-layout { min-height: 0; }
.catalog-product-stage .stage-copy h1 { overflow-wrap: anywhere; font-size: clamp(43px, 4.2vw, 70px); }
.catalog-product-image { mix-blend-mode: multiply; }
.catalog-variant-card { flex-basis: 180px; min-width: 180px; }
.catalog-variant-card .size-card-copy { min-height: 116px; grid-template-rows: auto auto 1fr; align-content: start; }
.catalog-variant-card .size-card-index { grid-row: 1 / 4; }
.catalog-variant-card .size-card-name { overflow: visible; line-height: 1.25; text-overflow: clip; white-space: normal; }
.catalog-card-dimension { grid-column: 2; color: var(--muted); font-size: 10px; line-height: 1.25; }
.catalog-variant-card .size-card-price { grid-column: 2; margin-top: 3px; font-size: 16px; }
.catalog-variant-card:has(input[value="auf-anfrage"]) .size-card-price { font-family: inherit; font-size: 11px; line-height: 1.35; text-transform: uppercase; }
.catalog-season-notice { margin: -3px 0 19px; padding: 14px 16px; border: 1px solid #ddc99f; border-radius: 12px; background: #fff9e9; color: #6d5934; font-size: 11px; line-height: 1.55; }
.catalog-season-notice strong { display: block; margin-bottom: 3px; color: #74582c; font-size: 12px; }
.catalog-form-intro { margin: -13px 0 23px; color: var(--muted); font-size: 13px; line-height: 1.65; }
.catalog-inquiry-price { color: var(--rose-dark); font-size: 13px; line-height: 1.6; }
.catalog-single-summary { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: var(--paper); }
.catalog-single-summary > div { display: grid; gap: 6px; }
.catalog-single-summary > div > span { color: var(--muted); font-size: 12px; }
.catalog-single-summary > strong { color: var(--rose-dark); font-size: 24px; }
.catalog-single-hint { color: var(--muted); font-size: 12px; line-height: 1.65; }
.catalog-single-gallery { margin-bottom: 0; }

.catalog-seo-content { margin-top: clamp(70px, 9vw, 120px); }
.catalog-rich-copy { color: var(--muted); font-size: 16px; line-height: 1.75; }
.catalog-long-copy { margin-top: 34px; padding: clamp(30px, 5vw, 54px); border: 1px solid var(--line); border-radius: 22px; background: var(--paper); color: var(--muted); font-size: 15px; line-height: 1.75; box-shadow: 0 16px 46px rgba(76,55,42,.055); }
.catalog-long-copy h3 { margin: 1.25em 0 .5em; color: var(--ink); font-family: Georgia, "Times New Roman", serif; font-size: 25px; font-weight: 400; }
.catalog-faq-card { margin-top: 18px; }
.catalog-faq-card h2 { margin: 12px 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(31px, 3vw, 42px); font-weight: 400; }
.catalog-contact-card { display: flex; align-items: center; justify-content: space-between; gap: 28px; margin-top: 18px; padding: clamp(27px, 4vw, 42px); border: 1px solid #cbdccc; border-radius: 22px; background: #edf5ed; }
.catalog-contact-card h2 { margin-bottom: 8px; font-size: clamp(30px, 3vw, 42px); }
.catalog-contact-card p { max-width: 680px; margin: 0; color: #49624d; font-size: 13px; line-height: 1.65; }

/* Hochzeitsanfrage */
.catalog-wedding-stage { min-height: 920px; }
.catalog-inline-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 18px; margin-top: 26px; }
.catalog-wedding-gallery { position: relative; z-index: 1; width: min(100%, 650px); height: clamp(410px, 45vw, 570px); margin: 34px auto -56px; }
.catalog-gallery-main { width: 100%; height: 100%; display: block; object-fit: contain; mix-blend-mode: multiply; }
.catalog-gallery-thumbnails { position: absolute; z-index: 4; left: 0; right: 0; bottom: 55px; display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; }
.catalog-gallery-thumbnails button { width: 55px; height: 55px; overflow: hidden; padding: 3px; border: 1px solid rgba(129,68,75,.24); border-radius: 12px; background: rgba(255,253,249,.88); cursor: pointer; backdrop-filter: blur(7px); transition: border-color .2s ease, transform .2s ease; }
.catalog-gallery-thumbnails button:hover, .catalog-gallery-thumbnails button.is-active { border-color: var(--rose-dark); transform: translateY(-2px); }
.catalog-gallery-thumbnails button:focus-visible { outline: 3px solid rgba(168,95,102,.25); outline-offset: 2px; }
.catalog-gallery-thumbnails img { width: 100%; height: 100%; display: block; object-fit: cover; border-radius: 8px; mix-blend-mode: multiply; }
.catalog-wedding-fields { margin-top: 22px; }
.catalog-wedding-fields input[type="number"] { appearance: textfield; }
.catalog-success-whatsapp { width: 100%; margin: 0 0 12px; }
.catalog-topic-link { margin: 18px 0 0; padding: 20px 23px; border-left: 3px solid var(--rose-dark); border-radius: 0 14px 14px 0; background: #f1eae1; color: var(--muted); font-size: 14px; line-height: 1.7; }
.catalog-topic-link a { color: var(--rose-dark); font-weight: 800; text-underline-offset: 3px; }

@media (max-width: 1180px) {
  .catalog-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1040px) {
  .catalog-breadcrumbs, .catalog-hub-hero { width: min(100% - 34px, 760px); }
  .catalog-hub-hero { grid-template-columns: 1fr; gap: 38px; }
  .catalog-hub-hero-image { width: min(100%, 620px); max-height: 430px; justify-self: start; aspect-ratio: 16 / 10; border-radius: 18px 58px 18px 58px; }
  .catalog-product-section, .catalog-hub-info, .catalog-hub-faq { width: min(100% - 34px, 760px); }
  .catalog-hub-info { grid-template-columns: 1fr; }
  .catalog-wedding-stage { min-height: 760px; }
  .catalog-wedding-gallery { height: 480px; margin-bottom: -42px; }
}

@media (max-width: 700px) {
  .catalog-product-grid { grid-template-columns: 1fr; }
  .catalog-card-copy { min-height: 210px; }
  .catalog-contact-card { align-items: stretch; flex-direction: column; }
  .catalog-contact-card .catalog-button { width: 100%; }
}

@media (max-width: 620px) {
  .catalog-main-nav { gap: 9px; }
  .catalog-main-nav > a:not(.header-whatsapp) { display: none; }
  .catalog-main-nav .header-whatsapp { padding: 8px 11px; }
  .catalog-breadcrumbs { width: calc(100% - 28px); margin-top: -4px; }
  .catalog-hub-hero { width: 100%; min-height: 0; gap: 30px; padding: 48px 23px 44px; border-inline: 0; border-radius: 0; }
  .catalog-hub-hero h1 { font-size: 48px; overflow-wrap: anywhere; }
  .catalog-lead { font-size: 15px; }
  .catalog-hero-actions { align-items: stretch; flex-direction: column; }
  .catalog-hub-hero-image { width: 100%; max-height: none; aspect-ratio: 4 / 3; border-radius: 14px 38px 14px 38px; }
  .catalog-product-section, .catalog-hub-info, .catalog-hub-faq { width: calc(100% - 36px); }
  .catalog-product-section { padding-top: 62px; }
  .catalog-product-grid { gap: 14px; margin-top: 28px; }
  .catalog-card-image { aspect-ratio: 1 / .82; }
  .catalog-card-copy { min-height: 0; }
  .catalog-hub-info { margin-top: 45px; }
  .catalog-info-copy, .catalog-hub-info > .pickup-notice, .catalog-hub-faq { padding: 24px; }
  .catalog-hub-faq { margin-bottom: 58px; }
  .catalog-product-stage .stage-copy h1 { font-size: 42px; }
  .catalog-variant-card { flex-basis: min(75vw, 220px); min-width: min(75vw, 220px); }
  .catalog-contact-card { padding: 24px; }
  .catalog-wedding-stage { min-height: 700px; }
  .catalog-wedding-gallery { width: calc(100% + 20px); height: 410px; margin: 35px 0 -35px -10px; }
  .catalog-gallery-thumbnails { bottom: 47px; }
  .catalog-gallery-thumbnails button { width: 46px; height: 46px; }
  .catalog-inline-actions { align-items: stretch; flex-direction: column; gap: 12px; }
  .catalog-inline-actions .catalog-button { width: 100%; }
  .catalog-inline-actions .catalog-text-link { text-align: center; }
  .catalog-long-copy { padding: 25px; }
}

@media (prefers-reduced-motion: reduce) {
  .catalog-product-card, .catalog-card-image img, .catalog-button { transition: none !important; }
}
