:root {
  --brand: #901c58;
  --brand-dark: #5f143e;
  --rose: #f6cee3;
  --ink: #3f3540;
  --paper: #fffafd;
  --radius: 1rem;
  --shadow: 0 1rem 2.5rem rgb(95 20 62 / 12%);
  --font-body: "Open Sans", Arial, sans-serif;
  --font-display: "Tangerine", cursive;
  --font-script-alt: "Great Vibes", cursive;
  --font-editorial: "Lora", Georgia, serif;
  --space-section: clamp(2.25rem, 4vw, 4rem);
  --space-block: clamp(.85rem, 1.5vw, 1.25rem);
  --responsive-body-min: 0px;
  --responsive-heading-min: 0px;
  --responsive-button-min: 0px;
  --responsive-small-min: 0px;
}
.content-anchor{display:block;height:0;scroll-margin-top:8rem}

* { box-sizing: border-box; }
html { max-width: 100%; color-scheme: light; scroll-behavior: smooth; overflow-x: clip; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { margin: 0; color: var(--ink); background: var(--paper); font: 1rem/1.58 var(--font-body); }
img { display: block; width: 100%; height: auto; }
picture, iframe, video, canvas, svg { max-width: 100%; }
main, section, article, aside, nav, header, footer, div, form, fieldset { min-width: 0; }
pre { max-width: 100%; overflow-x: auto; }
code, a, p, li, dd, blockquote { overflow-wrap: anywhere; }
a { color: var(--brand-dark); text-underline-offset: .2em; }
p { margin-block: .55rem; }
h1, h2, h3 {
  margin: 0 0 .18em;
  color: var(--brand);
  font-family: var(--font-display);
  font-weight: 400;
  line-height: .98;
  letter-spacing: .01em;
  text-wrap: balance;
}
h1 { font-size: clamp(3.2rem, 6vw, 5.4rem); }
h2 { font-size: clamp(2.2rem, 3.8vw, 3.3rem); }
h3 { font-size: clamp(2rem, 3vw, 2.75rem); }
.skip-link { position: absolute; left: -9999px; }
.skip-link:focus { left: 1rem; top: 1rem; z-index: 10; background: white; padding: .75rem; }
.site-header { min-height: 5rem; display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 1rem clamp(1rem, 4vw, 4rem); background: white; border-bottom: 1px solid #eadde5; position: sticky; top: 0; z-index: 5; }
.wordmark { color: var(--brand); font: 400 clamp(2.1rem, 4vw, 3.25rem)/1 var(--font-display); text-decoration: none; white-space: nowrap; }
.wordmark img { width: 8.6rem; height: 3.6rem; object-fit: contain; }
.main-nav { display: flex; align-items: center; gap: clamp(.75rem, 2vw, 2rem); }
.main-nav a { text-decoration: none; font-weight: 600; }
.nav-group { position: relative; }
.nav-group-toggle {
  padding: 0;
  border-radius: 0;
  color: var(--brand-dark);
  background: transparent;
  font: 600 1rem/1.58 var(--font-body);
}
.nav-submenu {
  position: absolute;
  top: calc(100% + .5rem);
  right: 0;
  display: none;
  min-width: 11rem;
  padding: .45rem;
  border: 1px solid #eadde5;
  border-radius: .65rem;
  background: white;
  box-shadow: var(--shadow);
}
.nav-group-toggle[aria-expanded="true"] + .nav-submenu,
.nav-group:focus-within .nav-submenu { display: grid; }
.nav-submenu a { padding: .45rem .6rem; white-space: nowrap; }
.menu-toggle { display: none; }
.hero { min-height: min(68vh, 680px); display: grid; align-items: center; padding: clamp(2.5rem, 7vw, 5.5rem) max(1rem, calc((100vw - 1100px) / 2)); background: radial-gradient(circle at 85% 30%, var(--rose), transparent 32%), linear-gradient(135deg, white, #f9e8f1); }
.hero > div { max-width: 760px; }
.hero h1 { color: var(--brand); font-size: clamp(3.7rem, 7vw, 6.25rem); }
.hero .button { margin-top: .65rem; }
.eyebrow { margin: 0 0 .35rem; color: var(--brand); font-size: max(.78rem, var(--responsive-small-min)); font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.lead { margin: .2rem 0 .9rem; font-size: clamp(1.05rem, 2vw, 1.3rem); }
.button, button { display: inline-block; border: 0; border-radius: 999px; background: var(--brand); color: white; padding: .55rem 1.3rem .7rem; font: 400 1.75rem/1 var(--font-display); cursor: pointer; text-decoration: none; }
.content-wrap { width: min(1100px, calc(100% - 2rem)); margin: 0 auto; padding: var(--space-section) 0; }
.content-wrap > .card-grid { margin-top: var(--space-block); }
.card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2.5vw, 2rem); }
.card { overflow: clip; border-radius: var(--radius); background: white; box-shadow: var(--shadow); }
.card picture img { aspect-ratio: 16/9; object-fit: cover; }
.card-body { padding: 1rem; }
.card-body > :first-child { margin-top: 0; }
.card-body > :last-child { margin-bottom: 0; }
.partner-links { display: flex; flex-wrap: wrap; gap: .8rem; }
.prose { max-width: 820px; }
.prose header { margin-bottom: var(--space-block); }
.prose picture img { border-radius: var(--radius); margin: 1rem 0; }
.preserve-lines { white-space: pre-line; }
.rich-content { max-width: 100%; }
.rich-content table { display: block; max-width: 100%; overflow-x: auto; }
.rich-content img, .rich-content iframe, .rich-content video { max-width: 100% !important; height: auto; }
.font-script-alternate { font-family: var(--font-script-alt); font-weight: 400; }
.reviews-plugin { max-width: 1100px; margin: var(--space-section) auto; }
.reviews-plugin > header { text-align: center; }
.review-summary { color: var(--brand-dark); }
.review-list { display: grid; grid-template-columns: repeat(var(--review-columns, 3), minmax(0, 1fr)); gap: 1rem; }
.review-card { padding: 1rem; border: 1px solid #eadde5; border-radius: var(--radius); background: white; box-shadow: var(--shadow); }
.review-avatar { width: 2.75rem; height: 2.75rem; border-radius: 50%; object-fit: cover; }
.review-card blockquote { margin: .6rem 0; }
.review-text { white-space: pre-line; }
.review-text-trigger { display: block; width: 100%; margin: .6rem 0; padding: .85rem; border: 1px solid #dfbfd0; border-radius: .7rem; color: inherit; background: linear-gradient(145deg, #fff 0%, #fff8fb 100%); font: inherit; line-height: 1.65; text-align: left; cursor: pointer; box-shadow: 0 .2rem .8rem rgb(77 29 53 / 8%); transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.review-text-trigger:hover { border-color: var(--brand); box-shadow: 0 .55rem 1.3rem rgb(77 29 53 / 15%); transform: translateY(-1px); }
.review-text-trigger:focus-visible { outline: 3px solid rgb(144 28 88 / 28%); outline-offset: 3px; }
.review-excerpt { display: block; }
.review-more { display: block; margin-top: .7rem; color: var(--brand); font-size: max(.82rem, var(--responsive-small-min)); font-weight: 700; text-decoration: underline; text-underline-offset: .18em; }
.review-dialog { width: min(760px, calc(100% - 2rem)); max-height: min(86vh, 780px); padding: clamp(1.5rem, 4vw, 3rem); border: 1px solid #ead4df; border-radius: 1.1rem; color: var(--text); background: linear-gradient(145deg, #fff 0%, #fff8fb 100%); box-shadow: 0 2rem 5rem rgb(31 12 24 / 35%); overflow-y: auto; }
.review-dialog::backdrop { background: rgb(25 11 20 / 70%); backdrop-filter: blur(7px); }
.review-dialog[open] { animation: review-dialog-in .2s ease-out; }
.review-dialog h2 { margin-top: .15rem; padding-right: 2.5rem; }
.review-dialog-close { position: absolute; top: .9rem; right: .9rem; width: 2.75rem; height: 2.75rem; border: 1px solid #ead4df; border-radius: 50%; color: var(--brand-dark); background: white; font-size: 1.65rem; line-height: 1; cursor: pointer; }
.review-dialog-text { margin: 1.1rem 0 1.35rem; padding: 0; border: 0; font-family: var(--font-editorial); font-size: clamp(1.05rem, 2vw, 1.25rem); line-height: 1.72; }
.review-dialog-meta { display: flex; flex-wrap: wrap; gap: .35rem 1rem; align-items: baseline; padding-top: 1rem; border-top: 1px solid #ead4df; }
.review-dialog-source { display: inline-block; margin-top: 1rem; font-weight: 700; }
@keyframes review-dialog-in { from { opacity: 0; transform: translateY(1rem) scale(.98); } }
.review-card footer { display: flex; flex-wrap: wrap; gap: .4rem 1rem; font-size: max(.85em, var(--responsive-small-min)); }
.review-stars { color: #e4a400; letter-spacing: .08em; }
.owner-reply { margin-top: .8rem; padding: .7rem; background: #fffafd; border-left: .2rem solid var(--brand); }
.google-attribution { margin-top: .8rem; color: inherit; font-size: max(.78em, var(--responsive-small-min)); text-align: center; }
.review-strip .review-list { display: flex; overflow-x: auto; }
.review-strip .review-card { min-width: min(330px, 85vw); }
.review-slider .review-list { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: .5rem; }
.review-slider .review-card { flex: 0 0 min(360px, 85vw); scroll-snap-align: start; }
.review-featured .review-card:not(:first-child) { display: none; }
@media (max-width: 760px) {
  .review-list { grid-template-columns: 1fr; }
}
.legal-page > h1,
.legal-document h2,
.legal-document h3 { font-family: var(--font-editorial); line-height: 1.2; }
.legal-page > h1 { margin-bottom: .65rem; font-size: clamp(2rem, 3.5vw, 2.85rem); font-weight: 500; }
.legal-document h2 { margin: 1.75rem 0 .35rem; font-size: clamp(1.3rem, 2.2vw, 1.7rem); font-weight: 500; }
.legal-document h3 { margin: 1.25rem 0 .3rem; font-size: 1.15rem; font-weight: 500; }
.legal-document p, .legal-document li { overflow-wrap: anywhere; }
.legal-document p { margin-block: .45rem; }
.legal-document ul { margin-block: .55rem; padding-inline-start: 1.35rem; }
.site-footer { padding: 2.5rem max(1rem, calc((100vw - 1100px) / 2)); background: var(--brand-dark); color: white; display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.site-footer a, .link-button { color: white; }
.site-footer nav { display: flex; gap: 1rem; flex-wrap: wrap; }
.link-button { background: transparent; padding: 0; text-decoration: underline; }
.legal-modal[hidden], .cookie-banner[hidden] { display: none; }
.legal-modal { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; }
.legal-modal-overlay { position: absolute; inset: 0; background: rgb(0 0 0 / 62%); backdrop-filter: blur(4px); }
.legal-modal-content { position: relative; z-index: 1; display: flex; flex-direction: column; width: min(720px, calc(100% - 2rem)); max-height: 85vh; overflow: hidden; background: white; border-radius: 12px; box-shadow: 0 24px 64px rgb(0 0 0 / 25%); }
.legal-modal-content > h2 { margin: 0; padding: 1.25rem 4rem 1.25rem 2rem; border-bottom: 1px solid #eee; color: var(--brand); }
.legal-modal-body { padding: 2rem; overflow-y: auto; overscroll-behavior: contain; }
.legal-modal-close { position: absolute; top: .75rem; right: .75rem; z-index: 2; width: 44px; height: 44px; border: 0; border-radius: 50%; font-size: 1.6rem; cursor: pointer; }
body.modal-open { overflow: hidden; }
.cookie-banner { position: fixed; right: 1rem; bottom: 1rem; left: 1rem; z-index: 9000; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; background: white; border: 1px solid #ead4df; border-radius: 10px; box-shadow: 0 12px 40px rgb(0 0 0 / 20%); }
.cookie-banner p { margin: 0; }
.cookie-banner > div { display: flex; gap: .5rem; flex-wrap: wrap; }
.floating-whatsapp { position: fixed; right: 1rem; bottom: 1rem; z-index: 8000; padding: .8rem 1rem; border-radius: 999px; color: white; background: #1f8f4d; box-shadow: 0 8px 25px rgb(0 0 0 / 20%); text-decoration: none; font-weight: 700; }
.mobile-sticky-cta { display: none; }

.landing-hero {
  position: relative;
  min-height: min(65vh, 620px);
  isolation: isolate;
  display: grid;
  align-items: center;
  overflow: hidden;
}
.landing-hero-media,
.landing-hero-media picture,
.landing-hero-media img,
.landing-hero-overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.landing-hero-media { z-index: -2; }
.landing-hero-media > div,
.landing-hero-media > div picture,
.landing-hero-media > div img { position: absolute; inset: 0; width: 100%; height: 100%; }
.landing-hero-foreground img {
  object-fit: var(--hero-fit, cover);
  object-position: var(--hero-focus-x, 50%) var(--hero-focus-y, 50%);
  transform: scale(var(--hero-zoom, 1));
  transform-origin: var(--hero-focus-x, 50%) var(--hero-focus-y, 50%);
  filter: var(--hero-filter, none);
}
.landing-hero-blur { opacity: 0; overflow: hidden; }
.hero-has-blur-frame .landing-hero-blur { opacity: 1; }
.landing-hero-blur img { object-fit: cover; object-position: center; filter: blur(24px); transform: scale(1.08); }
.landing-hero-overlay {
  z-index: -1;
  background: linear-gradient(90deg, rgb(30 14 25 / 78%) 0%, rgb(52 20 39 / 58%) 42%, transparent 78%);
}
.landing-hero-content {
  width: min(1100px, calc(100% - 2rem));
  margin: 0 auto;
  padding-block: clamp(2.5rem, 7vw, 5.5rem);
  color: white;
}
.landing-reviews > p:first-of-type { max-width: 720px; margin-inline: auto; }
.landing-reviews .curated-review-grid { margin-top: 2rem; text-align: left; }
.landing-hero-content > * { max-width: 680px; }
.landing-hero-content h1 {
  color: white;
  font-size: clamp(3.25rem, 6vw, 5.5rem);
  text-shadow: 0 .12rem .8rem rgb(0 0 0 / 35%);
}
.landing-hero-content .eyebrow,
.landing-hero-content a { color: white; }
.landing-hero-content > p:not(.eyebrow) { font-size: clamp(1rem, 2vw, 1.25rem); }
.hero-contact {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem 1rem;
  margin-top: 1rem;
  font-style: normal;
  font-size: max(.88rem, var(--responsive-small-min));
}
.landing-section {
  width: min(1100px, calc(100% - 2rem));
  margin: 0 auto;
  padding-block: var(--space-section);
}
.landing-section + .landing-section { padding-top: 0; }
.landing-intro { max-width: 820px; text-align: center; }
.landing-intro .eyebrow { margin-bottom: .15rem; }
.landing-split {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(260px, .75fr);
  align-items: center;
  gap: clamp(1.25rem, 4vw, 3rem);
}
.landing-split picture img {
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.campaign-section { align-items: start; }
.campaign-section .campaign-image { max-width: 420px; justify-self: center; }
.campaign-section .campaign-image img { width: 100%; height: auto; object-fit: contain; }
.landing-copy > .button,
.landing-card-body > .button,
.centered-section > .button { margin-top: .7rem; }
.landing-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2.4vw, 1.75rem);
}
.landing-card-grid.dress-styles { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.landing-card {
  overflow: hidden;
  border-radius: var(--radius);
  background: white;
  box-shadow: var(--shadow);
}
.landing-card picture img { width: 100%; height: auto; object-fit: contain; }
.landing-card.ring-card picture img { aspect-ratio: 1; }
.landing-card-body { padding: .9rem; }
.landing-card-body h3 { font-size: clamp(1.9rem, 3vw, 2.45rem); }
.landing-card-body .button { font-size: 1.45rem; }
.feature-section { grid-template-columns: 1fr 180px; }
.feature-lines { line-height: 1.9; }
.feature-mark img {
  aspect-ratio: 1;
  object-fit: contain;
  border-radius: 50%;
  box-shadow: none;
}
.landing-callout {
  padding: clamp(1.75rem, 4vw, 3rem) max(1rem, calc((100vw - 1100px) / 2));
  text-align: center;
  background: var(--brand);
  color: white;
}
.landing-callout h1,
.landing-callout h2 { color: white; }
.button-light { background: white; color: var(--brand-dark); }
.centered-section { max-width: 760px; text-align: center; }
.social-section { border-block: 1px solid #eadde5; }
.closing-section .text-link { display: inline-block; margin-left: 1rem; font-weight: 700; }
.appointment-actions { padding-block: clamp(1.75rem, 4vw, 3rem); }
.appointment-action-grid {
  width: min(920px, calc(100% - 2rem));
  margin: 1rem auto 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.appointment-action-grid article {
  padding: 1.25rem;
  border: 1px solid rgb(255 255 255 / 35%);
  border-radius: var(--radius);
  background: rgb(255 255 255 / 10%);
}
.appointment-action-grid h3 { color: white; }
.structured-page { max-width: 1100px; }
.structured-page > header { max-width: 900px; margin-inline: auto; text-align: center; }
.content-blocks { display: grid; gap: .75rem; }
.content-block-element {
  width: min(var(--block-width), 100%);
  margin-inline: auto;
  padding: var(--block-space);
  color: var(--block-color);
  background: var(--block-bg);
  font-family: var(--block-font);
  font-size: max(var(--block-size), var(--responsive-body-min));
  text-align: var(--block-align);
}
.content-block-element :is(h2, h3, .container-title) {
  color: var(--block-heading-color);
  font-family: var(--block-heading-font);
  font-size: max(var(--block-heading-size), var(--responsive-heading-min));
}
.content-block-element a:not(.button) { color: var(--block-color); }
.content-block-element :is(.button, button) {
  color: var(--block-button-color);
  background: var(--block-button-bg);
  font-family: var(--block-button-font);
  font-size: max(var(--block-button-size), var(--responsive-button-min));
}
.styled-text-block {
  width: min(var(--block-width), 100%);
  margin-inline: auto;
  padding: var(--block-space);
  color: var(--block-color);
  background: var(--block-bg);
  font-family: var(--block-font);
  font-size: max(var(--block-size), var(--responsive-body-min));
  text-align: var(--block-align);
  border-radius: var(--radius);
}
.styled-text-block h2 {
  color: var(--block-heading-color, var(--brand));
  font-family: var(--block-heading-font, var(--font-display));
  font-size: max(
    var(--block-heading-size, clamp(1.7rem, 3vw, 2.55rem)),
    var(--responsive-heading-min)
  );
  line-height: 1;
}
.faq-page { max-width: 1100px; }
.faq-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  gap: clamp(1rem, 2.5vw, 2.25rem);
}
.faq-item {
  width: 100%;
  height: 100%;
  padding: clamp(1.1rem, 2.5vw, 1.75rem);
  border-radius: var(--radius);
  box-shadow: 0 .65rem 1.8rem rgb(95 20 62 / 8%);
}
.faq-item h2 {
  margin-bottom: .3em;
  color: var(--block-heading-color, var(--brand));
  font-family: var(--block-heading-font, var(--font-display));
  font-size: max(
    var(--block-heading-size, clamp(1.7rem, 3vw, 2.55rem)),
    var(--responsive-heading-min)
  );
}
.faq-wide { grid-column: 1 / -1; }

/* Brautmode overview */
.bridal-fashion-page {
  overflow: hidden;
  background:
    radial-gradient(circle at 5% 20%, rgb(246 206 227 / 42%), transparent 23rem),
    var(--paper);
}
.bridal-hero,
.bridal-section,
.bridal-experience {
  width: min(1180px, calc(100% - 2rem));
  margin-inline: auto;
}
.bridal-hero {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(320px, 1.05fr);
  align-items: center;
  gap: clamp(2rem, 6vw, 5.5rem);
  min-height: 680px;
  padding-block: clamp(3rem, 7vw, 6rem);
}
.bridal-hero-copy { position: relative; z-index: 1; }
.bridal-hero h1 {
  max-width: 12ch;
  font-size: clamp(4rem, 7vw, 6.5rem);
}
.bridal-lead {
  max-width: 37rem;
  margin-block: 1rem;
  color: var(--brand-dark);
  font: 500 clamp(1.12rem, 2vw, 1.38rem)/1.55 var(--font-editorial);
}
.bridal-hero-copy > p:not(.eyebrow, .bridal-lead) { max-width: 39rem; }
.bridal-hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem 1.4rem; margin-top: 1.5rem; }
.bridal-text-link { font-weight: 700; }
.bridal-hero-image { position: relative; margin: 0; }
.bridal-hero-image::before {
  position: absolute;
  inset: -1.2rem 1.8rem 1.8rem -1.2rem;
  z-index: -1;
  border-radius: 48% 48% 1.5rem 1.5rem;
  background: linear-gradient(145deg, #f4d7e6, #e8bacf);
  content: "";
  transform: rotate(-2deg);
}
.bridal-hero-image picture img {
  aspect-ratio: 4 / 5;
  border-radius: 48% 48% 1.5rem 1.5rem;
  object-fit: cover;
  box-shadow: 0 1.6rem 4rem rgb(95 20 62 / 18%);
}
.bridal-heart-divider {
  display: flex;
  align-items: center;
  gap: 1rem;
  width: min(760px, calc(100% - 3rem));
  margin: 0 auto;
  color: var(--brand);
}
.bridal-heart-divider::before,
.bridal-heart-divider::after { height: 1px; flex: 1; background: #dfbdce; content: ""; }
.bridal-heart-divider span {
  display: grid;
  place-items: center;
  width: 2.25rem;
  height: 2.25rem;
  font: 400 1.65rem/1 var(--font-body);
}
.bridal-section { padding-block: var(--space-section); }
.bridal-intro { max-width: 800px; text-align: center; }
.bridal-section-heading { max-width: 760px; margin: 0 auto clamp(1.5rem, 4vw, 2.75rem); text-align: center; }
.bridal-section-heading h2,
.bridal-intro h2,
.bridal-experience h2,
.bridal-closing h2 { font-size: clamp(2.8rem, 5vw, 4.4rem); }
.bridal-style-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(.85rem, 2vw, 1.4rem);
}
.bridal-style-card {
  overflow: hidden;
  border: 1px solid #efdce6;
  border-radius: 1.25rem;
  color: var(--ink);
  background: white;
  text-decoration: none;
  box-shadow: 0 .8rem 2rem rgb(95 20 62 / 9%);
  transition: transform .2s ease, box-shadow .2s ease;
}
.bridal-style-card:hover,
.bridal-style-card:focus-visible { transform: translateY(-.35rem); box-shadow: 0 1.3rem 3rem rgb(95 20 62 / 16%); }
.bridal-style-media { overflow: hidden; }
.bridal-style-media picture img { aspect-ratio: 3 / 4; object-fit: cover; transition: transform .35s ease; }
.bridal-style-card:hover img { transform: scale(1.025); }
.bridal-style-copy { padding: 1rem 1rem 1.15rem; }
.bridal-style-copy h3 { font-size: clamp(2rem, 3vw, 2.7rem); }
.bridal-style-copy p { min-height: 5em; font-size: .92rem; }
.bridal-style-copy > span { color: var(--brand-dark); font-weight: 700; }
.bridal-experience {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(310px, .85fr);
  gap: clamp(2rem, 6vw, 5rem);
  padding: clamp(2rem, 6vw, 5rem);
  border-radius: 2rem;
  color: white;
  background: linear-gradient(135deg, #5f143e, #901c58 68%, #a6346e);
  box-shadow: 0 1.5rem 4rem rgb(95 20 62 / 18%);
}
.bridal-experience :is(h2, .eyebrow, a) { color: white; }
.bridal-benefits { display: grid; gap: .75rem; margin: 0; padding: 0; list-style: none; }
.bridal-benefits li { padding: 1rem 1.1rem; border: 1px solid rgb(255 255 255 / 25%); border-radius: 1rem; background: rgb(255 255 255 / 9%); }
.bridal-benefits strong,
.bridal-benefits span { display: block; }
.bridal-benefits strong { font-family: var(--font-editorial); font-size: 1.05rem; }
.bridal-benefits span { margin-top: .18rem; color: rgb(255 255 255 / 83%); font-size: .9rem; }
.bridal-review-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 1rem;
}
.bridal-review-card {
  position: relative;
  grid-column: span 2;
  min-height: 17rem;
  padding: 1.4rem;
  border: 1px solid #ead5e0;
  border-radius: 1.25rem;
  background: linear-gradient(145deg, white, #fff8fc);
  box-shadow: 0 .8rem 2rem rgb(95 20 62 / 8%);
}
.bridal-review-card:nth-child(4) { grid-column: 2 / span 2; }
.bridal-review-mark { position: absolute; top: .2rem; right: 1rem; color: #efd4e2; font: 400 5rem/1 var(--font-editorial); }
.bridal-review-card .review-stars { position: relative; margin-top: 0; }
.bridal-review-card > p:not(.review-stars) { position: relative; font-family: var(--font-editorial); line-height: 1.65; }
.bridal-review-card footer { display: grid; gap: .1rem; margin-top: 1rem; }
.bridal-review-card time { color: #6c6068; font-size: .8rem; }
.bridal-review-source { margin-top: 1.5rem; text-align: center; }
.bridal-review-source a { font-weight: 700; }
.bridal-closing {
  margin-top: var(--space-section);
  padding: clamp(2.5rem, 6vw, 5rem) max(1rem, calc((100vw - 850px) / 2));
  color: white;
  background: var(--brand-dark);
  text-align: center;
}
.bridal-closing :is(h2, .eyebrow, a) { color: white; }
.bridal-closing > div { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 1rem 1.5rem; margin-top: 1.25rem; }
.content-embed { width: 100%; text-align: center; }
.content-embed iframe {
  display: block;
  width: min(100%, var(--embed-width));
  min-height: var(--embed-height);
  margin: 0 auto;
  padding: 0;
  border: 0;
}
.embed-fallback { margin-top: .5rem; font-size: inherit; }
.content-image-block {
  width: min(var(--block-width, 900px), 100%);
  margin: .35rem auto;
}
.content-image-block picture img {
  max-height: 760px;
  border-radius: var(--radius);
  object-fit: contain;
  box-shadow: var(--shadow);
}
.content-image-block figcaption {
  margin-top: .35rem;
  text-align: center;
  font-size: inherit;
}
.rings-page { max-width: 1180px; }
.content-container {
  width: min(var(--block-width, 100%), 100%);
  margin: .35rem auto;
}
.container-title { margin-bottom: .45em; text-align: center; }
.content-container-grid {
  display: grid;
  grid-template-columns: repeat(var(--container-columns), minmax(0, 1fr));
  gap: var(--container-gap);
  align-items: start;
}
.content-container-column { min-width: 0; }
.content-container-column > :first-child { margin-top: 0; }
.content-container-column > :last-child { margin-bottom: 0; }
.contained-image-block { width: 100%; margin: 0; }
.contained-image-block picture img {
  width: 100%;
  max-height: none;
  aspect-ratio: 1;
  object-fit: contain;
}
.content-cta,
.content-contact {
  width: min(var(--block-width, 820px), 100%);
  margin-inline: auto;
  text-align: var(--block-align, center);
}
.content-cta { padding: var(--block-space, .75rem) 0; }
.content-contact {
  margin-top: 1rem;
  padding: var(--block-space, clamp(1rem, 3vw, 2rem));
  border-radius: var(--radius);
  background: var(--block-bg, white);
  box-shadow: var(--shadow);
}
.contact-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .85rem;
  margin-top: .75rem;
  text-align: left;
}
.contact-form label { display: grid; gap: .25rem; font-weight: 600; }
.contact-form label:has(textarea),
.contact-form .privacy-check,
.contact-form button { grid-column: 1 / -1; }
.contact-form input,
.contact-form textarea {
  width: 100%;
  border: 1px solid #d7c4ce;
  border-radius: .5rem;
  padding: .7rem;
  color: var(--ink);
  background: var(--paper);
  font: inherit;
}
.contact-form .privacy-check {
  display: flex;
  grid-template-columns: auto 1fr;
  align-items: start;
  font-weight: 400;
}
.contact-form .privacy-check input { width: auto; margin-top: .3rem; }
.contact-form button { justify-self: center; }
.honeypot { position: absolute !important; left: -10000px !important; }
.form-success {
  padding: .7rem;
  border-radius: .5rem;
  background: #e6f5e9;
  color: #215f2a;
}

@media (max-width: 1024px) {
  html {
    font-size: 125%;
    --responsive-body-min: 1rem;
    --responsive-heading-min: 2rem;
    --responsive-button-min: 1rem;
    --responsive-small-min: .9rem;
  }
  .site-header { flex-wrap: wrap; }
  .menu-toggle { display: inline-block; }
  .main-nav { display: none; width: 100%; flex-direction: column; align-items: stretch; padding: 1rem 0; }
  .main-nav.is-open { display: flex; }
  .main-nav a { padding: .65rem 0; }
  .nav-group { width: 100%; }
  .nav-group-toggle { width: 100%; padding: .65rem 0; text-align: left; }
  .nav-submenu {
    position: static;
    min-width: 0;
    margin-left: 1rem;
    border: 0;
    box-shadow: none;
  }
  .card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .review-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .landing-card-grid.dress-styles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .landing-card-grid:not(.dress-styles) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .content-container-grid.container-columns-3,
  .content-container-grid.container-columns-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bridal-style-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bridal-style-copy p { min-height: 0; }
  .bridal-review-card { grid-column: span 3; }
  .bridal-review-card:nth-child(4) { grid-column: span 3; }
  .bridal-review-card:last-child { grid-column: 2 / span 4; }
}

@media (max-width: 767px) {
  html {
    font-size: 137.5%;
    --responsive-small-min: .875rem;
  }
  .legal-modal-content { width: calc(100% - 1rem); max-height: 92vh; border-radius: 8px; }
  .legal-modal-body { padding: 1.25rem; }
  .cookie-banner { align-items: stretch; flex-direction: column; bottom: 4.5rem; }
  .floating-whatsapp { bottom: 4.75rem; }
  .mobile-sticky-cta { position: fixed; right: .5rem; bottom: .5rem; left: .5rem; z-index: 8500; display: block; padding: .9rem; border-radius: 8px; color: white; background: var(--brand); text-align: center; text-decoration: none; font-weight: 700; box-shadow: 0 8px 25px rgb(0 0 0 / 25%); }
  .card-grid { grid-template-columns: 1fr; }
  .review-list { grid-template-columns: 1fr; }
  .hero { min-height: 58vh; }
  .landing-hero { min-height: 560px; align-items: end; }
  .landing-hero-overlay { background: linear-gradient(0deg, rgb(35 15 28 / 88%) 0%, rgb(46 20 36 / 52%) 72%, transparent); }
  .landing-hero-content { padding-bottom: 2.25rem; }
  .landing-split { grid-template-columns: 1fr; }
  .campaign-section .campaign-image { grid-row: 1; max-width: 320px; }
  .feature-section { grid-template-columns: 1fr; }
  .feature-mark { width: 120px; margin-inline: auto; }
  .landing-card-grid { grid-template-columns: 1fr; }
  .appointment-action-grid { grid-template-columns: 1fr; }
  .faq-grid { grid-template-columns: 1fr; }
  .faq-wide { grid-column: auto; }
  .contact-form { grid-template-columns: 1fr; }
  .content-container-grid { grid-template-columns: 1fr; }
  .content-container-grid.container-columns-2,
  .content-container-grid.container-columns-3,
  .content-container-grid.container-columns-4 { grid-template-columns: 1fr; }
  .site-footer { flex-direction: column; }
  .closing-section .text-link { display: block; margin: .75rem 0 0; }
  .bridal-hero { grid-template-columns: 1fr; min-height: 0; padding-top: 2.5rem; }
  .bridal-hero-copy { text-align: center; }
  .bridal-hero h1,
  .bridal-hero-copy > p { margin-inline: auto; }
  .bridal-hero-actions { justify-content: center; }
  .bridal-hero-image { width: min(88%, 430px); margin-inline: auto; }
  .bridal-style-grid { grid-template-columns: 1fr; }
  .bridal-style-card { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
  .bridal-style-media picture img { height: 100%; aspect-ratio: 4 / 5; }
  .bridal-experience { grid-template-columns: 1fr; padding: 1.5rem; border-radius: 1.25rem; }
  .bridal-review-grid { grid-template-columns: 1fr; }
  .bridal-review-card,
  .bridal-review-card:nth-child(4),
  .bridal-review-card:last-child { grid-column: auto; min-height: 0; }
}

@media (max-width: 480px) {
  .bridal-style-card { display: block; }
  .bridal-style-media picture img { aspect-ratio: 4 / 3; }
}

@media (max-width: 360px) {
  .site-header { gap: .5rem; padding-inline: .75rem; }
  .wordmark { font-size: 1.9rem; }
  .wordmark img { width: 7.2rem; height: 3rem; }
  .content-wrap { width: min(100% - 1.25rem, 1100px); }
  .landing-section,
  .landing-hero-content { width: min(100% - 1.25rem, 1100px); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
.child-page-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
  gap: 1.25rem;
  width: min(1180px, calc(100% - 2rem));
  margin: 2.5rem auto;
}

.child-page-card {
  display: block;
  padding: 1.5rem;
  color: var(--text, #3f3540);
  text-decoration: none;
  background: linear-gradient(180deg, #fff 38%, #dcc9d1 100%);
  border-radius: 0.5rem;
  box-shadow: 0 0.5rem 1.5rem rgb(63 53 64 / 8%);
}

.child-page-card h2 {
  margin-top: 0;
}

.child-page-card span {
  color: #901c58;
  font-weight: 700;
}

.instagram-plugin { max-width: 1100px; margin: var(--space-section) auto; }
.instagram-plugin > header, .instagram-follow { text-align: center; }
.instagram-grid { display: grid; grid-template-columns: repeat(var(--ig-columns-desktop, 3), minmax(0, 1fr)); gap: .75rem; }
.instagram-card { min-width: 0; }
.instagram-card > a, .instagram-media-static { position: relative; display: block; aspect-ratio: 1; overflow: hidden; background: #f3edf0; border-radius: var(--radius); }
.instagram-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease; }
.instagram-card a:hover img { transform: scale(1.025); }
.instagram-media-placeholder { display: grid; width: 100%; height: 100%; place-items: center; color: var(--brand); font-weight: 700; }
.instagram-card > p { margin: .45rem 0 .2rem; }
.instagram-card > strong, .instagram-card > time { display: block; font-size: max(.82em, var(--responsive-small-min)); }
.instagram-media-symbol { position: absolute; top: .6rem; right: .6rem; display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; color: white; background: rgba(0,0,0,.65); }
.instagram-row .instagram-grid { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; }
.instagram-row .instagram-card { flex: 0 0 min(320px, 80vw); scroll-snap-align: start; }
.instagram-featured .instagram-card:not(:first-child) { display: none; }

@media (max-width: 900px) {
  .instagram-grid { grid-template-columns: repeat(var(--ig-columns-tablet, 2), minmax(0, 1fr)); }
}

@media (max-width: 540px) {
  .instagram-grid { grid-template-columns: repeat(var(--ig-columns-mobile, 1), minmax(0, 1fr)); }
}

/* Magazin 3.3: ruhige redaktionelle Typografie, ohne externe Frontend-Abhängigkeit. */
.magazine-index,
.magazine-article {
  width: min(1180px, calc(100% - 2rem));
  margin-inline: auto;
  padding-block: clamp(1.25rem, 3vw, 2.5rem) clamp(4rem, 8vw, 7rem);
}
.magazine-index h1,
.magazine-index h2,
.magazine-index h3,
.magazine-article h1,
.magazine-article h2,
.magazine-article h3 { font-family: var(--font-editorial); font-weight: 500; line-height: 1.18; }
.magazine-index h1 { font-size: clamp(2.3rem, 5vw, 3.5rem); }
.magazine-article h1 { max-width: 980px; font-size: clamp(2rem, 4.6vw, 3.25rem); }
.magazine-index h2,
.magazine-article h2 { font-size: clamp(1.65rem, 3vw, 2.25rem); }
.magazine-index h3,
.magazine-article h3 { font-size: clamp(1.3rem, 2.3vw, 1.6rem); }
.magazine-breadcrumb { margin-bottom: clamp(1.5rem, 3vw, 2.5rem); font-size: .88rem; }
.magazine-breadcrumb ol { display: flex; flex-wrap: wrap; gap: .35rem .65rem; padding: 0; margin: 0; list-style: none; }
.magazine-breadcrumb li + li::before { content: "›"; margin-right: .65rem; color: #8d7d86; }
.magazine-breadcrumb li[aria-current="page"] { color: #665a62; }
.magazine-script { margin: 0 0 -.15rem; color: var(--brand); font: 400 clamp(2rem, 4vw, 3rem)/1 var(--font-display); }
.magazine-intro { max-width: 820px; margin: 0 auto clamp(2rem, 5vw, 4rem); text-align: center; }
.magazine-intro > p:last-child { margin-top: 1rem; font-size: clamp(1.05rem, 1.8vw, 1.2rem); line-height: 1.7; }
.magazine-feature { display: grid; grid-template-columns: minmax(0, 1.18fr) minmax(300px, .82fr); overflow: hidden; margin-bottom: clamp(2.25rem, 5vw, 4.5rem); border: 1px solid #eadde5; border-radius: 1.25rem; background: white; box-shadow: 0 1.25rem 3rem rgb(95 20 62 / 10%); }
.magazine-feature-image { min-height: 410px; background: #f3edf0; }
.magazine-feature-image picture,
.magazine-feature-image img { width: 100%; height: 100%; object-fit: cover; }
.magazine-feature > div { display: flex; flex-direction: column; justify-content: center; padding: clamp(1.5rem, 4vw, 3.25rem); }
.magazine-feature h2 a,
.magazine-card h2 a,
.magazine-related h3 a { color: inherit; text-decoration: none; }
.magazine-meta { display: flex; flex-wrap: wrap; gap: .35rem .85rem; margin-bottom: .85rem; color: #685964; font-size: .84rem; font-weight: 600; }
.magazine-meta > * + *::before { content: "·"; margin-right: .85rem; color: #b69daa; }
.magazine-read-link { display: inline-block; align-self: flex-start; min-height: 44px; margin-top: 1rem; color: var(--brand); font-weight: 700; }
.magazine-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.1rem, 2.5vw, 1.75rem); }
.magazine-card { overflow: hidden; border: 1px solid #eadde5; border-radius: 1rem; background: white; box-shadow: 0 .65rem 1.8rem rgb(63 53 64 / 7%); }
.magazine-card-image { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #f3edf0; }
.magazine-card-image picture,
.magazine-card-image img { width: 100%; height: 100%; object-fit: cover; }
.magazine-card > div { padding: 1.25rem; }
.magazine-card h2 { display: -webkit-box; min-height: 3.55em; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.magazine-card > div > p:not(.magazine-meta, .magazine-card-footer) { display: -webkit-box; overflow: hidden; line-height: 1.6; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.magazine-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1rem; font-size: .84rem; }
.magazine-card-footer a { min-height: 44px; font-weight: 700; }
.magazine-index-cta { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-top: clamp(2.5rem, 6vw, 5rem); padding: clamp(1.4rem, 4vw, 2.75rem); border-radius: 1.1rem; background: linear-gradient(120deg, #fff 15%, #f8eaf1 100%); }
.magazine-index-cta > div { max-width: 760px; }
.magazine-index-cta .button { flex: 0 0 auto; }
.magazine-article-header { max-width: 1120px; margin: 0 auto clamp(1.5rem, 4vw, 3rem); }
.magazine-category { margin-bottom: .65rem; color: var(--brand); font-size: .82rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.magazine-lead { max-width: 850px; margin: 1rem 0; font: 400 clamp(1.08rem, 2vw, 1.25rem)/1.7 var(--font-body); }
.magazine-article-header > picture { display: block; overflow: hidden; margin-top: clamp(1.4rem, 3vw, 2.5rem); border-radius: 1.15rem; aspect-ratio: 3 / 2; background: #f3edf0; }
.magazine-article-header > picture img { width: 100%; height: 100%; object-fit: cover; }
.magazine-reading-layout { display: grid; grid-template-columns: 220px minmax(0, 780px); justify-content: center; gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.magazine-toc { position: sticky; top: 7rem; padding: 1rem 0; border-top: 2px solid var(--brand); border-bottom: 1px solid #dcc9d1; font-size: .9rem; }
.magazine-toc ol,
.magazine-mobile-toc ol { padding-left: 1.25rem; }
.magazine-toc li + li,
.magazine-mobile-toc li + li { margin-top: .55rem; }
.magazine-mobile-toc { display: none; }
.magazine-body { min-width: 0; }
.magazine-body .content-block-element { width: 100%; margin: 0 0 clamp(1.5rem, 3vw, 2.5rem); }
.magazine-body .styled-text-block { padding: 0; background: transparent !important; text-align: left; }
.magazine-body .styled-text-block h2 { margin-bottom: .65rem; }
.magazine-body .rich-content { font-size: clamp(1.03rem, 1.4vw, 1.125rem); line-height: 1.72; }
.magazine-body .rich-content li + li { margin-top: .35rem; }
.magazine-body .content-image-block { overflow: hidden; border-radius: 1rem; }
.magazine-body .content-cta { padding: clamp(1.4rem, 4vw, 2.5rem); border: 1px solid #e8d3df; border-radius: 1rem; background: linear-gradient(135deg, #fff, #f8e7f0) !important; text-align: left; }
.magazine-related { margin-top: clamp(3rem, 7vw, 6rem); padding-top: 2rem; border-top: 1px solid #dcc9d1; }
.magazine-related-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; margin-top: 1.25rem; }
.magazine-related-grid > article { padding: 1.2rem; border-radius: .85rem; background: white; box-shadow: 0 .5rem 1.4rem rgb(63 53 64 / 7%); }
.magazine-back { margin-top: 2rem; }
.magazine-body .content-container {
  width: min(1120px, calc(100vw - 2rem));
  margin-left: 50%;
  transform: translateX(-50%);
}
.magazine-body .content-container-grid { align-items: start; }
.magazine-body .contained-image-block {
  overflow: hidden;
  margin-bottom: 1rem;
  border-radius: .85rem;
  background: #f3edf0;
  box-shadow: 0 .5rem 1.5rem rgb(63 53 64 / 8%);
}
.magazine-body .contained-image-block picture,
.magazine-body .contained-image-block img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
}
.magazine-feature a:focus-visible,
.magazine-card a:focus-visible,
.magazine-related a:focus-visible,
.magazine-toc a:focus-visible { outline: 3px solid #cf6fa1; outline-offset: 4px; }

@media (max-width: 920px) {
  .magazine-feature { grid-template-columns: 1fr; }
  .magazine-feature-image { min-height: 0; aspect-ratio: 3 / 2; }
  .magazine-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .magazine-reading-layout { display: block; max-width: 780px; margin-inline: auto; }
  .magazine-toc { display: none; }
  .magazine-mobile-toc { display: block; max-width: 780px; margin: 0 auto 2rem; padding: .9rem 1rem; border: 1px solid #dcc9d1; border-radius: .7rem; background: white; }
  .magazine-mobile-toc summary { min-height: 44px; color: var(--brand); font-weight: 700; cursor: pointer; }
}

@media (max-width: 620px) {
  .magazine-index,
  .magazine-article { width: min(100% - 1.25rem, 1180px); }
  .magazine-grid,
  .magazine-related-grid { grid-template-columns: 1fr; }
  .magazine-card h2 { min-height: 0; }
  .magazine-index-cta { align-items: flex-start; flex-direction: column; }
  .magazine-article-header > picture { aspect-ratio: 4 / 3; }
}

/* Anfahrtsseiten */
.route-index-page,
.route-city-page {
  width: min(1180px, calc(100% - 2rem));
  margin: clamp(1.5rem, 4vw, 3rem) auto clamp(4rem, 8vw, 7rem);
}
.route-index-page h1,
.route-index-page h2,
.route-city-page h1,
.route-city-page h2 {
  font-family: var(--font-editorial);
  font-weight: 500;
  line-height: 1.18;
}
.route-index-page h1,
.route-city-page h1 { font-size: clamp(2.35rem, 5vw, 4rem); }
.route-index-hero,
.route-city-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, .92fr);
  align-items: center;
  gap: clamp(2rem, 6vw, 5rem);
  margin-bottom: clamp(2.5rem, 6vw, 5rem);
}
.route-index-hero > div,
.route-city-hero > div { padding-block: 1rem; }
.route-index-hero > div > p:not(.magazine-script),
.route-city-lead { max-width: 42rem; font-size: clamp(1.05rem, 1.8vw, 1.22rem); line-height: 1.7; }
.route-index-hero .button { display: inline-block; margin-top: 1.15rem; }
.route-index-hero > picture,
.route-city-hero > picture {
  display: block;
  overflow: hidden;
  border-radius: 45% 45% 1.2rem 1.2rem;
  background: #f3edf0;
  box-shadow: 0 1.5rem 3.8rem rgb(95 20 62 / 16%);
}
.route-index-hero > picture img,
.route-city-hero > picture img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.route-intro { max-width: 760px; margin: 0 auto 2rem; text-align: center; }
.route-intro h2 { font-size: clamp(1.8rem, 3vw, 2.5rem); }
.route-card-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1rem, 2.5vw, 1.7rem);
}
.route-card {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid #eadde5;
  border-radius: 1rem;
  background: linear-gradient(145deg, #fff, #fff9fc);
  box-shadow: 0 .75rem 2rem rgb(63 53 64 / 7%);
}
.route-card-time {
  align-self: flex-start;
  margin: 0 0 .75rem;
  padding: .3rem .7rem;
  border-radius: 999px;
  color: var(--brand);
  background: #f7e5ee;
  font-size: .8rem;
  font-weight: 700;
}
.route-card h2 { margin-bottom: .65rem; font-size: clamp(1.45rem, 2.4vw, 1.85rem); }
.route-card h2 a { color: inherit; text-decoration: none; }
.route-card dl { margin: auto 0 1rem; padding-top: 1rem; }
.route-card dl div { display: grid; grid-template-columns: 5rem 1fr; gap: .75rem; padding-block: .35rem; border-top: 1px solid #efe4e9; }
.route-card dt { color: #6a5963; font-size: .82rem; font-weight: 700; }
.route-card dd { margin: 0; font-size: .9rem; }
.route-card-link { min-height: 44px; color: var(--brand); font-weight: 700; }
.route-index-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  margin-top: clamp(2.5rem, 6vw, 5rem);
  padding: clamp(1.5rem, 4vw, 3rem);
  border-radius: 1.1rem;
  background: linear-gradient(120deg, #fff 10%, #f6dce9 100%);
}
.route-index-cta > div { max-width: 760px; }
.route-index-cta .button { flex: 0 0 auto; }
.route-city-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem 1.4rem; margin-top: 1.4rem; }
.route-city-actions > a:not(.button) { color: var(--brand); font-weight: 700; }
.route-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin: 0 0 clamp(2.5rem, 6vw, 5rem);
}
.route-facts > div { padding: 1.15rem 1.3rem; border-radius: .8rem; background: #f8eaf1; }
.route-facts dt { margin-bottom: .25rem; color: #6a5963; font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.route-facts dd { margin: 0; color: var(--brand-dark); font-weight: 700; }
.route-content { max-width: 820px; margin-inline: auto; }
.route-content .styled-text-block { padding: clamp(1.2rem, 3vw, 2rem); text-align: left; }
.route-content .styled-text-block:nth-child(even) { background: #fff8fb !important; }
.route-content .content-cta { padding: clamp(1.5rem, 4vw, 2.5rem); border-radius: 1rem; background: linear-gradient(135deg, #fff, #f7e1ec) !important; }

@media (max-width: 850px) {
  .route-index-hero,
  .route-city-hero { grid-template-columns: 1fr; }
  .route-index-hero > picture,
  .route-city-hero > picture { width: min(100%, 620px); margin-inline: auto; border-radius: 1.1rem; }
  .route-index-hero > picture img,
  .route-city-hero > picture img { aspect-ratio: 3 / 2; }
  .route-index-cta { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 680px) {
  .route-index-page,
  .route-city-page { width: min(100% - 1.25rem, 1180px); }
  .route-card-grid,
  .route-facts { grid-template-columns: 1fr; }
  .route-card dl div { grid-template-columns: 4.5rem 1fr; }
  .magazine-body .content-container { width: calc(100vw - 1.25rem); }
}
