:root {
   --lavender-bg: #e8e0f4;
   --lavender-soft: #f3eefb;
   --lavender-deep: #ebe4f7;
   --purple-ink: #7a72b8;
   --purple-rich: #6b629f;
   --purple-glow: rgba(122, 114, 184, 0.35);
   --text-dark: #2f2a3d;
   --text-muted: #5c5670;
   --white: #ffffff;
   --shadow-soft: 0 24px 60px rgba(79, 62, 120, 0.18);
   --shadow-lift: 0 40px 90px rgba(79, 62, 120, 0.28);
   --frame-border: rgba(255, 255, 255, 0.85);
   --radius-lg: 1.25rem;
   --radius-xl: 2rem;
   --font-serif: "Cormorant Garamond", "Times New Roman", serif;
   --font-script: "Great Vibes", cursive;
   --font-sans: "Outfit", "Segoe UI", sans-serif;
   --page-gutter: clamp(1.125rem, 5vw, 1.75rem);

   /* Typografie — één schaal voor de hele site */
   --text-body: 1rem;
   --text-small: 0.875rem;
   --text-caption: 0.8125rem;
   --text-label: 0.75rem;
   --text-heading-sm: clamp(1.1rem, 2.4vw, 1.25rem);
   --text-heading-md: clamp(1.45rem, 3.2vw, 1.85rem);
   --text-heading-lg: clamp(1.6rem, 3.8vw, 2.1rem);
   --text-script: clamp(1.35rem, 3vw, 1.7rem);
   --text-hero-date: clamp(1.75rem, 5.5vw, 2.5rem);
   --text-hero-title: clamp(2.1rem, 7.5vw, 3.75rem);
   --text-hero-script: clamp(1.9rem, 6.5vw, 3.2rem);
}

*,
*::before,
*::after {
   box-sizing: border-box;
}

.visually-hidden {
   position: absolute;
   width: 1px;
   height: 1px;
   padding: 0;
   margin: -1px;
   overflow: hidden;
   clip: rect(0, 0, 0, 0);
   white-space: nowrap;
   border: 0;
}

html {
   scroll-behavior: smooth;
   -webkit-text-size-adjust: 100%;
}

body {
   margin: 0;
   min-height: 100vh;
   padding-top: calc(3.25rem + env(safe-area-inset-top, 0px));
   color: var(--text-dark);
   background:
      radial-gradient(circle at 15% 10%, rgba(255, 255, 255, 0.65), transparent 42%),
      radial-gradient(circle at 85% 20%, rgba(186, 174, 230, 0.45), transparent 38%),
      linear-gradient(165deg, var(--lavender-soft) 0%, var(--lavender-bg) 45%, var(--lavender-deep) 100%);
   font-family: var(--font-sans);
   font-size: var(--text-body);
   line-height: 1.6;
   overflow-x: hidden;
}

body:has(.rsvp-nudge) {
   padding-top: calc(5.35rem + env(safe-area-inset-top, 0px));
}

.rsvp-nudge {
   position: fixed;
   top: calc(3.25rem + env(safe-area-inset-top, 0px));
   left: 0;
   right: 0;
   z-index: 999;
   margin: 0;
   padding: 0.45rem 1rem;
   text-align: center;
   font-size: 0.82rem;
   color: var(--purple-ink);
   background: rgba(255, 248, 220, 0.94);
   border-bottom: 1px solid rgba(122, 114, 184, 0.18);
}

.rsvp-nudge a {
   font-weight: 600;
   color: var(--purple-rich);
}

.page-glow {
   position: fixed;
   inset: 0;
   pointer-events: none;
   background: radial-gradient(ellipse 70% 50% at 50% 0%, rgba(255, 255, 255, 0.35), transparent 70%);
   z-index: 0;
}

/* Anker-secties — ruimte voor sticky menu */
#top,
#fotos,
#terugblik,
#gasten,
#volgend-jaar,
#uitnodiging,
#praktisch,
#cadeau,
#eten,
#bevestigen {
   scroll-margin-top: calc(3.5rem + env(safe-area-inset-top, 0px));
}

body:has(.rsvp-nudge) #top,
body:has(.rsvp-nudge) #fotos,
body:has(.rsvp-nudge) #terugblik,
body:has(.rsvp-nudge) #gasten,
body:has(.rsvp-nudge) #volgend-jaar,
body:has(.rsvp-nudge) #uitnodiging,
body:has(.rsvp-nudge) #praktisch,
body:has(.rsvp-nudge) #cadeau,
body:has(.rsvp-nudge) #eten,
body:has(.rsvp-nudge) #bevestigen {
   scroll-margin-top: calc(5.6rem + env(safe-area-inset-top, 0px));
}

/* Sticky navigatie */
.site-nav {
   position: fixed;
   top: 0;
   left: 0;
   right: 0;
   z-index: 1000;
   display: flex;
   justify-content: center;
   gap: 0.25rem;
   padding: calc(0.65rem + env(safe-area-inset-top, 0px)) max(0.75rem, env(safe-area-inset-right, 0px)) 0.65rem max(0.75rem, env(safe-area-inset-left, 0px));
   background: rgba(243, 238, 251, 0.88);
   backdrop-filter: blur(10px);
   border-bottom: 1px solid rgba(122, 114, 184, 0.15);
}

.site-nav__link {
   padding: 0.5rem 1rem;
   font-size: 0.82rem;
   font-weight: 500;
   letter-spacing: 0.06em;
   text-transform: uppercase;
   text-decoration: none;
   color: var(--text-muted);
   border-radius: 999px;
   transition: color 0.2s ease, background 0.2s ease;
}

.site-nav__link:hover,
.site-nav__link:focus-visible,
.site-nav__link.is-active {
   color: var(--purple-rich);
   background: rgba(255, 255, 255, 0.65);
}

.site-nav__link--accent {
   color: var(--purple-ink);
   font-weight: 600;
}

.site-nav__link--accent.is-active {
   background: rgba(122, 114, 184, 0.15);
}

.confetti {
   position: fixed;
   top: 0;
   width: 220px;
   height: 100vh;
   pointer-events: none;
   opacity: 0.55;
   z-index: 0;
   background-repeat: repeat-y;
   background-size: 120px auto;
}

.confetti--left {
   left: 0;
   background-image:
      radial-gradient(circle, #f4a6c8 2px, transparent 2.5px),
      radial-gradient(circle, #ffd166 1.5px, transparent 2px),
      radial-gradient(circle, #9ed4ff 2px, transparent 2.5px);
   background-position: 20px 40px, 60px 120px, 30px 200px;
}

.confetti--right {
   right: 0;
   background-image:
      radial-gradient(circle, #c9b6ff 2px, transparent 2.5px),
      radial-gradient(circle, #ffb3c1 1.5px, transparent 2px),
      radial-gradient(circle, #ffe08a 2px, transparent 2.5px);
   background-position: 40px 80px, 10px 160px, 70px 240px;
}

.hero,
main,
.site-footer {
   position: relative;
   z-index: 1;
}

main {
   width: 100%;
   max-width: 100%;
   overflow-x: clip;
}

.hero {
   text-align: center;
   padding: 2.5rem 1.25rem 1.75rem;
   max-width: 920px;
   margin: 0 auto;
}

.hero-eyebrow {
   margin: 0 0 1rem;
   font-size: var(--text-caption);
   font-weight: 500;
   letter-spacing: 0.18em;
   text-transform: uppercase;
   color: var(--purple-ink);
}

.hero-title {
   display: flex;
   flex-wrap: wrap;
   align-items: baseline;
   justify-content: center;
   gap: 0.35rem 0.75rem;
   margin: 0 0 1.5rem;
   font-family: var(--font-serif);
   font-weight: 600;
   font-size: var(--text-hero-title);
   line-height: 0.95;
   letter-spacing: 0.04em;
   color: var(--purple-ink);
   text-transform: uppercase;
}

.hero-title__script {
   font-family: var(--font-script);
   font-size: var(--text-hero-script);
   font-weight: 400;
   text-transform: none;
   letter-spacing: 0.02em;
   color: var(--purple-rich);
   transform: translateY(0.15em);
}

.hero-tags {
   display: flex;
   flex-wrap: wrap;
   justify-content: center;
   gap: 0.75rem 2rem;
   margin: 0 0 1.5rem;
   padding: 0;
   list-style: none;
   font-size: var(--text-small);
   font-weight: 400;
   letter-spacing: 0.06em;
   text-transform: lowercase;
   color: var(--text-muted);
}

.hero-date {
   margin: 0;
   font-family: var(--font-serif);
   font-size: var(--text-hero-date);
   font-weight: 600;
   letter-spacing: 0.12em;
   color: var(--purple-ink);
}

.hero-date__dot {
   opacity: 0.55;
}

.hero--compact {
   padding: 1rem 1.25rem 0.5rem;
}

.hero--compact .hero-eyebrow {
   margin-bottom: 0.35rem;
}

.hero--compact .hero-date {
   margin-bottom: 0.65rem;
   font-size: clamp(2rem, 9vw, 3.25rem);
}

.hero--compact .hero-tags {
   margin-bottom: 0;
   gap: 0.35rem 1.25rem;
}

/* Showcase — foto's laten knallen */
.showcase {
   padding: 1.25rem 1rem 2.5rem;
}

.showcase__inner {
   display: grid;
   grid-template-columns: 1fr;
   gap: 2.5rem;
   align-items: center;
   max-width: 1180px;
   margin: 0 auto;
}

.section-label {
   margin: 0 0 0.6rem;
   font-size: var(--text-label);
   font-weight: 600;
   letter-spacing: 0.2em;
   text-transform: uppercase;
   color: var(--purple-ink);
}

.section-title {
   margin: 0 0 0.85rem;
   font-family: var(--font-serif);
   font-size: var(--text-heading-lg);
   font-weight: 600;
   line-height: 1.08;
   color: var(--purple-rich);
}

.section-title em {
   font-style: italic;
   color: var(--purple-ink);
}

.section-lead {
   margin: 0;
   max-width: 38ch;
   font-size: var(--text-body);
   line-height: 1.6;
   color: var(--text-muted);
   font-weight: 400;
}

.photo-frame {
   position: relative;
   margin: 0;
   padding: 0.85rem;
   background: linear-gradient(145deg, var(--white) 0%, rgba(255, 255, 255, 0.92) 100%);
   border: 1px solid var(--frame-border);
   border-radius: var(--radius-xl);
   box-shadow: var(--shadow-lift);
   transform: perspective(1200px) rotateY(-2deg) rotateX(1deg);
   transition: transform 0.45s ease, box-shadow 0.45s ease;
}

.showcase--secondary .photo-frame {
   transform: perspective(1200px) rotateY(2deg) rotateX(1deg);
}

.photo-frame:hover {
   transform: perspective(1200px) rotateY(0deg) rotateX(0deg) translateY(-6px);
   box-shadow: 0 50px 100px rgba(79, 62, 120, 0.32);
}

.photo-frame__shine {
   position: absolute;
   inset: 0;
   border-radius: inherit;
   background: linear-gradient(125deg, rgba(255, 255, 255, 0.55) 0%, transparent 42%, transparent 100%);
   pointer-events: none;
   z-index: 2;
}

.photo-frame picture {
   display: block;
   width: 100%;
   position: relative;
   z-index: 1;
}

.photo-frame img {
   display: block;
   width: 100%;
   height: auto;
   border-radius: calc(var(--radius-xl) - 0.5rem);
   object-fit: cover;
   position: relative;
   z-index: 1;
   filter: saturate(1.08) contrast(1.04);
}

.photo-frame__caption {
   margin: 0.85rem 0 0.15rem;
   text-align: center;
   font-size: 0.78rem;
   font-weight: 500;
   letter-spacing: 0.14em;
   text-transform: uppercase;
   color: var(--purple-ink);
}

.photo-frame--hero {
   max-width: 520px;
   margin-inline: auto;
}

.photo-frame--invite {
   max-width: 480px;
   margin-inline: auto;
}

.photo-frame--archive {
   max-width: min(100%, 780px);
   margin-inline: auto;
   padding: 0.65rem;
   transform: none;
   box-shadow: var(--shadow-soft);
}

.photo-frame--archive:hover {
   transform: translateY(-4px);
   box-shadow: 0 28px 60px rgba(79, 62, 120, 0.22);
}

.invite-zoom {
   display: block;
   width: 100%;
   padding: 0;
   border: none;
   background: none;
   cursor: zoom-in;
   font: inherit;
   position: relative;
}

.invite-zoom picture,
.invite-zoom img {
   display: block;
   width: 100%;
   height: auto;
}

.invite-zoom__badge {
   position: absolute;
   right: 0.75rem;
   bottom: 0.75rem;
   padding: 0.4rem 0.75rem;
   background: rgba(43, 38, 58, 0.82);
   color: var(--white);
   font-size: 0.78rem;
   font-weight: 600;
   letter-spacing: 0.04em;
   border-radius: 999px;
   pointer-events: none;
}

.photo-frame--archive img {
   filter: contrast(1.04) brightness(1.02);
   border-radius: calc(var(--radius-xl) - 0.5rem);
}

/* Lightbox — uitnodiging op volledige grootte */
.lightbox {
   width: min(96vw, 920px);
   max-height: 94vh;
   margin: auto;
   padding: 0;
   border: none;
   border-radius: var(--radius-lg);
   background: var(--white);
   box-shadow: 0 40px 100px rgba(0, 0, 0, 0.35);
   overflow: hidden;
}

.lightbox::backdrop {
   background: rgba(30, 24, 45, 0.82);
   backdrop-filter: blur(4px);
}

.lightbox__header {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 1rem;
   padding: 0.85rem 1rem;
   background: var(--lavender-soft);
   border-bottom: 1px solid rgba(122, 114, 184, 0.2);
}

.lightbox__title {
   margin: 0;
   font-family: var(--font-serif);
   font-size: 1.15rem;
   color: var(--purple-rich);
}

.lightbox__close {
   width: 2.25rem;
   height: 2.25rem;
   display: flex;
   align-items: center;
   justify-content: center;
   padding: 0;
   border: none;
   border-radius: 50%;
   background: rgba(122, 114, 184, 0.15);
   color: var(--purple-rich);
   font-size: 1.5rem;
   line-height: 1;
   cursor: pointer;
}

.lightbox__close:hover {
   background: rgba(122, 114, 184, 0.28);
}

.lightbox__body {
   max-height: calc(94vh - 3.5rem);
   overflow: auto;
   padding: 1rem;
   background: var(--lavender-soft);
}

.lightbox__img {
   display: block;
   width: 100%;
   height: auto;
   margin: 0 auto;
   border-radius: 0.5rem;
   box-shadow: var(--shadow-soft);
   filter: contrast(1.05) brightness(1.03);
}

/* RSVP-sectie */
.rsvp-section {
   padding: 2rem 1.25rem 3rem;
   text-align: center;
}

.rsvp-section__inner {
   max-width: 640px;
   margin: 0 auto;
   padding: 2rem 1.5rem;
   background: rgba(255, 255, 255, 0.72);
   backdrop-filter: blur(12px);
   border: 1px solid rgba(255, 255, 255, 0.9);
   border-radius: var(--radius-xl);
   box-shadow: var(--shadow-soft);
}

.rsvp-section .section-lead {
   margin-inline: auto;
}

/* Originele uitnodiging — secundair */
.original-invite {
   padding: 1rem 1.25rem 3.5rem;
}

.original-invite__inner {
   max-width: 820px;
   margin: 0 auto;
   text-align: center;
}

.original-invite__title {
   margin: 0 0 0.75rem;
   font-family: var(--font-serif);
   font-size: var(--text-heading-md);
   font-weight: 600;
   color: var(--purple-rich);
}

.original-invite__note {
   margin: 0 auto 1.25rem;
   max-width: 42ch;
   font-size: var(--text-small);
   color: var(--text-muted);
}

.original-invite__details {
   text-align: center;
}

.original-invite__summary {
   display: inline-flex;
   flex-direction: column;
   align-items: center;
   gap: 0.35rem;
   cursor: pointer;
   list-style: none;
   margin-bottom: 0.75rem;
}

.original-invite__summary::-webkit-details-marker {
   display: none;
}

.original-invite__summary .original-invite__title {
   margin: 0;
   font-size: var(--text-heading-sm);
}

.original-invite__details[open] .original-invite__summary {
   margin-bottom: 1rem;
}

/* Kaart-op-tafel — compact, vroeg in de flow */
.invite-table {
   padding: 0.35rem 1.25rem 2rem;
}

.invite-table--compact {
   padding-bottom: 1.5rem;
}

.invite-table__inner {
   max-width: 520px;
   margin: 0 auto;
}

.invite-table__head {
   text-align: center;
   margin-bottom: 1.1rem;
}

.invite-table__head .section-title {
   margin-bottom: 0.4rem;
   font-size: var(--text-heading-md);
}

.invite-table__lead {
   margin-inline: auto;
   max-width: 34ch;
   font-size: var(--text-small);
}

.invite-table__stage {
   display: grid;
   gap: 0.85rem;
   justify-items: center;
}

.photo-frame--invite-card {
   width: min(100%, 300px);
   margin: 0;
   padding: 0.65rem;
   transform: none;
}

.photo-frame--invite-card:hover {
   transform: translateY(-4px);
}

.photo-frame--invite-card-paper {
   width: min(100%, 300px);
}

.photo-frame--invite-card-screen {
   width: min(100%, 280px);
}

.invite-table__more {
   width: min(100%, 300px);
   text-align: center;
}

.invite-table__more-summary {
   cursor: pointer;
   list-style: none;
   font-size: var(--text-caption);
   font-weight: 600;
   letter-spacing: 0.08em;
   text-transform: uppercase;
   color: var(--purple-ink);
   padding: 0.35rem 0.5rem;
}

.invite-table__more-summary::-webkit-details-marker {
   display: none;
}

.invite-table__more[open] .invite-table__more-summary {
   margin-bottom: 0.75rem;
}

.invite-table__next {
   margin: 1.15rem 0 0;
   text-align: center;
   font-size: var(--text-small);
   color: var(--text-muted);
}

.invite-table__next a {
   color: var(--purple-rich);
   font-weight: 600;
   text-decoration: none;
   border-bottom: 1px solid rgba(107, 98, 159, 0.35);
}

.invite-table__next a:hover {
   border-bottom-color: var(--purple-rich);
}

.pick-group__req {
   display: inline-block;
   margin-left: 0.35rem;
   font-family: var(--font-sans);
   font-size: 0.68rem;
   font-weight: 600;
   letter-spacing: 0.06em;
   text-transform: uppercase;
   color: var(--purple-ink);
   opacity: 0.75;
}

/* Details card */
.details {
   padding: 0.75rem 1rem 2rem;
}

.details__card {
   max-width: 720px;
   margin: 0 auto;
   padding: 1.5rem 1.25rem;
   background: rgba(255, 255, 255, 0.72);
   backdrop-filter: blur(12px);
   border: 1px solid rgba(255, 255, 255, 0.9);
   border-radius: var(--radius-xl);
   box-shadow: var(--shadow-soft);
   text-align: center;
}

.details__title {
   margin: 0 0 0.25rem;
   font-family: var(--font-serif);
   font-size: var(--text-heading-md);
   font-weight: 600;
   color: var(--purple-rich);
}

.details__subtitle {
   margin: 0 0 1.5rem;
   font-family: var(--font-script);
   font-size: var(--text-script);
   color: var(--purple-ink);
}

.details__grid {
   display: grid;
   grid-template-columns: 1fr;
   gap: 0.75rem;
   margin-bottom: 1.15rem;
   text-align: left;
}

.detail-block {
   padding: 0.9rem 0.95rem;
   background: var(--lavender-soft);
   border-radius: var(--radius-lg);
   border-left: 4px solid var(--purple-ink);
}

.detail-block__icon {
   display: block;
   font-size: 1.25rem;
   margin-bottom: 0.35rem;
}

.detail-block h3 {
   margin: 0 0 0.4rem;
   font-family: var(--font-serif);
   font-size: var(--text-heading-sm);
   color: var(--purple-rich);
}

.detail-block p {
   margin: 0 0 0.3rem;
   color: var(--text-muted);
   font-size: var(--text-small);
   line-height: 1.55;
}

.detail-block p:last-child {
   margin-bottom: 0;
}

.detail-block__note {
   margin-top: 0.55rem;
   padding-top: 0.55rem;
   border-top: 1px solid rgba(122, 114, 184, 0.18);
   font-size: 0.82rem;
   color: var(--purple-rich);
}

.detail-block__note em {
   font-style: italic;
   font-weight: 600;
}

/* Cadeauwens — ervaringen i.p.v. spullen */
.wish {
   position: relative;
   padding: 0.25rem var(--page-gutter) 2.5rem;
   overflow: hidden;
}

.wish__glow {
   position: absolute;
   left: 50%;
   top: 10%;
   width: min(90vw, 520px);
   height: 320px;
   margin-left: calc(min(90vw, 520px) / -2);
   background: radial-gradient(ellipse at center, rgba(255, 255, 255, 0.55) 0%, transparent 70%);
   pointer-events: none;
   z-index: 0;
}

.wish__layout {
   position: relative;
   z-index: 1;
   max-width: 720px;
   margin: 0 auto;
   display: grid;
   gap: 1.5rem;
}

.wish__intro {
   text-align: center;
}

.wish__title {
   margin: 0.35rem 0 0.85rem;
   font-family: var(--font-serif);
   font-size: clamp(1.75rem, 5vw, 2.55rem);
   font-weight: 600;
   line-height: 1.15;
   color: var(--purple-rich);
}

.wish__title em {
   font-family: var(--font-script);
   font-style: normal;
   font-weight: 400;
   color: var(--purple-ink);
   font-size: 1.05em;
}

.wish__lead {
   margin: 0 auto;
   max-width: 34rem;
   font-size: var(--text-body);
   line-height: 1.65;
   color: var(--text-muted);
}

.wish__features {
   display: grid;
   grid-template-columns: 1fr;
   gap: 0.85rem;
}

.wish__feature {
   padding: 1.25rem 1.3rem 1.3rem;
   text-align: left;
   color: rgba(255, 255, 255, 0.92);
   border-radius: var(--radius-xl);
   box-shadow: 0 16px 40px rgba(79, 62, 120, 0.22);
   animation: wish-feature-in 0.7s ease both;
}

.wish__feature--experience {
   background:
      linear-gradient(135deg, rgba(255, 255, 255, 0.5) 0%, transparent 42%),
      linear-gradient(165deg, #6b629f 0%, #5a5288 55%, #7a72b8 100%);
}

.wish__feature--help {
   background:
      linear-gradient(135deg, rgba(255, 255, 255, 0.4) 0%, transparent 42%),
      linear-gradient(165deg, #4f4678 0%, #6b629f 50%, #8a81bd 100%);
   animation-delay: 0.08s;
}

@keyframes wish-feature-in {
   from {
      opacity: 0;
      transform: translateY(12px) scale(0.98);
   }
   to {
      opacity: 1;
      transform: translateY(0) scale(1);
   }
}

.wish__feature-kicker {
   margin: 0 0 0.35rem;
   font-size: 0.7rem;
   font-weight: 600;
   letter-spacing: 0.16em;
   text-transform: uppercase;
   opacity: 0.75;
}

.wish__feature-title {
   margin: 0 0 0.55rem;
   font-family: var(--font-serif);
   font-size: clamp(1.3rem, 3.2vw, 1.65rem);
   font-weight: 600;
   line-height: 1.2;
   color: #fff;
}

.wish__feature-text {
   margin: 0;
   font-size: 0.9rem;
   line-height: 1.55;
   opacity: 0.9;
}

.wish__inspire {
   text-align: center;
}

.wish__inspire-label {
   margin: 0 0 0.85rem;
   font-size: 0.82rem;
   font-weight: 500;
   color: var(--text-muted);
}

.wish__tags {
   display: flex;
   flex-wrap: wrap;
   justify-content: center;
   gap: 0.45rem;
   margin: 0 0 1.25rem;
   padding: 0;
   list-style: none;
}

.wish__tag {
   padding: 0.45rem 0.95rem;
   background: rgba(255, 255, 255, 0.55);
   border: 1.5px solid rgba(122, 114, 184, 0.28);
   border-radius: 999px;
   font-size: 0.84rem;
   font-weight: 500;
   color: var(--purple-rich);
}

.wish__tip {
   margin: 0 auto;
   max-width: 28rem;
   font-size: 0.84rem;
   line-height: 1.5;
   color: var(--text-muted);
}

.wish__tip a {
   color: var(--purple-ink);
   font-weight: 600;
   text-decoration: none;
   border-bottom: 1px solid rgba(122, 114, 184, 0.35);
}

.wish__tip a:hover {
   border-bottom-color: var(--purple-rich);
}

.wish__closing {
   margin: 0.5rem 0 0;
   text-align: center;
   font-family: var(--font-serif);
   font-size: 1.15rem;
   line-height: 1.45;
   color: var(--purple-rich);
}

.wish__closing strong {
   font-weight: 600;
}

.wish__next {
   margin: 0;
   text-align: center;
}

.wish__next-link {
   display: inline-block;
   margin-top: 0.25rem;
   font-size: 0.88rem;
   font-weight: 600;
   color: var(--purple-ink);
   text-decoration: none;
   border-bottom: 1px solid rgba(122, 114, 184, 0.35);
   transition: border-color 0.2s ease, color 0.2s ease;
}

.wish__next-link:hover {
   color: var(--purple-rich);
   border-bottom-color: var(--purple-rich);
}

@media (min-width: 720px) {
   .wish__layout {
      grid-template-columns: 1fr;
      grid-template-areas:
         "intro"
         "features"
         "inspire"
         "closing"
         "next";
      gap: 1.75rem;
      align-items: stretch;
   }

   .wish__intro {
      grid-area: intro;
      text-align: center;
   }

   .wish__lead {
      margin-left: auto;
      margin-right: auto;
   }

   .wish__features {
      grid-area: features;
      grid-template-columns: 1fr 1fr;
      gap: 1rem;
   }

   .wish__inspire {
      grid-area: inspire;
   }

   .wish__closing {
      grid-area: closing;
   }

   .wish__next {
      grid-area: next;
   }
}

@media (prefers-reduced-motion: reduce) {
   .wish__feature {
      animation: none;
   }
}

.details__closing a {
   color: var(--purple-ink);
   font-weight: 600;
   text-decoration: none;
   border-bottom: 1px solid rgba(122, 114, 184, 0.35);
}

.details__closing a:hover {
   border-bottom-color: var(--purple-rich);
}

/* Gastenoverzicht — voornamen + meebrengen */
.guest-roster {
   padding: 0.5rem 1rem 2rem;
}

.guest-roster__inner {
   max-width: 720px;
   margin: 0 auto;
   padding: 1.35rem 1.2rem;
   background: rgba(255, 255, 255, 0.72);
   backdrop-filter: blur(12px);
   border: 1px solid rgba(255, 255, 255, 0.9);
   border-radius: var(--radius-xl);
   box-shadow: var(--shadow-soft);
   text-align: center;
}

.guest-roster__head {
   margin-bottom: 0.85rem;
}

.guest-roster__title {
   margin: 0 0 0.5rem;
   font-family: var(--font-serif);
   font-size: var(--text-heading-md);
   font-weight: 600;
   line-height: 1.15;
   color: var(--purple-rich);
}

.guest-roster__title em {
   font-style: italic;
   color: var(--purple-ink);
}

.guest-roster__lead {
   margin: 0 auto;
   max-width: 40ch;
   font-size: var(--text-small);
   line-height: 1.5;
   color: var(--text-muted);
}

.guest-roster__stats {
   display: flex;
   flex-wrap: wrap;
   justify-content: center;
   gap: 0.4rem;
   margin: 0 0 0.85rem;
   padding: 0;
   list-style: none;
}

.guest-stat {
   display: inline-flex;
   align-items: center;
   gap: 0.3rem;
   padding: 0.3rem 0.7rem;
   background: var(--lavender-soft);
   border: 1px solid rgba(122, 114, 184, 0.2);
   border-radius: 999px;
   font-size: var(--text-caption);
   font-weight: 600;
   color: var(--purple-rich);
}

.guest-roster__table-wrap {
   overflow-x: auto;
   margin: 0 0 0.75rem;
   border-radius: var(--radius-lg);
   border: 1px solid rgba(122, 114, 184, 0.15);
   background: rgba(255, 255, 255, 0.55);
   -webkit-overflow-scrolling: touch;
}

.guest-table {
   width: 100%;
   min-width: 17rem;
   border-collapse: collapse;
   font-size: var(--text-small);
   text-align: left;
}

.guest-table thead {
   background: var(--lavender-soft);
}

.guest-table th {
   padding: 0.5rem 0.65rem;
   font-size: var(--text-label);
   font-weight: 600;
   letter-spacing: 0.08em;
   text-transform: uppercase;
   color: var(--purple-ink);
   border-bottom: 1px solid rgba(122, 114, 184, 0.18);
}

.guest-table th:last-child {
   width: 2.5rem;
   text-align: center;
}

.guest-table__sr {
   position: absolute;
   width: 1px;
   height: 1px;
   padding: 0;
   margin: -1px;
   overflow: hidden;
   clip: rect(0, 0, 0, 0);
   white-space: nowrap;
   border: 0;
}

.guest-table td {
   padding: 0.45rem 0.65rem;
   vertical-align: top;
   border-bottom: 1px solid rgba(122, 114, 184, 0.1);
   color: var(--text-dark);
   line-height: 1.4;
}

.guest-table tbody tr:last-child td {
   border-bottom: none;
}

.guest-table__name {
   font-weight: 600;
   color: var(--purple-rich);
   white-space: nowrap;
}

.guest-table__bring {
   display: flex;
   align-items: flex-start;
   gap: 0.35rem;
   color: var(--text-muted);
}

.guest-table__kind {
   flex-shrink: 0;
   line-height: 1.35;
}

.guest-table__empty {
   color: rgba(92, 86, 112, 0.45);
}

.guest-table__sleep-icon--day {
   color: #c9922a;
   font-size: 1.05rem;
}

.guest-table__sleep {
   text-align: center;
   font-size: 1rem;
   line-height: 1;
}

.guest-roster__legend {
   display: flex;
   flex-wrap: wrap;
   justify-content: center;
   gap: 0.35rem 0.85rem;
   margin: 0 0 0.65rem;
   font-size: var(--text-caption);
   color: var(--text-muted);
}

.guest-roster__legend-item {
   display: inline-flex;
   align-items: center;
   gap: 0.25rem;
}

.guest-roster__legend-item--muted {
   opacity: 0.75;
}

.guest-roster__privacy {
   margin: 0;
   font-size: var(--text-caption);
   color: var(--text-muted);
}

.guest-roster__privacy a {
   color: var(--purple-ink);
   font-weight: 600;
   text-decoration: none;
   border-bottom: 1px solid rgba(122, 114, 184, 0.3);
}

.guest-roster__privacy a:hover {
   border-bottom-color: var(--purple-rich);
}

/* Salades vol + snacks gezocht */
.table-status {
   max-width: 36rem;
   margin: 0 auto 1.35rem;
   display: grid;
   gap: 0.65rem;
}

.salad-full {
   display: flex;
   align-items: flex-start;
   gap: 0.75rem;
   padding: 0.85rem 1rem;
   text-align: left;
   background: rgba(255, 255, 255, 0.16);
   border: 1px solid rgba(255, 255, 255, 0.35);
   border-radius: var(--radius-lg);
}

.snacks-wanted {
   padding: 0.85rem 1rem;
   text-align: left;
   background: rgba(255, 255, 255, 0.1);
   border: 1px dashed rgba(255, 255, 255, 0.3);
   border-radius: var(--radius-lg);
}

.snacks-wanted__title {
   margin: 0 0 0.55rem;
   font-family: var(--font-serif);
   font-size: 1rem;
   font-weight: 600;
   color: var(--white);
}

.snacks-wanted__list {
   display: flex;
   flex-wrap: wrap;
   gap: 0.4rem;
   margin: 0;
   padding: 0;
   list-style: none;
}

.snacks-wanted__item {
   padding: 0.3rem 0.65rem;
   background: rgba(255, 255, 255, 0.14);
   border: 1px solid rgba(255, 255, 255, 0.28);
   border-radius: 999px;
   font-size: var(--text-caption);
   font-weight: 500;
   color: rgba(255, 255, 255, 0.92);
}

.salad-full__emoji {
   flex-shrink: 0;
   font-size: 1.5rem;
   line-height: 1;
}

.salad-full__copy {
   min-width: 0;
}

.salad-full__title {
   margin: 0 0 0.2rem;
   font-family: var(--font-serif);
   font-size: 1.05rem;
   font-weight: 600;
   color: var(--white);
}

.salad-full__text {
   margin: 0;
   font-size: var(--text-small);
   line-height: 1.45;
   color: rgba(255, 255, 255, 0.88);
}

.salad-full__text strong {
   font-weight: 600;
   color: var(--white);
}

/* Samen aan tafel — spotlight sectie */
.potluck-spotlight {
   position: relative;
   margin: 0 1rem 2rem;
   padding: 2rem 1.15rem;
   border-radius: calc(var(--radius-xl) + 0.25rem);
   background: linear-gradient(145deg, var(--purple-rich) 0%, #5a5288 55%, var(--purple-ink) 100%);
   box-shadow: 0 32px 80px rgba(79, 62, 120, 0.35);
   overflow: hidden;
}

.potluck-spotlight__glow {
   position: absolute;
   inset: 0;
   background:
      radial-gradient(circle at 20% 15%, rgba(255, 255, 255, 0.18), transparent 45%),
      radial-gradient(circle at 85% 80%, rgba(255, 255, 255, 0.1), transparent 40%);
   pointer-events: none;
}

.potluck-spotlight__inner {
   position: relative;
   z-index: 1;
   max-width: 980px;
   margin: 0 auto;
   text-align: center;
   color: var(--white);
}

.potluck-spotlight__badge {
   display: inline-block;
   margin: 0 0 1rem;
   padding: 0.4rem 1rem;
   background: rgba(255, 255, 255, 0.18);
   border: 1px solid rgba(255, 255, 255, 0.35);
   border-radius: 999px;
   font-size: 0.72rem;
   font-weight: 600;
   letter-spacing: 0.16em;
   text-transform: uppercase;
}

.potluck-spotlight__eyebrow {
   margin: 0 0 0.4rem;
   font-family: var(--font-script);
   font-size: var(--text-script);
   color: rgba(255, 255, 255, 0.95);
}

.potluck-spotlight__title {
   margin: 0 0 0.85rem;
   font-family: var(--font-serif);
   font-size: var(--text-heading-lg);
   font-weight: 600;
   line-height: 1.05;
}

.potluck-spotlight__title em {
   font-style: italic;
   color: rgba(255, 255, 255, 0.88);
}

.potluck-spotlight__intro {
   margin: 0 auto 1.15rem;
   max-width: 40ch;
   font-size: var(--text-small);
   font-weight: 400;
   line-height: 1.55;
   color: rgba(255, 255, 255, 0.9);
}

.potluck-spotlight__split {
   display: grid;
   grid-template-columns: 1fr;
   gap: 1.5rem;
   text-align: left;
}

.potluck-hosts {
   padding: 1.15rem 1.2rem;
   background: rgba(255, 255, 255, 0.12);
   border: 1px solid rgba(255, 255, 255, 0.22);
   border-radius: var(--radius-lg);
}

.potluck-hosts h3 {
   margin: 0 0 0.85rem;
   font-family: var(--font-serif);
   font-size: var(--text-heading-sm);
   color: var(--white);
}

.potluck-hosts__list {
   margin: 0 0 0.85rem;
   padding: 0;
   list-style: none;
}

.potluck-hosts__list li {
   display: flex;
   align-items: center;
   gap: 0.65rem;
   margin-bottom: 0.55rem;
   font-size: var(--text-small);
   color: rgba(255, 255, 255, 0.92);
}

.potluck-hosts__icon {
   font-size: 1.35rem;
}

.potluck-hosts__note {
   margin: 0;
   font-size: var(--text-small);
   font-style: italic;
   color: rgba(255, 255, 255, 0.75);
}

.potluck-table {
   width: 100%;
   border-collapse: collapse;
   margin-bottom: 0.85rem;
}

.potluck-table td {
   padding: 0.35rem 0;
   font-size: var(--text-small);
   color: rgba(255, 255, 255, 0.92);
   vertical-align: middle;
}

.potluck-table td:first-child {
   width: 2rem;
   font-size: 1.25rem;
}

.potluck-picker {
   padding: 1.35rem 1.2rem;
   background: var(--white);
   border-radius: var(--radius-xl);
   color: var(--text-dark);
   box-shadow: 0 20px 50px rgba(0, 0, 0, 0.15);
}

.potluck-steps {
   display: flex;
   flex-direction: column;
   gap: 0.5rem;
   margin: 0 0 1.5rem;
   padding: 0;
   list-style: none;
}

.potluck-steps__item {
   display: flex;
   align-items: center;
   gap: 0.65rem;
   font-size: 0.88rem;
   font-weight: 500;
   color: var(--text-muted);
}

.potluck-steps__item.is-active {
   color: var(--purple-rich);
   font-weight: 600;
}

.potluck-steps__item.is-done {
   color: var(--purple-ink);
}

.potluck-steps__num {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   width: 1.65rem;
   height: 1.65rem;
   border-radius: 50%;
   background: var(--lavender-soft);
   font-size: 0.78rem;
   font-weight: 700;
   flex-shrink: 0;
}

.potluck-steps__item.is-active .potluck-steps__num {
   background: var(--purple-ink);
   color: var(--white);
}

.potluck-steps__item.is-done .potluck-steps__num {
   background: rgba(122, 114, 184, 0.25);
   color: var(--purple-rich);
}

.potluck-step-block {
   margin-bottom: 1.75rem;
   padding-bottom: 1.75rem;
   border-bottom: 1px solid rgba(122, 114, 184, 0.15);
}

.potluck-step-block--send {
   margin-bottom: 0;
   padding-bottom: 0;
   border-bottom: none;
}

.potluck-step-block h3,
.potluck-picker h3 {
   margin: 0 0 0.35rem;
   font-family: var(--font-serif);
   font-size: var(--text-heading-sm);
   color: var(--purple-rich);
}

.potluck-picker__hint {
   margin: 0 0 1rem;
   font-size: var(--text-small);
   color: var(--text-muted);
}

.potluck-steps__item em {
   font-style: normal;
   font-weight: 400;
   color: var(--text-muted);
   font-size: 0.85em;
}

.potluck-details {
   margin-bottom: 1.75rem;
   border-bottom: 1px solid rgba(122, 114, 184, 0.15);
}

.potluck-details__summary {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 0.75rem;
   padding: 0.85rem 0;
   cursor: pointer;
   list-style: none;
}

.potluck-details__summary::-webkit-details-marker {
   display: none;
}

.potluck-details__title {
   font-family: var(--font-serif);
   font-size: var(--text-heading-sm);
   font-weight: 600;
   color: var(--purple-rich);
}

.potluck-details__badge {
   padding: 0.25rem 0.65rem;
   background: var(--lavender-soft);
   border-radius: 999px;
   font-size: 0.72rem;
   font-weight: 600;
   letter-spacing: 0.06em;
   text-transform: uppercase;
   color: var(--purple-ink);
}

.potluck-step-block--optional {
   margin-bottom: 0;
   padding-bottom: 1.25rem;
   border-bottom: none;
}

.potluck-picker__hint--optional {
   margin-top: 0;
   margin-bottom: 1rem;
   font-size: 0.9rem;
   font-style: italic;
}

.potluck-extra-label {
   margin: 0 0 0.65rem;
   font-size: 0.88rem;
   font-weight: 600;
   color: var(--purple-rich);
}

.potluck-extra-label em {
   font-weight: 400;
   font-style: normal;
   color: var(--text-muted);
}

.dish-grid--primary {
   margin-bottom: 0.65rem;
}

.dish-grid--salads {
   margin-top: 0.65rem;
   margin-bottom: 0;
}

.dish-more {
   margin: 0 0 1rem;
}

.dish-more__summary {
   cursor: pointer;
   list-style: none;
   font-size: var(--text-small);
   font-weight: 600;
   color: var(--text-muted);
   padding: 0.35rem 0;
}

.dish-more__summary::-webkit-details-marker {
   display: none;
}

.dish-more__summary::before {
   content: "+ ";
   color: var(--purple-ink);
   font-weight: 700;
}

.dish-more[open] .dish-more__summary::before {
   content: "\2212\00a0";
}

.dish-card--featured {
   border-color: rgba(122, 114, 184, 0.22);
   background: rgba(255, 255, 255, 0.95);
}

.dish-card--featured.is-selected {
   border-color: var(--purple-ink);
}

.dish-card--muted {
   opacity: 0.72;
}

.dish-card--muted:hover,
.dish-card--muted.is-selected {
   opacity: 1;
}

.potluck-agenda {
   margin: 0.75rem 0 0;
   text-align: center;
}

.potluck-agenda__link {
   font-size: var(--text-small);
   font-weight: 600;
   color: var(--purple-ink);
   text-decoration: none;
   border-bottom: 1px solid rgba(122, 114, 184, 0.3);
}

.potluck-agenda__link:hover {
   border-bottom-color: var(--purple-rich);
   color: var(--purple-rich);
}

.dish-grid {
   display: grid;
   grid-template-columns: 1fr;
   gap: 0.65rem;
   margin-bottom: 1.25rem;
}

.dish-card {
   position: relative;
   display: flex;
   flex-direction: column;
   align-items: center;
   gap: 0.15rem;
   padding: 0.85rem 0.65rem;
   background: var(--lavender-soft);
   border: 2px solid transparent;
   border-radius: var(--radius-lg);
   cursor: pointer;
   font-family: inherit;
   text-align: center;
   transition: transform 0.2s ease, border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.dish-card:hover {
   transform: translateY(-2px);
   border-color: rgba(122, 114, 184, 0.35);
}

.dish-card.is-selected {
   background: var(--white);
   border-color: var(--purple-ink);
   box-shadow: 0 8px 24px var(--purple-glow);
   transform: translateY(-3px);
}

.dish-card__check {
   position: absolute;
   top: 0.45rem;
   right: 0.45rem;
   width: 1.25rem;
   height: 1.25rem;
   display: flex;
   align-items: center;
   justify-content: center;
   border-radius: 50%;
   background: var(--purple-ink);
   color: var(--white);
   font-size: 0.7rem;
   font-weight: 700;
   opacity: 0;
   transform: scale(0.6);
   transition: opacity 0.2s ease, transform 0.2s ease;
}

.dish-card.is-selected .dish-card__check {
   opacity: 1;
   transform: scale(1);
}

.dish-card__emoji {
   font-size: 1.65rem;
   line-height: 1;
}

.dish-card__label {
   font-size: 0.92rem;
   font-weight: 600;
   color: var(--purple-rich);
}

.dish-card__example {
   font-size: 0.72rem;
   color: var(--text-muted);
   line-height: 1.3;
}

.pick-group {
   margin-bottom: 1rem;
}

.pick-group__label {
   display: block;
   margin-bottom: 0.45rem;
   font-size: 0.88rem;
   font-weight: 600;
   color: var(--purple-rich);
}

.pick-group__hint {
   margin: -0.15rem 0 0.55rem;
   font-size: 0.78rem;
   color: var(--text-muted);
   line-height: 1.4;
}

.overnight-note {
   margin-top: 0.85rem;
   padding: 0.95rem 1rem;
   background: linear-gradient(165deg, rgba(255, 255, 255, 0.9), var(--lavender-soft));
   border: 1px solid rgba(122, 114, 184, 0.22);
   border-radius: var(--radius-lg);
   animation: overnight-in 0.35s ease;
}

@keyframes overnight-in {
   from {
      opacity: 0;
      transform: translateY(6px);
   }
   to {
      opacity: 1;
      transform: translateY(0);
   }
}

.overnight-note__title {
   margin: 0 0 0.35rem;
   font-family: var(--font-serif);
   font-size: 1rem;
   font-weight: 600;
   color: var(--purple-rich);
}

.overnight-note__text {
   margin: 0 0 0.75rem;
   font-size: 0.84rem;
   color: var(--text-muted);
   line-height: 1.5;
}

.overnight-note__mail {
   display: inline-flex;
   align-items: center;
   gap: 0.35rem;
   padding: 0.45rem 0.9rem;
   background: var(--purple-ink);
   color: var(--white);
   border-radius: 999px;
   font-size: 0.82rem;
   font-weight: 600;
   text-decoration: none;
   transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.overnight-note__mail:hover {
   transform: translateY(-1px);
   box-shadow: 0 6px 16px var(--purple-glow);
   color: var(--white);
}

.pick-chips {
   display: flex;
   flex-wrap: wrap;
   gap: 0.45rem;
}

.pick-chips--extra {
   margin-bottom: 0.5rem;
}

.pick-chip {
   padding: 0.5rem 0.9rem;
   background: var(--lavender-soft);
   border: 2px solid transparent;
   border-radius: 999px;
   font-family: inherit;
   font-size: 0.85rem;
   font-weight: 500;
   color: var(--purple-rich);
   cursor: pointer;
   transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.pick-chip:hover {
   border-color: rgba(122, 114, 184, 0.35);
}

.pick-chip.is-selected {
   background: var(--white);
   border-color: var(--purple-ink);
   box-shadow: 0 4px 14px var(--purple-glow);
   font-weight: 600;
}

/* Iets anders — idee + host-check */
.other-bring {
   margin: 0 0 1.35rem;
   padding: 1.1rem 1rem 1.15rem;
   background: linear-gradient(165deg, rgba(255, 255, 255, 0.85), var(--lavender-soft));
   border: 1px solid rgba(122, 114, 184, 0.22);
   border-radius: var(--radius-lg);
}

.other-bring__title {
   margin: 0 0 0.2rem;
   font-family: var(--font-serif);
   font-size: var(--text-heading-sm);
   font-weight: 600;
   color: var(--purple-rich);
}

.other-bring__lead {
   margin: 0 0 0.9rem;
   font-size: var(--text-small);
   color: var(--text-muted);
   line-height: 1.45;
}

.other-bring .potluck-form__field {
   margin-bottom: 1rem;
}

.host-check__label {
   margin: 0 0 0.2rem;
   font-size: 0.9rem;
   font-weight: 600;
   color: var(--purple-rich);
}

.host-check__hint {
   margin: 0 0 0.75rem;
   font-size: 0.8rem;
   color: var(--text-muted);
}

.host-check__grid {
   display: grid;
   grid-template-columns: 1fr;
   gap: 0.55rem;
}

.host-check__card {
   display: flex;
   flex-direction: column;
   align-items: center;
   gap: 0.1rem;
   padding: 0.75rem 0.85rem;
   background: var(--white);
   border: 2px solid transparent;
   border-radius: var(--radius-md, 12px);
   cursor: pointer;
   font-family: inherit;
   text-align: center;
   transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.host-check__card:hover {
   border-color: rgba(122, 114, 184, 0.35);
   transform: translateY(-1px);
}

.host-check__card.is-selected {
   border-color: var(--purple-ink);
   box-shadow: 0 6px 18px var(--purple-glow);
}

.host-check__emoji {
   font-size: 1.15rem;
   line-height: 1;
   margin-bottom: 0.15rem;
}

.host-check__name {
   font-size: 0.88rem;
   font-weight: 600;
   color: var(--purple-rich);
}

.host-check__text {
   font-size: 0.75rem;
   color: var(--text-muted);
   line-height: 1.35;
}

/* Wie komt er mee? — company poll */
.company-poll {
   margin: 0 0 1.25rem;
}

.company-poll__label {
   margin: 0 0 0.25rem;
   font-family: var(--font-serif);
   font-size: var(--text-heading-sm);
   font-weight: 600;
   color: var(--purple-rich);
}

.company-poll__hint {
   margin: 0 0 0.85rem;
   font-size: var(--text-small);
   color: var(--text-muted);
}

.company-poll__grid {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 0.65rem;
}

.company-card {
   display: flex;
   flex-direction: column;
   align-items: flex-start;
   gap: 0.15rem;
   padding: 0.85rem 0.75rem;
   background: var(--lavender-soft);
   border: 2px solid transparent;
   border-radius: var(--radius-lg);
   text-align: left;
   cursor: pointer;
   font: inherit;
   color: inherit;
   transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.company-card:hover {
   border-color: rgba(122, 114, 184, 0.35);
   transform: translateY(-2px);
}

.company-card.is-selected {
   background: var(--white);
   border-color: var(--purple-ink);
   box-shadow: 0 8px 22px var(--purple-glow);
}

.company-card__emoji {
   font-size: 1.35rem;
   line-height: 1;
   margin-bottom: 0.2rem;
}

.company-card__title {
   font-size: 0.92rem;
   font-weight: 600;
   color: var(--purple-rich);
}

.company-card__text {
   font-size: 0.75rem;
   color: var(--text-muted);
   line-height: 1.35;
}

.company-poll--rsvp {
   margin: 0 0 1.5rem;
   padding: 1.15rem 1rem;
   background: rgba(243, 238, 251, 0.65);
   border: 1px solid rgba(122, 114, 184, 0.18);
   border-radius: var(--radius-lg);
}

.company-poll--rsvp .company-poll__label {
   text-align: center;
}

.company-poll--rsvp .company-poll__hint {
   text-align: center;
}

.pick-group--rsvp-count {
   margin: 1rem 0 0;
   text-align: center;
}

.pick-group--rsvp-count .pick-chips {
   justify-content: center;
}

.potluck-more {
   margin: 1.25rem 0 0;
   padding: 0.85rem 0 0;
   border-top: 1px solid rgba(122, 114, 184, 0.15);
}

.potluck-more__summary {
   cursor: pointer;
   list-style: none;
   font-size: 0.88rem;
   font-weight: 600;
   color: var(--purple-rich);
}

.potluck-more__summary::-webkit-details-marker {
   display: none;
}

.potluck-more__summary::before {
   content: "+ ";
   font-weight: 700;
   color: var(--purple-ink);
}

.potluck-more[open] .potluck-more__summary::before {
   content: "\2212\00a0";
}

.potluck-more .potluck-form {
   margin-top: 0.85rem;
}

.potluck-form--core {
   margin-bottom: 1rem;
}

/* Antwoordkaartje — naam + e-mail */
.reply-card {
   position: relative;
   margin: 0 0 1.25rem;
   padding: 1.15rem 1.1rem 1rem;
   background:
      linear-gradient(135deg, rgba(255, 255, 255, 0.92) 0%, rgba(243, 238, 251, 0.75) 100%);
   border: 1px dashed rgba(122, 114, 184, 0.35);
   border-radius: var(--radius-lg);
   overflow: hidden;
}

.reply-card__stamp {
   position: absolute;
   top: 0.65rem;
   right: 0.75rem;
   font-size: 1.65rem;
   line-height: 1;
   color: var(--purple-ink);
   opacity: 0.22;
   transform: rotate(12deg);
   pointer-events: none;
}

.reply-card__head {
   margin-bottom: 0.85rem;
   text-align: left;
}

.reply-card__kicker {
   margin: 0 0 0.25rem;
   font-size: var(--text-label);
   font-weight: 600;
   letter-spacing: 0.14em;
   text-transform: uppercase;
   color: var(--purple-ink);
}

.reply-card__lead {
   margin: 0;
   max-width: 36ch;
   font-size: var(--text-small);
   line-height: 1.45;
   color: var(--text-muted);
}

.reply-card__lead strong {
   font-weight: 600;
   color: var(--purple-rich);
}

.reply-card__fields {
   display: grid;
   grid-template-columns: 1fr;
   gap: 0.75rem;
}

.reply-card__label {
   display: block;
   margin-bottom: 0.3rem;
   font-size: var(--text-caption);
   font-weight: 600;
   letter-spacing: 0.04em;
   color: var(--purple-rich);
}

.reply-card__field input {
   width: 100%;
   padding: 0.7rem 0.85rem;
   font-family: inherit;
   font-size: 1rem;
   border: 1px solid rgba(122, 114, 184, 0.28);
   border-radius: 0.6rem;
   background: var(--white);
   color: var(--text-dark);
}

.reply-card__field input:focus {
   outline: none;
   border-color: var(--purple-ink);
   box-shadow: 0 0 0 3px rgba(122, 114, 184, 0.18);
}

.reply-card__field input:user-invalid:not(:placeholder-shown),
.reply-card__field input.is-invalid {
   border-color: rgba(180, 80, 100, 0.55);
}

.reply-card__mail-wrap {
   display: flex;
   align-items: stretch;
   border: 1px solid rgba(122, 114, 184, 0.28);
   border-radius: 0.6rem;
   background: var(--white);
   overflow: hidden;
   transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.reply-card__mail-wrap:focus-within {
   border-color: var(--purple-ink);
   box-shadow: 0 0 0 3px rgba(122, 114, 184, 0.18);
}

.reply-card__mail-at {
   display: flex;
   align-items: center;
   justify-content: center;
   flex: 0 0 2.25rem;
   font-family: var(--font-serif);
   font-size: 1.15rem;
   font-weight: 600;
   color: var(--purple-ink);
   background: var(--lavender-soft);
   border-right: 1px solid rgba(122, 114, 184, 0.18);
}

.reply-card__field--mail input {
   flex: 1;
   min-width: 0;
   border: none;
   border-radius: 0;
   box-shadow: none;
   background: transparent;
}

.reply-card__field--mail input:focus {
   box-shadow: none;
}

.reply-card__fine {
   margin: 0.75rem 0 0;
   font-size: var(--text-caption);
   line-height: 1.4;
   text-align: left;
   color: var(--text-muted);
}

@media (min-width: 560px) {
   .reply-card__fields {
      grid-template-columns: 1fr 1.15fr;
      align-items: end;
   }
}

.potluck-picker__warn {
   margin: 0 0 0.85rem;
   padding: 0.65rem 0.85rem;
   background: rgba(122, 114, 184, 0.12);
   border-radius: 0.5rem;
   font-size: 0.88rem;
   color: var(--purple-rich);
   text-align: center;
}

.cta-button.is-disabled {
   opacity: 0.45;
   pointer-events: none;
   cursor: not-allowed;
   box-shadow: none;
}

.cta-button.is-loading {
   opacity: 0.75;
   pointer-events: none;
}

/* Flash na redirect / formstatus */
.rsvp-flash {
   position: relative;
   z-index: 20;
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   justify-content: center;
   gap: 0.35rem 0.75rem;
   margin: 0;
   padding: 0.85rem 1.25rem;
   text-align: center;
   font-size: var(--text-small);
}

.rsvp-flash--ok {
   background: rgba(122, 114, 184, 0.18);
   color: var(--purple-rich);
   border-bottom: 1px solid rgba(122, 114, 184, 0.25);
}

.rsvp-flash--error {
   background: rgba(180, 80, 100, 0.12);
   color: #6b3040;
   border-bottom: 1px solid rgba(180, 80, 100, 0.2);
}

.rsvp-flash a {
   color: inherit;
   font-weight: 600;
}

.rsvp-honeypot {
   position: absolute !important;
   left: -9999px !important;
   width: 1px !important;
   height: 1px !important;
   opacity: 0 !important;
   pointer-events: none !important;
}

.rsvp-form__status {
   margin: 0 0 0.85rem;
   padding: 0.75rem 0.9rem;
   border-radius: 0.65rem;
   font-size: 0.9rem;
   text-align: center;
}

.rsvp-form__status--info {
   background: rgba(122, 114, 184, 0.1);
   color: var(--purple-rich);
}

.rsvp-form__status--ok {
   background: rgba(122, 114, 184, 0.16);
   color: var(--purple-rich);
   font-weight: 600;
}

.rsvp-form__status--error {
   background: rgba(180, 80, 100, 0.12);
   color: #6b3040;
}

.rsvp-form.is-sent .potluck-preview {
   border-color: rgba(122, 114, 184, 0.45);
}

/* Zegel / padlock mensencheck — elegant */
.padlock-check {
   margin: 0 0 1.25rem;
   padding: 1.25rem 1.15rem 1.15rem;
   background: linear-gradient(165deg, rgba(255, 255, 255, 0.95) 0%, rgba(243, 238, 251, 0.75) 100%);
   border: 1px solid rgba(122, 114, 184, 0.22);
   border-radius: var(--radius-lg);
   text-align: center;
   box-shadow: 0 10px 28px rgba(79, 62, 120, 0.06);
}

.padlock-check__eyebrow {
   margin: 0 0 0.35rem;
   font-size: var(--text-label);
   font-weight: 600;
   letter-spacing: 0.16em;
   text-transform: uppercase;
   color: var(--purple-ink);
}

.padlock-check__label {
   margin: 0 0 1rem;
   font-family: var(--font-serif);
   font-size: clamp(1.15rem, 2.8vw, 1.35rem);
   font-weight: 600;
   color: var(--purple-rich);
}

.padlock-check__btn {
   display: inline-flex;
   align-items: center;
   gap: 0.95rem;
   max-width: 22rem;
   width: 100%;
   margin: 0 auto;
   padding: 0.75rem 1rem;
   border: 1px solid rgba(122, 114, 184, 0.28);
   border-radius: 999px;
   background: rgba(255, 255, 255, 0.88);
   color: var(--purple-rich);
   font: inherit;
   text-align: left;
   cursor: pointer;
   transition: border-color 0.3s ease, box-shadow 0.3s ease, background 0.3s ease, transform 0.3s ease;
}

.padlock-check__btn:hover:not(:disabled),
.padlock-check__btn:focus-visible:not(:disabled) {
   border-color: var(--purple-ink);
   box-shadow: 0 10px 26px var(--purple-glow);
   transform: translateY(-1px);
}

.padlock-check__btn:disabled,
.padlock-check__btn.is-open {
   cursor: default;
   border-color: rgba(122, 114, 184, 0.4);
   background: linear-gradient(135deg, rgba(243, 238, 251, 0.95), #fff);
}

.padlock-check__btn.is-busy {
   opacity: 0.8;
   pointer-events: none;
}

.padlock-check__seal {
   position: relative;
   flex: 0 0 2.75rem;
   width: 2.75rem;
   height: 2.75rem;
}

.padlock-check__shackle {
   position: absolute;
   top: 0.05rem;
   left: 50%;
   width: 1rem;
   height: 0.85rem;
   margin-left: -0.5rem;
   border: 0.18rem solid var(--purple-ink);
   border-bottom: none;
   border-radius: 0.65rem 0.65rem 0 0;
   transform-origin: 15% 100%;
   transition: transform 0.55s cubic-bezier(0.34, 1.3, 0.64, 1);
}

.padlock-check[data-unlocked="true"] .padlock-check__shackle,
.padlock-check__btn.is-open .padlock-check__shackle {
   transform: rotate(-48deg) translate(-0.12rem, -0.05rem);
}

.padlock-check__body {
   position: absolute;
   left: 50%;
   bottom: 0;
   display: flex;
   align-items: center;
   justify-content: center;
   width: 2.35rem;
   height: 2.35rem;
   margin-left: -1.175rem;
   background: radial-gradient(circle at 35% 30%, #9a90c8 0%, var(--purple-ink) 48%, var(--purple-rich) 100%);
   border-radius: 50%;
   box-shadow:
      0 0 0 3px rgba(255, 255, 255, 0.55),
      0 8px 18px rgba(79, 62, 120, 0.28);
}

.padlock-check__initials {
   font-family: var(--font-script);
   font-size: 0.95rem;
   line-height: 1;
   color: rgba(255, 255, 255, 0.95);
   letter-spacing: 0.02em;
}

.padlock-check__copy {
   display: flex;
   flex-direction: column;
   gap: 0.15rem;
   min-width: 0;
}

.padlock-check__text {
   font-family: var(--font-serif);
   font-size: 1.05rem;
   font-weight: 600;
   letter-spacing: 0.01em;
   color: var(--purple-rich);
}

.padlock-check__hint {
   font-size: 0.78rem;
   color: var(--text-muted);
   font-weight: 400;
}

.padlock-check__hint:empty {
   display: none;
}

.padlock-check[data-unlocked="true"] {
   border-color: rgba(122, 114, 184, 0.35);
   background: linear-gradient(165deg, rgba(243, 238, 251, 0.9) 0%, rgba(255, 255, 255, 0.98) 100%);
}

.padlock-check[data-unlocked="true"] .padlock-check__body {
   background: radial-gradient(circle at 35% 30%, #b7aee0 0%, #8a81bd 55%, var(--purple-rich) 100%);
}

.potluck-form__field--wide {
   grid-column: 1 / -1;
}

.potluck-form {
   display: grid;
   grid-template-columns: 1fr;
   gap: 0.85rem;
   margin-bottom: 1.25rem;
}

.potluck-form__field span {
   display: block;
   margin-bottom: 0.35rem;
   font-size: 0.88rem;
   font-weight: 600;
   color: var(--purple-rich);
}

.potluck-form__field span em {
   font-weight: 400;
   font-style: normal;
   color: var(--text-muted);
}

.potluck-form__field input,
.potluck-form__field textarea {
   width: 100%;
   padding: 0.75rem 0.9rem;
   font-family: inherit;
   font-size: 1rem;
   border: 1px solid rgba(122, 114, 184, 0.3);
   border-radius: 0.65rem;
   background: var(--lavender-soft);
   color: var(--text-dark);
   resize: vertical;
}

.potluck-form__field input:focus,
.potluck-form__field textarea:focus {
   outline: none;
   border-color: var(--purple-ink);
   box-shadow: 0 0 0 3px rgba(122, 114, 184, 0.2);
   background: var(--white);
}

.potluck-preview {
   margin-bottom: 1.25rem;
   padding: 1rem 1.1rem;
   background: var(--lavender-soft);
   border-left: 4px solid var(--purple-ink);
   border-radius: 0.65rem;
}

.potluck-preview__label {
   display: block;
   margin-bottom: 0.35rem;
   font-size: 0.75rem;
   font-weight: 600;
   letter-spacing: 0.1em;
   text-transform: uppercase;
   color: var(--purple-ink);
}

.potluck-preview__text {
   margin: 0;
   font-size: 0.98rem;
   color: var(--text-dark);
   font-weight: 500;
}

.potluck-preview.is-ready {
   background: rgba(122, 114, 184, 0.12);
}

.potluck-picker__footer {
   margin: 1rem 0 0;
   font-size: 0.88rem;
   font-style: italic;
   text-align: center;
   color: var(--text-muted);
}

.cta-button--wide {
   display: block;
   width: 100%;
   text-align: center;
}

.rsvp-section__tip {
   margin: 0 0 1.25rem;
   font-size: 0.92rem;
   color: var(--text-muted);
}

.rsvp-section__tip a {
   color: var(--purple-ink);
   font-weight: 600;
}

/* Feestmail — creatief, UTF-8 via HTML-entiteiten */
.party-mail {
   display: flex;
   flex-direction: column;
   align-items: center;
   gap: 0.35rem;
   margin: 0 0 1.5rem;
   padding: 1.15rem 1.25rem;
   background: linear-gradient(145deg, rgba(255, 255, 255, 0.95) 0%, rgba(243, 238, 251, 0.9) 100%);
   border: 1px solid rgba(122, 114, 184, 0.22);
   border-radius: var(--radius-lg);
   box-shadow: 0 8px 24px rgba(79, 62, 120, 0.08);
}

.party-mail__icon {
   font-size: 1.35rem;
   line-height: 1;
   color: var(--purple-ink);
   opacity: 0.85;
}

.party-mail__label {
   font-size: var(--text-label);
   font-weight: 600;
   letter-spacing: 0.14em;
   text-transform: uppercase;
   color: var(--text-muted);
}

.party-mail__link {
   display: inline-flex;
   flex-wrap: wrap;
   align-items: baseline;
   justify-content: center;
   gap: 0;
   font-family: var(--font-serif);
   font-size: clamp(1.15rem, 3.5vw, 1.45rem);
   font-weight: 600;
   letter-spacing: 0.02em;
   text-decoration: none;
   color: var(--purple-rich);
   transition: color 0.2s ease;
}

.party-mail__link:hover,
.party-mail__link:focus-visible {
   color: var(--purple-ink);
}

.party-mail__local {
   color: var(--purple-ink);
}

.party-mail__at {
   margin: 0 0.05em;
   font-family: var(--font-sans);
   font-weight: 400;
   color: var(--text-muted);
}

.party-mail__domain {
   font-style: italic;
   color: var(--purple-rich);
}

.party-mail--compact {
   margin: 0.85rem 0 0;
   padding: 0.85rem 1rem;
   background: rgba(122, 114, 184, 0.08);
   border-color: rgba(122, 114, 184, 0.15);
   box-shadow: none;
}

.party-mail--compact .party-mail__link {
   font-size: 1.05rem;
}

.party-mail--footer {
   margin: 1rem 0 0;
   padding: 0;
   background: none;
   border: none;
   box-shadow: none;
}

.party-mail--footer .party-mail__link {
   font-size: 1rem;
   font-weight: 500;
   opacity: 0.9;
}

.party-mail--footer .party-mail__link:hover,
.party-mail--footer .party-mail__link:focus-visible {
   opacity: 1;
}

.details__closing {
   margin: 0;
   font-size: var(--text-body);
   color: var(--text-dark);
}

/* CTA */
.cta-group {
   display: flex;
   flex-wrap: wrap;
   gap: 0.85rem;
   margin-top: 1.75rem;
}

.cta-group--center {
   justify-content: center;
   margin-top: 2rem;
}

.showcase__inner--reverse .cta-group {
   justify-content: flex-end;
}

.cta-button {
   display: inline-block;
   padding: 0.95rem 1.75rem;
   background: linear-gradient(135deg, var(--purple-ink), var(--purple-rich));
   color: var(--white);
   font-family: var(--font-sans);
   font-size: 0.92rem;
   font-weight: 600;
   letter-spacing: 0.08em;
   text-transform: uppercase;
   text-decoration: none;
   border-radius: 999px;
   box-shadow: 0 12px 30px var(--purple-glow);
   transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
   border: 2px solid transparent;
   cursor: pointer;
   appearance: none;
   -webkit-appearance: none;
}

.cta-button--rsvp {
   background: linear-gradient(135deg, #8f7cc8, var(--purple-rich));
   box-shadow: 0 14px 34px rgba(107, 98, 159, 0.38);
}

.cta-button--secondary {
   background: rgba(255, 255, 255, 0.55);
   color: var(--purple-rich);
   border-color: rgba(122, 114, 184, 0.35);
   box-shadow: 0 8px 22px rgba(79, 62, 120, 0.12);
}

.cta-button:hover,
.cta-button:focus-visible {
   transform: translateY(-2px);
   box-shadow: 0 18px 40px rgba(107, 98, 159, 0.45);
   color: var(--white);
}

.cta-button--secondary:hover,
.cta-button--secondary:focus-visible {
   background: var(--white);
   color: var(--purple-rich);
   box-shadow: 0 14px 30px rgba(79, 62, 120, 0.18);
}

/* Footer */
.site-footer {
   text-align: center;
   padding: 2.5rem 1.5rem 3.5rem;
}

.site-footer__date {
   margin: 0 0 0.25rem;
   font-family: var(--font-serif);
   font-size: var(--text-heading-md);
   letter-spacing: 0.14em;
   color: var(--purple-ink);
}

.site-footer__names {
   margin: 0;
   font-family: var(--font-script);
   font-size: var(--text-script);
   color: var(--purple-rich);
}

.site-footer__byline {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   justify-content: center;
   gap: 0.35rem 0.55rem;
   margin: 1.35rem 0 0;
   padding-top: 1.1rem;
   border-top: 1px solid rgba(122, 114, 184, 0.22);
   font-size: var(--text-caption);
   letter-spacing: 0.04em;
   color: var(--text-muted);
}

.site-footer__byline strong {
   font-weight: 500;
   color: var(--purple-rich);
}

.site-footer__copy {
   font-family: var(--font-serif);
   font-size: 1.05em;
   line-height: 1;
   color: var(--purple-ink);
}

.site-footer__byline-mark {
   display: inline-grid;
   place-items: center;
   width: 1.55rem;
   height: 1.55rem;
   margin-right: 0.15rem;
   font-family: var(--font-serif);
   font-size: 0.62rem;
   font-weight: 600;
   letter-spacing: 0.06em;
   color: var(--white);
   background: linear-gradient(145deg, var(--purple-ink), var(--purple-rich));
   border-radius: 50%;
}

.site-footer__byline-sep {
   opacity: 0.55;
}

/* Scroll reveal */
.reveal {
   opacity: 0;
   transform: translateY(28px);
   transition: opacity 0.7s ease, transform 0.7s ease;
}

.reveal.is-visible {
   opacity: 1;
   transform: translateY(0);
}

/* Mobiel — spacing & leesbaarheid */
@media (max-width: 859px) {
   .hero {
      padding: 3rem var(--page-gutter) 2rem;
   }

   main {
      padding-inline: var(--page-gutter);
      padding-bottom: env(safe-area-inset-bottom, 0px);
   }

   .showcase {
      padding: 1.5rem 0 2.5rem;
   }

   .details {
      padding: 1rem 0 2rem;
   }

   .guest-roster {
      padding: 0.5rem 0 1.75rem;
   }

   .guest-roster__inner {
      padding: 1.15rem 1rem;
   }

   .details__card {
      padding: 1.5rem 1.15rem;
   }

   .details__subtitle {
      margin-bottom: 1.25rem;
   }

   .detail-block h3 {
      font-size: 1.05rem;
   }

   .detail-block p {
      font-size: var(--text-small);
   }

   .potluck-spotlight {
      margin: 0 0 2rem;
      padding: 2rem 1.15rem;
      border-radius: var(--radius-xl);
   }

   .potluck-picker {
      padding: 1.35rem 1rem;
   }

   .potluck-spotlight__intro {
      line-height: 1.6;
   }

   .potluck-steps__item {
      font-size: 0.82rem;
      line-height: 1.45;
   }

   .rsvp-section {
      padding: 1.5rem 0 2.5rem;
   }

   .rsvp-section__inner {
      padding: 1.75rem 1.25rem;
   }

   .original-invite {
      padding: 1rem 0 3rem;
   }

   .invite-table {
      padding: 0.15rem 0 1.5rem;
   }

   .photo-frame--invite-card,
   .photo-frame--invite-card-paper,
   .photo-frame--invite-card-screen {
      width: min(100%, 280px);
   }

   .site-nav__link {
      padding: 0.5rem 0.7rem;
      font-size: 0.74rem;
   }

   .site-footer {
      padding: 2rem var(--page-gutter) calc(2.5rem + env(safe-area-inset-bottom, 0px));
   }

   .photo-frame:not(.photo-frame--archive):not(.photo-frame--invite-card) {
      transform: none;
   }

   .photo-frame:not(.photo-frame--archive):not(.photo-frame--invite-card):hover {
      transform: translateY(-4px);
   }

   .confetti {
      display: none;
   }

   .site-nav {
      gap: 0.15rem;
   }

   .section-lead,
   .invite-table__lead,
   .potluck-spotlight__intro,
   .original-invite__note,
   .rsvp-section__tip {
      max-width: none;
   }

   .dish-grid,
   .dish-grid--main {
      grid-template-columns: 1fr;
   }

   .company-poll__grid {
      grid-template-columns: 1fr 1fr;
   }

   .pick-chips {
      justify-content: flex-start;
   }

   .lightbox {
      width: calc(100vw - 2 * var(--page-gutter));
      max-height: calc(100dvh - 2rem);
   }

   .lightbox__body {
      padding: 0.75rem;
   }
}

@media (min-width: 860px) {
   .photo-frame--invite-card-paper,
   .photo-frame--invite-card-paper.reveal.is-visible {
      width: min(100%, 320px);
      transform: rotate(-1.5deg);
      box-shadow: var(--shadow-lift);
   }

   .photo-frame--invite-card-paper:hover,
   .photo-frame--invite-card-paper.reveal.is-visible:hover {
      transform: rotate(-0.5deg) translateY(-0.25rem);
   }

   .showcase__inner,
   .showcase__inner--reverse {
      grid-template-columns: 1fr 1fr;
      gap: 3.5rem;
   }

   .showcase__inner--reverse .photo-frame {
      order: -1;
   }

   .showcase__inner--reverse .showcase__copy {
      text-align: right;
   }

   .showcase__inner--reverse .section-lead {
      margin-left: auto;
   }

   .showcase__inner--reverse .cta-group {
      justify-content: flex-end;
   }

   .details__grid {
      grid-template-columns: repeat(2, 1fr);
   }

   .dish-grid {
      grid-template-columns: repeat(2, 1fr);
   }

   .dish-grid--primary,
   .dish-grid--salads {
      grid-template-columns: repeat(3, 1fr);
   }

   .dish-grid--main {
      grid-template-columns: repeat(3, 1fr);
   }

   .host-check__grid {
      grid-template-columns: repeat(3, 1fr);
   }

   .potluck-steps {
      flex-direction: row;
      justify-content: space-between;
      gap: 0.75rem;
   }

   .potluck-steps__item {
      flex: 1;
      font-size: 0.82rem;
   }

   .potluck-spotlight__split {
      grid-template-columns: 0.85fr 1.15fr;
      align-items: start;
   }

   .potluck-form {
      grid-template-columns: 1fr 1fr;
   }

   .potluck-spotlight {
      margin-inline: 1.5rem;
   }

   .hero {
      padding-top: 4.25rem;
   }
}

@media (prefers-reduced-motion: reduce) {
   html {
      scroll-behavior: auto;
   }

   .photo-frame,
   .photo-frame:hover,
   .photo-frame--invite-card-paper,
   .photo-frame--invite-card-paper.reveal.is-visible,
   .photo-frame--invite-card-paper:hover,
   .photo-frame--invite-card-screen,
   .photo-frame--invite-card-screen.reveal.is-visible,
   .photo-frame--invite-card-screen:hover,
   .reveal,
   .cta-button,
   .cta-button:hover {
      transition: none;
      transform: none;
   }
}

/* ——— Bedank- / fotopagina ——— */

.hero--thanks {
   padding: 1.75rem 1.25rem 1.25rem;
   max-width: 40rem;
}

.hero-thanks-title {
   margin: 0 0 0.75rem;
   font-family: var(--font-serif);
   font-size: clamp(2.35rem, 8vw, 3.6rem);
   font-weight: 600;
   line-height: 1.05;
   letter-spacing: 0.02em;
   color: var(--purple-rich);
}

.hero-thanks-title em {
   font-family: var(--font-script);
   font-style: normal;
   font-weight: 400;
   color: var(--purple-ink);
}

.hero--thanks .hero-date {
   margin-bottom: 1rem;
   font-size: clamp(1.5rem, 5vw, 2rem);
}

.hero-thanks-lead {
   margin: 0 auto 1.5rem;
   max-width: 34ch;
   font-size: var(--text-body);
   line-height: 1.55;
   color: var(--text-muted);
}

.hero-thanks-cta {
   margin: 0;
}

.photo-ask {
   padding: 1.5rem 1rem 2.75rem;
}

.photo-ask__inner {
   max-width: 40rem;
   margin: 0 auto;
   padding: 1.75rem 1.5rem 2rem;
   text-align: center;
   background: rgba(255, 255, 255, 0.55);
   border: 1px solid rgba(122, 114, 184, 0.16);
   border-radius: var(--radius-xl);
   box-shadow: var(--shadow-soft);
}

.photo-ask__lead {
   margin-left: auto;
   margin-right: auto;
   max-width: 36ch;
}

.photo-ask__actions {
   display: grid;
   gap: 0.85rem;
   margin: 1.75rem 0 1.25rem;
}

.photo-channel {
   display: grid;
   grid-template-columns: auto 1fr;
   grid-template-rows: auto auto;
   column-gap: 0.85rem;
   row-gap: 0.1rem;
   align-items: center;
   padding: 1rem 1.15rem;
   text-align: left;
   text-decoration: none;
   color: var(--text-dark);
   background: rgba(255, 255, 255, 0.88);
   border: 1px solid rgba(122, 114, 184, 0.18);
   border-radius: var(--radius-lg);
   transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.photo-channel:hover,
.photo-channel:focus-visible {
   transform: translateY(-2px);
   border-color: rgba(122, 114, 184, 0.4);
   box-shadow: 0 14px 32px rgba(79, 62, 120, 0.16);
}

.photo-channel__icon {
   grid-row: 1 / span 2;
   font-size: 1.55rem;
   line-height: 1;
}

.photo-channel__label {
   font-weight: 600;
   font-size: 1rem;
   color: var(--purple-rich);
}

.photo-channel__meta {
   font-size: var(--text-caption);
   color: var(--text-muted);
   word-break: break-word;
}

.photo-channel--wa {
   border-color: rgba(37, 211, 102, 0.28);
}

.photo-channel--wa:hover,
.photo-channel--wa:focus-visible {
   border-color: rgba(37, 211, 102, 0.55);
}

.photo-channel--whisper {
   cursor: default;
}

.photo-channel--whisper:hover,
.photo-channel--whisper:focus-visible {
   transform: none;
   box-shadow: none;
   border-color: rgba(37, 211, 102, 0.28);
}

.photo-ask__hint {
   margin: 0;
   padding: 0.75rem 1rem;
   font-size: var(--text-caption);
   color: var(--text-muted);
   background: rgba(255, 248, 220, 0.7);
   border-radius: 0.75rem;
}

.photo-ask__note {
   margin: 0;
   font-size: var(--text-caption);
   color: var(--text-muted);
}

.details--compact {
   margin-top: 2rem;
   padding: 0;
}

.details--compact .details__card {
   padding: 1.35rem 1.25rem 1.5rem;
   box-shadow: none;
   background: rgba(255, 255, 255, 0.4);
}

.details__grid--compact {
   grid-template-columns: repeat(2, minmax(0, 1fr));
   gap: 1rem;
}

.details--compact .detail-block {
   text-align: center;
}

.next-year {
   padding: 1.25rem 1rem 3.25rem;
}

.next-year__inner {
   display: flex;
   flex-direction: column;
   align-items: center;
   max-width: 36rem;
   margin: 0 auto;
   padding: 1.25rem 0.75rem 1.5rem;
   text-align: center;
}

.next-year__head {
   margin-bottom: 1.35rem;
   max-width: 28rem;
}

.next-year__title {
   margin: 0 0 0.85rem;
   font-family: var(--font-serif);
   font-size: var(--text-heading-lg);
   font-weight: 600;
   line-height: 1.15;
   color: var(--purple-rich);
}

.next-year__title em {
   font-family: var(--font-script);
   font-style: normal;
   font-weight: 400;
   color: var(--purple-ink);
}

.next-year__lead {
   margin: 0 auto;
   max-width: 34ch;
   font-size: var(--text-body);
   line-height: 1.6;
   color: var(--text-muted);
}

.photo-frame--invite-card.photo-frame--next-year {
   width: min(100%, 30rem);
   margin: 0 auto 1.75rem;
   transform: none;
}

.photo-frame--invite-card.photo-frame--next-year:hover {
   transform: translateY(-4px);
}

.photo-frame--next-year img {
   width: 100%;
   height: auto;
   display: block;
}

.next-year__sign {
   margin: 0;
   font-size: var(--text-body);
   line-height: 1.55;
   color: var(--text-dark);
}

.next-year__sign strong {
   font-family: var(--font-script);
   font-size: var(--text-script);
   font-weight: 400;
   color: var(--purple-rich);
}

@media (max-width: 859px) {
   .hero--thanks {
      padding-top: 2.25rem;
   }

   .details__grid--compact {
      grid-template-columns: 1fr;
   }

   .photo-ask__inner {
      padding: 1.5rem 1.15rem 1.75rem;
   }

   .photo-frame--invite-card.photo-frame--next-year {
      width: min(100%, 26rem);
   }
}

@media (min-width: 860px) {
   .photo-ask__actions {
      grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
   }

   .photo-frame--invite-card.photo-frame--next-year {
      width: min(100%, 32rem);
   }
}
