:root {
  --hh24-w-primary: #8fcac7;
  --hh24-w-accent: #f39d8c;
  --hh24-w-bg: #ffffff;
  --hh24-w-text: #333333;
  --hh24-w-accent-text: var(--hh24-w-text);
  --hh24-w-primary-text: var(--hh24-w-text);
  --hh24-w-heading: "Playfair Display", Georgia, serif;
  --hh24-w-body: "Jost", Arial, sans-serif;
  --hh24-w-radius: 0 44px 0 44px;
  --hh24-w-section-space: 100px;
}



.hh24-wedding-page,
.hh24-rsvp-page {
  margin: 0;
  background: var(--hh24-w-bg);
  color: var(--hh24-w-text);
  font: 350 16px/1.65 var(--hh24-w-body);
  -webkit-font-smoothing: antialiased;
}
.hh24-wedding-page *,
.hh24-rsvp-page * { box-sizing: border-box; }
.hh24-w-skip-link {
  position: fixed;
  z-index: 5000;
  top: 10px;
  left: 10px;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.hh24-w-skip-link:focus {
  width: auto;
  height: auto;
  padding: 12px 16px;
  border: 2px solid var(--hh24-w-primary);
  border-radius: 8px;
  background: #fff;
  color: #111;
  clip-path: none;
  font: 650 16px/1.2 var(--hh24-w-body);
}
.hh24-wedding-page img { max-width: 100%; height: auto; }
.hh24-wedding-page p,
.hh24-wedding-page li,
.hh24-rsvp-page p,
.hh24-rsvp-page label,
.hh24-rsvp-page input,
.hh24-rsvp-page textarea,
.hh24-rsvp-page button { font-size: 16px; }
.hh24-wedding-page[data-spacing="compact"] { --hh24-w-section-space: 72px; }
.hh24-wedding-page[data-spacing="airy"] { --hh24-w-section-space: 128px; }
.hh24-wedding-page[data-corners="none"] { --hh24-w-radius: 0; }
.hh24-wedding-page[data-corners="soft"] { --hh24-w-radius: 0 24px 0 24px; }
.hh24-wedding-page[data-corners="round"] { --hh24-w-radius: 0 52px 0 52px; }

.hh24-preview-bar {
  position: sticky;
  z-index: 1000;
  top: 0;
  padding: 9px 20px;
  background: #111;
  color: #fff;
  text-align: center;
  font-size: 13px;
  font-weight: 550;
}
.hh24-preview-bar i { margin-right: 6px; color: var(--hh24-w-accent); }
.hh24-w-wrap { width: min(calc(100% - 40px), 1040px); margin-inline: auto; }

.hh24-w-navigation {
  position: sticky;
  z-index: 50;
  top: 0;
  display: flex;
  min-height: 78px;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  padding: 10px max(24px,calc((100vw - 1180px)/2));
  border-top: 12px solid var(--hh24-w-primary);
  border-bottom: 1px solid color-mix(in srgb,var(--hh24-w-primary) 28%,transparent);
  background: color-mix(in srgb,var(--hh24-w-bg) 94%,transparent);
  backdrop-filter: blur(15px);
}
.hh24-w-navigation.is-minimal { position: relative; border-top-width: 7px; background: var(--hh24-w-bg); }
.hh24-w-monogram { color: var(--hh24-w-text); font: 700 22px/1 var(--hh24-w-heading); text-decoration: none; }
.hh24-w-monogram.has-custom-logo { display:flex; width:110px; min-height:48px; align-items:center; }
.hh24-w-monogram.has-custom-logo svg,.hh24-w-monogram.has-custom-logo img { display:block; width:100%; max-height:64px; object-fit:contain; }
.hh24-w-navigation div { display: flex; align-items: center; gap: 25px; }
.hh24-w-navigation div a { position: relative; max-width: 155px; overflow: hidden; color: var(--hh24-w-text); font-size: 13px; font-weight: 450; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
.hh24-w-navigation div a::after { position: absolute; right: 0; bottom: -7px; left: 0; height: 2px; background: var(--hh24-w-accent); content: ""; transform: scaleX(0); transition: transform .18s; }
.hh24-w-navigation div a:hover::after { transform: scaleX(1); }

.hh24-w-hero {
  position: relative;
  display: grid;
  min-height: 76vh;
  place-items: center;
  overflow: hidden;
  padding: 120px 0;
  background:
    radial-gradient(circle at 12% 25%,color-mix(in srgb,var(--hh24-w-primary) 24%,transparent),transparent 32%),
    radial-gradient(circle at 88% 78%,color-mix(in srgb,var(--hh24-w-accent) 17%,transparent),transparent 26%),
    var(--hh24-w-bg);
  text-align: center;
}
.hh24-w-hero::before,
.hh24-w-hero::after { position: absolute; width: 330px; height: 330px; border: 1px solid color-mix(in srgb,var(--hh24-w-primary) 42%,transparent); border-radius: 50%; content: ""; }
.hh24-w-hero::before { top: -170px; left: -100px; }
.hh24-w-hero::after { right: -170px; bottom: -170px; border-color: color-mix(in srgb,var(--hh24-w-accent) 42%,transparent); }
.hh24-w-hero .hh24-w-wrap { position: relative; z-index: 1; max-width: 930px; }
.hh24-w-eyebrow { margin: 0 0 16px; color: var(--hh24-w-accent-text); font-size: 15px; font-weight: 600; letter-spacing: .03em; }
.hh24-w-hero h1 { margin: 0; color: var(--hh24-w-text); font: 700 clamp(58px,9vw,105px)/.98 var(--hh24-w-heading); letter-spacing: -.05em; }
.hh24-w-lead { margin: 24px auto 0; color: color-mix(in srgb,var(--hh24-w-text) 78%,transparent); font-size: 20px; font-weight: 320; }
.hh24-w-ornament { display: block; margin-top: 28px; color: var(--hh24-w-accent); font-size: 28px; }
.hh24-w-hero.variant-romantic .hh24-w-wrap { max-width: 760px; padding: 75px 45px; border: 1px solid color-mix(in srgb,var(--hh24-w-primary) 55%,transparent); border-radius: 220px 220px 0 0; background: color-mix(in srgb,var(--hh24-w-bg) 86%,#fff); box-shadow: 0 24px 70px color-mix(in srgb,var(--hh24-w-primary) 18%,transparent); }
.hh24-w-hero.variant-split { justify-items: start; text-align: left; }
.hh24-w-hero.variant-split .hh24-w-wrap { margin-left: max(24px,calc((100vw - 1040px)/2)); }
.hh24-w-hero.variant-split::after { top: 7%; right: -8%; bottom: auto; width: 52%; height: 86%; border: 0; border-radius: 100px 0 0 100px; background: color-mix(in srgb,var(--hh24-w-primary) 28%,transparent); }
.hh24-wedding-page[data-preset="editorial"] .hh24-w-hero { min-height:82vh; place-items:end start; padding:150px max(24px,calc((100vw - 1180px)/2)); background:linear-gradient(118deg,var(--hh24-w-bg) 0 60%,color-mix(in srgb,var(--hh24-w-accent) 27%,#fff) 60%); text-align:left; }
.hh24-wedding-page[data-preset="editorial"] .hh24-w-hero::before { top:12%; right:max(24px,calc((100vw - 1120px)/2)); left:auto; width:min(31vw,430px); height:68%; border-radius:48% 48% 12px 12px; background:linear-gradient(145deg,color-mix(in srgb,var(--hh24-w-accent) 46%,#fff),#fff); box-shadow:0 28px 80px rgba(54,38,29,.13); }
.hh24-wedding-page[data-preset="editorial"] .hh24-w-hero::after { display:none; }
.hh24-wedding-page[data-preset="editorial"] .hh24-w-hero .hh24-w-wrap { width:min(55%,680px); margin:0; }
.hh24-wedding-page[data-preset="editorial"] .hh24-w-hero h1 { font-size:clamp(70px,9vw,126px); }
.hh24-wedding-page[data-preset="botanical"] .hh24-w-hero::before { inset:28px; width:auto; height:auto; border-radius:320px 320px 24px 24px; }
.hh24-wedding-page[data-preset="botanical"] .hh24-w-navigation { border-top-color:var(--hh24-w-accent); }
.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-navigation { border-top:0; border-bottom-color:rgba(255,255,255,.18); background:#151515; }
.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-navigation a { color:#fff; }
.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-hero { min-height:84vh; background:#151515; }
.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-hero h1,.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-hero .hh24-w-eyebrow,.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-hero .hh24-w-lead { color:#fff; }
.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-hero::before { top:auto; right:7%; bottom:8%; left:7%; width:auto; height:1px; border:0; border-radius:0; background:rgba(255,255,255,.25); }
.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-hero::after { display:none; }
.hh24-wedding-page[data-preset="mediterranean"] .hh24-w-hero { min-height:82vh; background:linear-gradient(130deg,#fff7e9 0 57%,color-mix(in srgb,var(--hh24-w-primary) 88%,#fff) 57%); }
.hh24-wedding-page[data-preset="mediterranean"] .hh24-w-hero::after { top:10%; right:6%; bottom:auto; width:34%; height:75%; border:7px solid rgba(255,255,255,.62); border-radius:260px 260px 20px 20px; background:radial-gradient(circle at 50% 72%,var(--hh24-w-accent) 0 13%,transparent 14%),linear-gradient(160deg,#ffd8b4,#fff3db 70%); }
.hh24-w-hero.has-media,
.hh24-w-section.has-media { position: relative; overflow: hidden; }
.hh24-w-media { display: block; width: 100%; max-width: 100%; object-fit: cover; object-position: center; }
.media-pos-top > .hh24-w-media { object-position: center top; }
.media-pos-bottom > .hh24-w-media { object-position: center bottom; }
.media-pos-left > .hh24-w-media { object-position: left center; }
.media-pos-right > .hh24-w-media { object-position: right center; }
.media-background > .hh24-w-media,
.media-background > .hh24-w-media-overlay { position: absolute; inset: 0; width: 100%; height: 100%; }
.media-background > .hh24-w-media { z-index: 0; }
.media-background > .hh24-w-media-overlay { z-index: 1; background: rgba(0,0,0,var(--hh24-media-overlay,.35)); pointer-events: none; }
.media-background > .hh24-w-wrap { position: relative; z-index: 2; }
.hh24-w-hero.media-background::before,
.hh24-w-hero.media-background::after { display: none; }
.hh24-w-hero.media-background h1,
.hh24-w-hero.media-background .hh24-w-eyebrow,
.hh24-w-hero.media-background .hh24-w-lead,
.hh24-w-section.media-background h2,
.hh24-w-section.media-background h3,
.hh24-w-section.media-background .hh24-w-copy { color: #fff; text-shadow: 0 2px 24px rgba(0,0,0,.3); }
.hh24-w-hero.media-background .hh24-w-button,
.hh24-w-section.media-background .hh24-w-button { background: #fff; color: #111; box-shadow: 0 12px 30px rgba(0,0,0,.18); }
.hh24-w-hero.variant-romantic.media-background .hh24-w-wrap,
.hh24-w-section.variant-card.media-background > .hh24-w-wrap,
.hh24-w-section.variant-editorial.media-background > .hh24-w-wrap { border-color: rgba(255,255,255,.45); background: rgba(0,0,0,.24); backdrop-filter: blur(4px); }
.hh24-w-hero.media-side { grid-template-columns: minmax(0,720px) minmax(340px,620px); justify-content: center; gap: clamp(35px,5vw,80px); padding-inline: clamp(24px,5vw,80px); text-align: left; }
.hh24-w-hero.media-side .hh24-w-wrap { width: 100%; margin: 0; }
.hh24-w-hero.media-side > .hh24-w-media { height: min(680px,72vh); }
.hh24-w-section.media-side { display: grid; grid-template-columns: minmax(0,720px) minmax(300px,560px); align-items: center; justify-content: center; gap: clamp(35px,5vw,75px); padding-inline: clamp(24px,5vw,80px); }
.hh24-w-section.media-side > .hh24-w-wrap { width: 100%; margin: 0; }
.hh24-w-section.media-side > .hh24-w-media { min-height: 420px; height: 100%; max-height: 680px; }
.hh24-w-hero.media-top,
.hh24-w-section.media-top { display: grid; gap: clamp(30px,5vw,60px); }
.hh24-w-hero.media-top > .hh24-w-media,
.hh24-w-section.media-top > .hh24-w-media { order: -1; width: min(1180px,calc(100% - 48px)); height: clamp(320px,48vw,620px); margin-inline: auto; }
.media-shape-soft:not(.media-background) > .hh24-w-media { border-radius: var(--hh24-w-radius); }
.media-shape-round:not(.media-background) > .hh24-w-media { border-radius: 64px; }
.media-shape-arch:not(.media-background) > .hh24-w-media { border-radius: 300px 300px 24px 24px; }

.hh24-w-button,
.hh24-rsvp-form button {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  margin-top: 20px;
  padding: 12px 24px;
  border: 0;
  border-radius: 0;
  background: var(--hh24-w-text);
  color: var(--hh24-w-on-text,#fff);
  font-family: var(--hh24-w-body);
  font-size: 14px;
  font-weight: 550;
  text-decoration: none;
  box-shadow: 0 12px 28px color-mix(in srgb,var(--hh24-w-text) 24%,transparent);
  transition: transform .18s,filter .18s;
}
.hh24-w-button:hover,
.hh24-rsvp-form button:hover { color: var(--hh24-w-on-text,#fff); filter: saturate(1.08) brightness(.95); transform: translateY(-2px); }
.hh24-wedding-page[data-buttons="soft"] .hh24-w-button { border-radius: 10px; }
.hh24-wedding-page[data-buttons="pill"] .hh24-w-button,
.hh24-rsvp-form button { border-radius: 999px; }

.hh24-w-section { padding: var(--hh24-w-section-space) 0; background: var(--hh24-w-bg); }
.hh24-w-section.bg-paper { background: color-mix(in srgb,var(--hh24-w-bg) 82%,#fff); }
.hh24-w-section.bg-accent { background: color-mix(in srgb,var(--hh24-w-primary) 18%,var(--hh24-w-bg)); }
.hh24-w-section.bg-dark { background: var(--hh24-w-text); color: var(--hh24-w-on-text,#fff); }
.hh24-w-section.align-center { text-align: center; }
.hh24-w-section.align-left .hh24-w-wrap { margin-left: max(20px,calc((100vw - 1040px)/2)); }
.hh24-wedding-page .hh24-w-section.media-side.align-left > .hh24-w-wrap {
	min-width: 0;
	margin: 0;
}
.hh24-wedding-page .hh24-w-section.media-side > .hh24-w-wrap :is(h2,.hh24-w-copy,.hh24-w-detail) {
	max-width: 100%;
}
.hh24-w-section h2 { max-width: 840px; margin: 0 auto 30px; color: var(--hh24-w-text); font: 700 clamp(43px,6vw,70px)/1.05 var(--hh24-w-heading); letter-spacing: -.04em; }
.hh24-w-section-eyebrow { margin:0 0 15px; color:var(--hh24-w-primary-text); font-size:13px!important; font-weight:650; letter-spacing:.2em; text-transform:uppercase; }
.hh24-w-section.align-left h2 { margin-left: 0; }
.hh24-w-section.bg-dark h2 { color: var(--hh24-w-on-text,#fff); }
.hh24-w-copy { max-width: 720px; margin: auto; color: color-mix(in srgb,var(--hh24-w-text) 80%,transparent); }
.hh24-w-copy p { margin: 0 0 1em; }
.hh24-w-section.align-left .hh24-w-copy { margin-left: 0; }
.hh24-w-section.variant-card > .hh24-w-wrap,
.hh24-w-section.variant-editorial > .hh24-w-wrap { padding: clamp(30px,6vw,72px); border-radius: var(--hh24-w-radius); background: color-mix(in srgb,var(--hh24-w-bg) 74%,#fff); box-shadow: 0 24px 70px color-mix(in srgb,var(--hh24-w-primary) 14%,transparent); }
.hh24-w-section.variant-editorial > .hh24-w-wrap { border-left: 5px solid var(--hh24-w-accent); }

.hh24-w-schedule { display: grid; max-width: 760px; margin: 42px auto 0; text-align: left; }
.hh24-w-schedule article { display: grid; grid-template-columns: 105px 1fr; gap: 25px; padding: 24px 0; border-bottom: 1px solid color-mix(in srgb,var(--hh24-w-primary) 36%,transparent); }
.hh24-w-schedule time { color: color-mix(in srgb,var(--hh24-w-primary) 75%,#376d6b); font-weight: 650; }
.hh24-w-schedule h3 { margin: 0; color: inherit; font: 700 24px/1.2 var(--hh24-w-heading); }
.hh24-w-schedule p { margin: 5px 0 0; }
.hh24-w-section.variant-cards .hh24-w-schedule { grid-template-columns: repeat(2,1fr); gap: 15px; }
.hh24-w-section.variant-cards .hh24-w-schedule article { display: block; padding: 28px; border: 0; border-radius: var(--hh24-w-radius); background: color-mix(in srgb,var(--hh24-w-bg) 70%,#fff); box-shadow: 0 15px 40px color-mix(in srgb,var(--hh24-w-primary) 12%,transparent); }
.hh24-w-section.variant-minimal .hh24-w-schedule article { grid-template-columns: 80px 1fr; }

.hh24-w-location { max-width: 660px; margin: 38px auto 0; padding: clamp(34px,6vw,65px); border-radius: var(--hh24-w-radius); background: #fff; box-shadow: 0 24px 70px color-mix(in srgb,var(--hh24-w-primary) 16%,transparent); text-align: center; }
.hh24-w-location > i { color: var(--hh24-w-accent); font-size: 30px; }
.hh24-w-location h3 { margin: 17px 0 8px; color: var(--hh24-w-text); font: 700 30px/1.15 var(--hh24-w-heading); }
.hh24-w-location p { margin: 0; white-space: pre-line; }
.hh24-w-section.variant-minimal .hh24-w-location { padding: 20px; box-shadow: none; background: transparent; }
.hh24-w-section.variant-framed .hh24-w-location { border: 2px solid var(--hh24-w-primary); }

.hh24-w-gallery { position:relative; display: grid; grid-template-columns: 1.15fr .85fr .85fr; gap: 12px; margin-top: 45px; }
.hh24-w-gallery img { width: 100%; height: 280px; object-fit: cover; border-radius: var(--hh24-w-radius); box-shadow: 0 12px 35px color-mix(in srgb,var(--hh24-w-primary) 12%,transparent); }
.hh24-w-gallery img:first-child { grid-row: span 2; height: 572px; }
.hh24-w-section.variant-grid .hh24-w-gallery { grid-template-columns: repeat(3,1fr); }
.hh24-w-section.variant-grid .hh24-w-gallery img { grid-row: auto; height: 310px; }
.hh24-w-section.variant-filmstrip .hh24-w-gallery { grid-template-columns: repeat(3,1fr); transform: rotate(-1deg); }
.hh24-w-section.variant-filmstrip .hh24-w-gallery img { grid-row: auto; height: 320px; padding: 8px; border: 8px solid #fff; border-radius: 0; }

.hh24-w-faq { max-width: 760px; margin: 40px auto 0; text-align: left; }
.hh24-w-faq details { margin: 10px 0; padding: 20px 22px; border: 1px solid color-mix(in srgb,var(--hh24-w-primary) 40%,transparent); border-radius: 0 20px 0 20px; background: #fff; }
.hh24-w-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 15px; color: var(--hh24-w-text); font-weight: 550; cursor: pointer; list-style: none; }
.hh24-w-faq summary::after { color: var(--hh24-w-accent); content: "+"; font: 700 24px/1 var(--hh24-w-heading); }
.hh24-w-faq details[open] summary::after { content: "–"; }
.hh24-w-faq details div { padding-top: 12px; }
.hh24-w-faq details div p { margin: 0; }
.hh24-w-section.variant-cards .hh24-w-faq { display: grid; grid-template-columns: repeat(2,1fr); gap: 12px; }

.hh24-w-countdown { display: flex; justify-content: center; gap: clamp(24px,6vw,75px); margin-top: 42px; }
.hh24-w-countdown span { display: grid; min-width: 90px; gap: 8px; }
.hh24-w-countdown strong { color: var(--hh24-w-text); font: 700 clamp(42px,6vw,68px)/1 var(--hh24-w-heading); }
.hh24-w-countdown small { color: color-mix(in srgb,var(--hh24-w-text) 66%,transparent); font-size: 13px; font-weight: 450; }
.hh24-w-contact { display: flex; justify-content: center; flex-wrap: wrap; gap: 15px; margin-top: 30px; }
.hh24-w-contact a { padding: 12px 20px; border: 1px solid var(--hh24-w-primary); border-radius: 999px; color: color-mix(in srgb,var(--hh24-w-primary) 70%,#376d6b); text-decoration: none; }
.hh24-w-detail { display:flex; align-items:center; justify-content:center; gap:11px; margin:34px auto 0; color:var(--hh24-w-primary-text); }
.hh24-w-detail > span { display:grid; width:42px; height:42px; place-items:center; border:1px solid color-mix(in srgb,var(--hh24-w-primary) 38%,transparent); border-radius:50%; }
.hh24-w-detail small { font-size:12px; font-weight:650; letter-spacing:.13em; text-transform:uppercase; }
.hh24-private-note { max-width: 680px; margin: 30px auto 0; padding: 18px 22px; border-radius: 999px; background: color-mix(in srgb,var(--hh24-w-primary) 18%,var(--hh24-w-bg)); text-align: center; }
.hh24-private-note i { margin-right: 8px; color: var(--hh24-w-accent); }
.hh24-w-divider { padding: 32px 20px; background: var(--hh24-w-bg); color: var(--hh24-w-accent); font: 700 36px/1 var(--hh24-w-heading); text-align: center; }
.hh24-w-divider.variant-line { color: var(--hh24-w-primary); font-size: 18px; }

.hh24-wedding-footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 30px max(24px,calc((100vw - 1180px)/2)); border-top: 1px solid color-mix(in srgb,var(--hh24-w-primary) 35%,transparent); background: #fff; color: #777; font-size: 13px; }
.hh24-wedding-footer a { color: var(--hh24-w-text); font: 700 17px/1 var(--hh24-w-heading); text-decoration: none; }

.hh24-rsvp-page { display: grid; min-height: 100vh; place-items: center; padding: 28px; background: radial-gradient(circle at 12% 15%,rgba(143,202,199,.3),transparent 35%),radial-gradient(circle at 88% 85%,rgba(243,157,140,.22),transparent 30%),#fff; }
.hh24-rsvp-shell { width: min(100%,680px); }
.hh24-rsvp-card { padding: clamp(28px,7vw,65px); border: 8px solid #fff; border-radius: 0 65px 0 65px; background: #fff; box-shadow: 0 28px 85px rgba(70,123,121,.15); }
.hh24-rsvp-card h1 { margin: 5px 0 25px; color: #090909; font: 700 clamp(48px,9vw,78px)/1 var(--hh24-w-heading); letter-spacing: -.04em; }
.hh24-rsvp-form { display: grid; gap: 20px; }
.hh24-rsvp-form[hidden] { display: none !important; }
.hh24-rsvp-form label { display: grid; gap: 7px; color: #555; font-weight: 450; }
.hh24-rsvp-form fieldset { display: grid; gap: 12px; padding: 20px; border: 1px solid rgba(143,202,199,.55); border-radius: 0 22px 0 22px; }
.hh24-rsvp-form fieldset label { display: flex; align-items: center; gap: 9px; }
.hh24-rsvp-form input[type="number"],
.hh24-rsvp-form input[type="text"],
.hh24-rsvp-form input[type="email"],
.hh24-rsvp-form input[type="url"],
.hh24-rsvp-form textarea,
.hh24-rsvp-form select { width: 100%; min-height: 50px; padding: 12px 15px; border: 1px solid rgba(143,202,199,.58); border-radius: 14px; background: #fff; color: #222; font: 400 16px/1.5 var(--hh24-w-body); }
.hh24-rsvp-form textarea { resize: vertical; }
.hh24-rsvp-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.hh24-rsvp-custom-questions { display:grid; gap:16px; }
.hh24-rsvp-form .hh24-rsvp-consent { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 10px; align-items: start; padding: 16px; border-radius: 14px; background: #fff7f3; color: #4a4542; font-size: 13px; line-height: 1.5; }
.hh24-rsvp-consent input { width: 18px; height: 18px; margin-top: 2px; }
.hh24-rsvp-form input:focus,
.hh24-rsvp-form textarea:focus,
.hh24-rsvp-form select:focus { outline: 3px solid rgba(143,202,199,.24); border-color: var(--hh24-w-primary); }
.hh24-rsvp-status { color: #4b9693; font-weight: 550; }
.hh24-rsvp-status.is-error { color:#9b2c2c; }
.hh24-rsvp-status.is-success { padding:16px 18px; border-radius:14px; background:#edf7f0; color:#28593a; }
.hh24-rsvp-loading.is-error { color:#9b2c2c; }
.hh24-rsvp-attending[hidden] { display:none!important; }
.hh24-rsvp-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:0 0 30px; padding:0; list-style:none; }
.hh24-rsvp-steps li { display:flex; align-items:center; gap:8px; color:color-mix(in srgb,var(--hh24-w-text,#222) 62%,transparent); font-size:12px; font-weight:650; line-height:1.3; text-align:left; }
.hh24-rsvp-steps span { display:grid; flex:0 0 28px; width:28px; height:28px; place-items:center; border:1px solid color-mix(in srgb,var(--hh24-w-primary,#111) 35%,transparent); border-radius:50%; color:var(--hh24-w-text,#111); font-size:12px; }
.hh24-rsvp-greeting { margin:0; color:var(--hh24-w-text,#222); font:600 clamp(22px,3vw,30px)/1.35 var(--hh24-w-heading,Georgia,serif); }
.hh24-rsvp-attending { display:grid; gap:20px; }
.hh24-rsvp-events { display:grid; gap:14px; padding:18px; border:1px solid color-mix(in srgb, var(--hh24-w-primary) 26%, transparent); border-radius:20px; background:color-mix(in srgb, var(--hh24-w-paper) 92%, #fff); }
.hh24-rsvp-events[hidden] { display:none!important; }
.hh24-rsvp-event-list { display:grid; gap:12px; }
.hh24-rsvp-event { display:grid; gap:10px; padding:16px; border:1px solid rgba(34,34,34,.12); border-radius:16px; background:#fff; }
.hh24-rsvp-event h4,.hh24-rsvp-event p { margin:0; }
.hh24-rsvp-event h4 { font:600 21px/1.25 var(--hh24-w-heading); color:#222; }
.hh24-rsvp-event p { color:#6a625e; font-size:14px; }
.hh24-rsvp-event-numbers[hidden] { display:none!important; }
.hh24-rsvp-group-title { margin:10px 0 -4px; padding-top:22px; border-top:1px solid color-mix(in srgb,var(--hh24-w-primary,#111) 18%,transparent); color:var(--hh24-w-text,#111); font:650 22px/1.25 var(--hh24-w-heading,Georgia,serif); }
.hh24-rsvp-capacity { margin:-8px 0 0; color:color-mix(in srgb,var(--hh24-w-text,#222) 65%,transparent); font-size:13px; }
.hh24-rsvp-capacity.is-error { color:#9b2c2c; font-weight:600; }
.hh24-rsvp-privacy { display:flex; align-items:flex-start; gap:9px; margin:0; color:color-mix(in srgb,var(--hh24-w-text,#222) 65%,transparent); font-size:13px; }
.hh24-rsvp-privacy i { margin-top:3px; color:var(--hh24-w-accent,#d8a7a7); }
.hh24-rsvp-form button:disabled { cursor:wait; opacity:.65; transform:none; }
.hh24-rsvp-choice { grid-template-columns:repeat(2,minmax(0,1fr)); }
.hh24-rsvp-choice legend { padding:0 8px; color:var(--hh24-w-text,#111); font:650 20px/1.2 var(--hh24-w-heading,Georgia,serif); }
.hh24-rsvp-choice label { min-height:88px; padding:16px; border:1px solid transparent; border-radius:16px; background:color-mix(in srgb,var(--hh24-w-bg,#fff9f4) 72%,#fff); cursor:pointer; }
.hh24-rsvp-choice label:has(input:checked) { border-color:var(--hh24-w-primary,#111); box-shadow:0 9px 24px color-mix(in srgb,var(--hh24-w-primary,#111) 12%,transparent); }
.hh24-rsvp-choice label span { display:grid; gap:4px; }
.hh24-rsvp-choice label strong { color:var(--hh24-w-text,#111); font-size:15px; }
.hh24-rsvp-choice label small { color:var(--hh24-w-text,#222); font-size:12px; font-weight:400; }
.hh24-wedding-page .hh24-rsvp-shell { width:min(100%,920px); margin:40px auto 0; text-align:left; }
.hh24-wedding-page .hh24-rsvp-card { padding:clamp(26px,5vw,58px); border:1px solid color-mix(in srgb,var(--hh24-w-primary) 20%,transparent); border-radius:var(--hh24-w-radius); box-shadow:0 25px 75px color-mix(in srgb,var(--hh24-w-primary) 13%,transparent); }
.hh24-wedding-page .hh24-rsvp-form { gap:24px; }
.hh24-wedding-page .hh24-rsvp-form button { width:100%; }
.hh24-password-form { display:grid; gap:16px; margin-top:26px; }
.hh24-password-form label { display:grid; gap:8px; color:#333; font-weight:600; }
.hh24-password-form input { width:100%; min-height:52px; padding:12px 15px; border:1px solid #cfc8c2; border-radius:14px; background:#fff; color:#111; }
.hh24-password-form input:focus { outline:3px solid rgba(247,143,130,.28); border-color:#111; }
.hh24-password-form button { min-height:52px; padding:13px 22px; border:0; border-radius:999px; background:#000; color:#fff; font-weight:700; cursor:pointer; }
.hh24-password-hint { padding:14px 16px; border-radius:14px; background:#fff3ef; }

@media (max-width: 800px) {
  .hh24-w-navigation { min-height: 68px; border-top-width: 8px; }
  .hh24-w-navigation div { display: none; }
  .hh24-w-hero { min-height: 68vh; padding: 90px 0; }
  .hh24-w-hero.variant-romantic .hh24-w-wrap { padding: 60px 25px; }
  .hh24-w-hero.variant-split { text-align: center; }
  .hh24-w-hero.variant-split .hh24-w-wrap { margin-inline: auto; }
  .hh24-w-hero.variant-split::after { opacity: .3; }
  .hh24-wedding-page[data-preset="editorial"] .hh24-w-hero { min-height:720px; place-items:center; padding:105px 24px; background:linear-gradient(180deg,var(--hh24-w-bg) 0 70%,color-mix(in srgb,var(--hh24-w-accent) 27%,#fff) 70%); text-align:center; }
  .hh24-wedding-page[data-preset="editorial"] .hh24-w-hero::before { display:none; }
  .hh24-wedding-page[data-preset="editorial"] .hh24-w-hero .hh24-w-wrap { width:min(100%,680px); margin:auto; }
  .hh24-wedding-page[data-preset="mediterranean"] .hh24-w-hero { background:linear-gradient(180deg,#fff7e9 0 72%,color-mix(in srgb,var(--hh24-w-primary) 88%,#fff) 72%); }
  .hh24-wedding-page[data-preset="mediterranean"] .hh24-w-hero::after { opacity:.18; }
  .hh24-w-section { padding-right: 0; padding-left: 0; }
	.hh24-w-hero.media-side,
	.hh24-w-section.media-side { grid-template-columns: 1fr; gap: 34px; padding-inline: 24px; text-align: center; }
	.hh24-w-hero.media-side > .hh24-w-media,
	.hh24-w-section.media-side > .hh24-w-media { width: min(100%,680px); min-height: 0; height: clamp(300px,76vw,520px); margin-inline: auto; }
	.hh24-w-hero.media-top > .hh24-w-media,
	.hh24-w-section.media-top > .hh24-w-media { height: clamp(260px,68vw,460px); }
  .hh24-w-section.align-left .hh24-w-wrap { margin-inline: auto; }
  .hh24-w-section.variant-cards .hh24-w-schedule,
  .hh24-w-section.variant-cards .hh24-w-faq { grid-template-columns: 1fr; }
  .hh24-w-gallery,
  .hh24-w-section.variant-grid .hh24-w-gallery,
  .hh24-w-section.variant-filmstrip .hh24-w-gallery { grid-template-columns: 1fr 1fr; transform: none; }
  .hh24-w-gallery img,
  .hh24-w-section.variant-grid .hh24-w-gallery img,
  .hh24-w-section.variant-filmstrip .hh24-w-gallery img { grid-row: auto; height: 230px; padding: 0; border: 0; border-radius: var(--hh24-w-radius); }
  .hh24-w-gallery img:first-child { grid-column: 1 / -1; height: 400px; }
}

/* Collapse media-side compositions before the two columns become too narrow.
 * This protects long couple names and editorial headings on portrait tablets. */
@media (max-width: 900px) {
	.hh24-w-hero.media-side,
	.hh24-w-section.media-side { grid-template-columns:1fr; gap:34px; padding-inline:24px; text-align:center; }
	.hh24-w-hero.media-side > .hh24-w-media,
	.hh24-w-section.media-side > .hh24-w-media { width:min(100%,680px); min-height:0; height:clamp(300px,66vw,520px); margin-inline:auto; }
	.hh24-w-hero.media-side .hh24-w-wrap,
	.hh24-w-section.media-side > .hh24-w-wrap { width:min(calc(100% - 30px),680px); margin-inline:auto; }
}

@media (max-width: 520px) {
  :root { --hh24-w-section-space: 76px; }
  .hh24-wedding-page[data-spacing="airy"] { --hh24-w-section-space: 88px; }
  .hh24-w-wrap { width: min(calc(100% - 30px),1040px); }
  .hh24-w-hero { min-height: 620px; padding: 80px 0; }
  .hh24-w-hero h1 { font-size: clamp(50px,16vw,70px); }
  .hh24-w-lead { font-size: 18px; }
  .hh24-w-section h2 { font-size: clamp(39px,12vw,56px); }
  .hh24-w-section.variant-card > .hh24-w-wrap,
  .hh24-w-section.variant-editorial > .hh24-w-wrap { padding: 32px 22px; }
  .hh24-w-schedule article { grid-template-columns: 74px 1fr; gap: 14px; }
  .hh24-w-gallery { grid-template-columns: 1fr; }
  .hh24-w-gallery img,
  .hh24-w-gallery img:first-child { grid-column: auto; height: 320px; }
  .hh24-w-countdown { gap: 12px; }
  .hh24-w-countdown span { min-width: 72px; }
  .hh24-w-countdown strong { font-size: 42px; }
  .hh24-private-note { border-radius: 22px; }
  .hh24-wedding-footer { align-items: flex-start; flex-direction: column; }
  .hh24-rsvp-page { padding: 15px; }
  .hh24-rsvp-card { padding: 30px 22px; border-width: 4px; border-radius: 0 40px 0 40px; }
	.hh24-rsvp-columns { grid-template-columns:1fr; }
	.hh24-rsvp-choice { grid-template-columns:1fr; }
	.hh24-rsvp-steps { gap:6px; }
	.hh24-rsvp-steps li { display:grid; justify-items:center; gap:5px; font-size:10px; text-align:center; }
}
.hh24-w-monogram.has-custom-logo { width: 82px; height: 58px; padding: 0; overflow: hidden; background: transparent; }
.hh24-w-monogram.has-custom-logo svg { display: block; width: 100%; height: 100%; }

/* Premium wedding-logo placements and invitation-inspired romantic website. */
.hh24-w-hero-logo,.hh24-w-section-logo,.hh24-w-footer-logo { display:flex; width:100%; justify-content:center; }
.hh24-w-hero-logo svg,.hh24-w-section-logo svg,.hh24-w-footer-logo svg,.hh24-w-hero-logo img,.hh24-w-section-logo img,.hh24-w-footer-logo img { display:block; height:auto; object-fit:contain; }
.hh24-w-hero-logo.is-compact svg { width:min(100%,230px); }
.hh24-w-hero-logo.is-compact img { width:min(100%,230px); max-height:180px; }
.hh24-w-hero-logo.is-balanced svg { width:min(100%,340px); }
.hh24-w-hero-logo.is-balanced img { width:min(100%,340px); max-height:260px; }
.hh24-w-hero-logo.is-statement svg { width:min(100%,470px); }
.hh24-w-hero-logo.is-statement img { width:min(100%,470px); max-height:360px; }
.hh24-w-hero-logo.align-left,.hh24-w-footer-logo.align-left { justify-content:flex-start; }
.hh24-w-hero-logo.align-right,.hh24-w-footer-logo.align-right { justify-content:flex-end; }
.hh24-w-section-logo.is-compact svg { width:min(100%,260px); }
.hh24-w-section-logo.is-compact img { width:min(100%,260px); max-height:210px; }
.hh24-w-section-logo.is-balanced svg { width:min(100%,390px); }
.hh24-w-section-logo.is-balanced img { width:min(100%,390px); max-height:310px; }
.hh24-w-section-logo.is-statement svg { width:min(100%,580px); }
.hh24-w-section-logo.is-statement img { width:min(100%,580px); max-height:440px; }
.hh24-module-logo .hh24-w-copy { margin-top:-38px; }
.hh24-w-footer-logo { flex:1 0 100%; margin-bottom:-18px; }
.hh24-w-footer-logo.is-compact svg { width:150px; }
.hh24-w-footer-logo.is-compact img { width:150px; max-height:100px; }
.hh24-w-footer-logo.is-balanced svg { width:210px; }
.hh24-w-footer-logo.is-balanced img { width:210px; max-height:140px; }
.hh24-w-footer-logo.is-statement svg { width:270px; }
.hh24-w-footer-logo.is-statement img { width:270px; max-height:180px; }
.hh24-wedding-footer:has(.hh24-w-footer-logo) { flex-wrap:wrap; }

.hh24-wedding-page[data-preset="romantic"] { background:#fbf7f0; }
.hh24-wedding-page[data-preset="romantic"] .hh24-w-navigation { position:absolute; right:0; left:0; border:0; background:transparent; backdrop-filter:none; }
.hh24-wedding-page[data-preset="romantic"] .hh24-w-navigation div a { color:#4b443e; }
.hh24-wedding-page[data-preset="romantic"] .hh24-w-hero { min-height:100svh; padding:130px 0 165px; background:radial-gradient(circle at 50% 43%,rgba(255,255,255,.95) 0 22%,transparent 48%),radial-gradient(circle at 13% 24%,color-mix(in srgb,var(--hh24-w-accent) 24%,transparent),transparent 28%),radial-gradient(circle at 88% 72%,color-mix(in srgb,var(--hh24-w-primary) 18%,transparent),transparent 28%),linear-gradient(135deg,#f9f2e8,#fffaf4 52%,#f7efe6); }
.hh24-wedding-page[data-preset="romantic"] .hh24-w-hero::before { inset:76px max(24px,calc((100vw - 870px)/2)) 122px; width:auto; height:auto; border:1px solid color-mix(in srgb,var(--hh24-w-primary) 58%,transparent); border-radius:50%; }
.hh24-wedding-page[data-preset="romantic"] .hh24-w-hero::after { right:-5%; bottom:-56px; left:-5%; width:auto; height:128px; border:0; border-radius:50% 50% 0 0; background:var(--hh24-w-bg); }
.hh24-wedding-page[data-preset="romantic"] .hh24-w-hero .hh24-w-wrap { max-width:820px; padding:0; border:0; background:transparent; box-shadow:none; }
.hh24-wedding-page[data-preset="romantic"] .hh24-w-hero-logo { margin-bottom:-78px; }
.hh24-wedding-page[data-preset="romantic"] .hh24-w-hero h1 { margin-top:-2px; font-size:clamp(48px,6vw,78px); font-weight:500; letter-spacing:.01em; }
.hh24-wedding-page[data-preset="romantic"] .hh24-w-eyebrow { color:var(--hh24-w-primary); font-size:13px; font-weight:650; letter-spacing:.22em; text-transform:uppercase; }
.hh24-wedding-page[data-preset="romantic"] .hh24-w-lead { font-size:18px; letter-spacing:.05em; }
.hh24-wedding-page[data-preset="romantic"] .hh24-w-ornament { color:var(--hh24-w-accent); }
.hh24-wedding-page[data-preset="romantic"] .hh24-w-section:nth-of-type(even):not(.bg-dark) { background:linear-gradient(135deg,color-mix(in srgb,var(--hh24-w-accent) 10%,var(--hh24-w-bg)),var(--hh24-w-bg)); }
.hh24-wedding-page[data-preset="romantic"] .hh24-w-section h2 { font-weight:500; letter-spacing:0; }
.hh24-wedding-page[data-preset="romantic"] .hh24-w-schedule article { position:relative; }
.hh24-wedding-page[data-preset="romantic"] .hh24-w-schedule article::before { top:32px; left:var(--hh24-w-schedule-axis); width:9px; height:9px; border:1px solid var(--hh24-w-accent); background:var(--hh24-w-bg); transform:translateX(-50%); }

@media (max-width:800px) {
	.hh24-wedding-page[data-preset="romantic"] .hh24-w-hero { min-height:760px; padding:110px 0 135px; }
	.hh24-wedding-page[data-preset="romantic"] .hh24-w-hero::before { inset:68px 18px 100px; }
	.hh24-wedding-page[data-preset="romantic"] .hh24-w-hero-logo { margin-bottom:-58px; }
	.hh24-wedding-page[data-preset="romantic"] .hh24-w-hero-logo.is-statement svg { width:min(92%,390px); }
	.hh24-wedding-page[data-preset="romantic"] .hh24-w-hero h1 { font-size:clamp(42px,12vw,62px); }
	.hh24-w-navigation .hh24-w-monogram.has-custom-logo { width:78px; height:54px; }
}

@media (max-width:520px) {
	.hh24-wedding-page[data-preset="romantic"] .hh24-w-hero { min-height:690px; }
	.hh24-wedding-page[data-preset="romantic"] .hh24-w-hero-logo { margin-bottom:-46px; }
	.hh24-wedding-page[data-preset="romantic"] .hh24-w-hero h1 { font-size:42px; line-height:1.05; }
	.hh24-wedding-page[data-preset="romantic"] .hh24-w-lead { font-size:16px; }
	.hh24-w-section-logo.is-statement svg { width:100%; }
	.hh24-module-logo .hh24-w-copy { margin-top:-24px; }
}

/* 0.10.0: five genuine wedding worlds, resilient typography and focal-point zoom. */
.hh24-smart-title { overflow-wrap:anywhere; text-wrap:balance; }
.hh24-w-hero .hh24-smart-title.is-long { font-size:clamp(42px,6.3vw,82px); line-height:1; }
.hh24-w-hero .hh24-smart-title.is-very-long { max-width:17ch; font-size:clamp(34px,5vw,64px); line-height:.98; }
.hh24-w-section .hh24-smart-title.is-long { font-size:clamp(34px,4.6vw,58px); }
.hh24-w-section .hh24-smart-title.is-very-long { max-width:24ch; margin-inline:auto; font-size:clamp(30px,4vw,48px); }
.hh24-w-section.align-left .hh24-smart-title.is-very-long { margin-left:0; }
.hh24-w-section { overflow:hidden; }
.hh24-w-media { transform:scale(var(--hh24-image-zoom,1)); transform-origin:center; }

.hh24-wedding-page .hh24-w-hero:not(.has-media) { position:relative; isolation:isolate; background-position:center; background-size:cover; }
.hh24-wedding-page .hh24-w-hero:not(.has-media)::after { position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,rgba(255,255,255,.94) 0 40%,rgba(255,255,255,.5) 64%,rgba(255,255,255,.1)); content:""; }
.hh24-wedding-page[data-preset="editorial"] .hh24-w-hero:not(.has-media) { background-image:url('/wp-content/plugins/hh24-core/assets/images/templates/editorial-1600.webp'); background-image:image-set(url('/wp-content/plugins/hh24-core/assets/images/templates/editorial-1600.avif') type('image/avif') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/editorial-3200.avif') type('image/avif') 2x,url('/wp-content/plugins/hh24-core/assets/images/templates/editorial-1600.webp') type('image/webp') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/editorial-3200.webp') type('image/webp') 2x); }
.hh24-wedding-page[data-preset="romantic"] .hh24-w-hero:not(.has-media) { background-image:url('/wp-content/plugins/hh24-core/assets/images/templates/romantic-1600.webp'); background-image:image-set(url('/wp-content/plugins/hh24-core/assets/images/templates/romantic-1600.avif') type('image/avif') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/romantic-3200.avif') type('image/avif') 2x,url('/wp-content/plugins/hh24-core/assets/images/templates/romantic-1600.webp') type('image/webp') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/romantic-3200.webp') type('image/webp') 2x); }
.hh24-wedding-page[data-preset="romantic"] .hh24-w-hero:not(.has-media) .hh24-w-wrap { max-width:620px; margin-right:5%; margin-left:auto; }
.hh24-wedding-page[data-preset="botanical"] .hh24-w-hero:not(.has-media) { background-image:url('/wp-content/plugins/hh24-core/assets/images/templates/botanical-1600.webp'); background-image:image-set(url('/wp-content/plugins/hh24-core/assets/images/templates/botanical-1600.avif') type('image/avif') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/botanical-3200.avif') type('image/avif') 2x,url('/wp-content/plugins/hh24-core/assets/images/templates/botanical-1600.webp') type('image/webp') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/botanical-3200.webp') type('image/webp') 2x); }
.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-hero:not(.has-media) { background-image:url('/wp-content/plugins/hh24-core/assets/images/templates/minimal-luxe-1600.webp'); background-image:image-set(url('/wp-content/plugins/hh24-core/assets/images/templates/minimal-luxe-1600.avif') type('image/avif') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/minimal-luxe-3200.avif') type('image/avif') 2x,url('/wp-content/plugins/hh24-core/assets/images/templates/minimal-luxe-1600.webp') type('image/webp') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/minimal-luxe-3200.webp') type('image/webp') 2x); }
.hh24-wedding-page[data-preset="mediterranean"] .hh24-w-hero:not(.has-media) { background-image:url('/wp-content/plugins/hh24-core/assets/images/templates/mediterranean-1600.webp'); background-image:image-set(url('/wp-content/plugins/hh24-core/assets/images/templates/mediterranean-1600.avif') type('image/avif') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/mediterranean-3200.avif') type('image/avif') 2x,url('/wp-content/plugins/hh24-core/assets/images/templates/mediterranean-1600.webp') type('image/webp') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/mediterranean-3200.webp') type('image/webp') 2x); }

.hh24-wedding-page[data-preset="editorial"] .hh24-w-hero:not(.has-media),
.hh24-wedding-page[data-preset="botanical"] .hh24-w-hero:not(.has-media),
.hh24-wedding-page[data-preset="mediterranean"] .hh24-w-hero:not(.has-media) { background-position:center; }
.hh24-wedding-page[data-preset="romantic"] .hh24-w-hero:not(.has-media) { background-position:35% center; }
.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-hero:not(.has-media) { color:#fff; background-position:center; }
.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-hero:not(.has-media)::after { background:linear-gradient(90deg,rgba(7,7,7,.16),rgba(7,7,7,.2) 45%,rgba(7,7,7,.78)); }
.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-hero:not(.has-media) .hh24-w-wrap { margin-right:5%; margin-left:auto; }
.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-hero:not(.has-media) h1,
.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-hero:not(.has-media) .hh24-w-lead,
.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-hero:not(.has-media) .hh24-w-eyebrow { color:#fff; }
.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-hero:not(.has-media) .hh24-w-button { border-color:#fff; background:#fff; color:#111; }
.hh24-wedding-page[data-preset="botanical"] .hh24-w-section:nth-of-type(even):not(.bg-dark) { background:linear-gradient(135deg,#eef3ed,var(--hh24-w-bg)); }
.hh24-wedding-page[data-preset="mediterranean"] .hh24-w-section:nth-of-type(3n):not(.bg-dark) { background:linear-gradient(135deg,#fff2dc,var(--hh24-w-bg)); }

@media (max-width:800px) {
	.hh24-w-hero .hh24-smart-title.is-long { font-size:clamp(38px,11vw,56px); }
	.hh24-w-hero .hh24-smart-title.is-very-long { max-width:100%; font-size:clamp(32px,9.5vw,48px); line-height:1.02; }
	.hh24-wedding-page .hh24-w-hero:not(.has-media) { min-height:760px; padding-top:430px; background-position:center top; }
	.hh24-wedding-page .hh24-w-hero:not(.has-media)::after { background:linear-gradient(180deg,rgba(255,255,255,.05) 0 43%,rgba(255,255,255,.94) 64%,#fff 100%); }
	.hh24-wedding-page[data-preset="romantic"] .hh24-w-hero:not(.has-media) .hh24-w-wrap { max-width:100%; margin:0 auto; }
	.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-hero:not(.has-media) { padding-top:430px; background-position:30% top; }
	.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-hero:not(.has-media)::after { background:linear-gradient(180deg,rgba(7,7,7,.04) 0 40%,rgba(7,7,7,.86) 68%,#070707 100%); }
	.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-hero:not(.has-media) .hh24-w-wrap { margin:0 auto; }
}

@media (max-width:520px) {
	.hh24-wedding-page .hh24-w-hero:not(.has-media) { min-height:660px; padding-top:320px; background-image:image-set(url('/wp-content/plugins/hh24-core/assets/images/templates/romantic-480.avif') type('image/avif') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/romantic-900.avif') type('image/avif') 2x,url('/wp-content/plugins/hh24-core/assets/images/templates/romantic-480.webp') type('image/webp') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/romantic-900.webp') type('image/webp') 2x); }
	.hh24-w-hero h1 { font-size:clamp(42px,12.5vw,56px); }
	.hh24-w-hero-logo.is-compact svg { width:min(64vw,180px); }
	.hh24-w-hero-logo.is-balanced svg { width:min(72vw,225px); }
	.hh24-w-hero-logo.is-statement svg { width:min(78vw,270px); }
	.hh24-wedding-page[data-preset="editorial"] .hh24-w-hero:not(.has-media) { background-image:image-set(url('/wp-content/plugins/hh24-core/assets/images/templates/editorial-480.avif') type('image/avif') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/editorial-900.avif') type('image/avif') 2x,url('/wp-content/plugins/hh24-core/assets/images/templates/editorial-480.webp') type('image/webp') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/editorial-900.webp') type('image/webp') 2x); }
	.hh24-wedding-page[data-preset="botanical"] .hh24-w-hero:not(.has-media) { background-image:image-set(url('/wp-content/plugins/hh24-core/assets/images/templates/botanical-480.avif') type('image/avif') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/botanical-900.avif') type('image/avif') 2x,url('/wp-content/plugins/hh24-core/assets/images/templates/botanical-480.webp') type('image/webp') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/botanical-900.webp') type('image/webp') 2x); }
	.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-hero:not(.has-media) { background-image:image-set(url('/wp-content/plugins/hh24-core/assets/images/templates/minimal-luxe-480.avif') type('image/avif') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/minimal-luxe-900.avif') type('image/avif') 2x,url('/wp-content/plugins/hh24-core/assets/images/templates/minimal-luxe-480.webp') type('image/webp') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/minimal-luxe-900.webp') type('image/webp') 2x); }
	.hh24-wedding-page[data-preset="mediterranean"] .hh24-w-hero:not(.has-media) { background-image:image-set(url('/wp-content/plugins/hh24-core/assets/images/templates/mediterranean-480.avif') type('image/avif') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/mediterranean-900.avif') type('image/avif') 2x,url('/wp-content/plugins/hh24-core/assets/images/templates/mediterranean-480.webp') type('image/webp') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/mediterranean-900.webp') type('image/webp') 2x); }
}

@media (min-width:1800px) {
	.hh24-wedding-page[data-preset="editorial"] .hh24-w-hero:not(.has-media) { background-image:image-set(url('/wp-content/plugins/hh24-core/assets/images/templates/editorial-2560.avif') type('image/avif') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/editorial-3840.avif') type('image/avif') 2x,url('/wp-content/plugins/hh24-core/assets/images/templates/editorial-2560.webp') type('image/webp') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/editorial-3840.webp') type('image/webp') 2x); }
	.hh24-wedding-page[data-preset="romantic"] .hh24-w-hero:not(.has-media) { background-image:image-set(url('/wp-content/plugins/hh24-core/assets/images/templates/romantic-2560.avif') type('image/avif') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/romantic-3840.avif') type('image/avif') 2x,url('/wp-content/plugins/hh24-core/assets/images/templates/romantic-2560.webp') type('image/webp') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/romantic-3840.webp') type('image/webp') 2x); }
	.hh24-wedding-page[data-preset="botanical"] .hh24-w-hero:not(.has-media) { background-image:image-set(url('/wp-content/plugins/hh24-core/assets/images/templates/botanical-2560.avif') type('image/avif') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/botanical-3840.avif') type('image/avif') 2x,url('/wp-content/plugins/hh24-core/assets/images/templates/botanical-2560.webp') type('image/webp') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/botanical-3840.webp') type('image/webp') 2x); }
	.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-hero:not(.has-media) { background-image:image-set(url('/wp-content/plugins/hh24-core/assets/images/templates/minimal-luxe-2560.avif') type('image/avif') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/minimal-luxe-3840.avif') type('image/avif') 2x,url('/wp-content/plugins/hh24-core/assets/images/templates/minimal-luxe-2560.webp') type('image/webp') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/minimal-luxe-3840.webp') type('image/webp') 2x); }
	.hh24-wedding-page[data-preset="mediterranean"] .hh24-w-hero:not(.has-media) { background-image:image-set(url('/wp-content/plugins/hh24-core/assets/images/templates/mediterranean-2560.avif') type('image/avif') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/mediterranean-3840.avif') type('image/avif') 2x,url('/wp-content/plugins/hh24-core/assets/images/templates/mediterranean-2560.webp') type('image/webp') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/mediterranean-3840.webp') type('image/webp') 2x); }
}

/* Keep the selected wedding typography independent from the platform theme. */
.hh24-wedding-page .hh24-w-navigation strong,
.hh24-wedding-page .hh24-w-hero h1,
.hh24-wedding-page .hh24-w-section h2,
.hh24-wedding-page .hh24-w-section h3,
.hh24-wedding-page .hh24-w-footer strong { font-family:var(--hh24-w-heading)!important; }
.hh24-wedding-page .hh24-w-hero p,
.hh24-wedding-page .hh24-w-section p,
.hh24-wedding-page .hh24-w-section li,
.hh24-wedding-page .hh24-w-button,
.hh24-wedding-page .hh24-w-footer { font-family:var(--hh24-w-body)!important; }

/* 0.11.24: Floral Garden – passend zu Logo und Papeterie. */
.hh24-wedding-page[data-preset="floral"] { background:#fff9f4; }
.hh24-wedding-page[data-preset="floral"] .hh24-w-navigation { position:absolute; right:0; left:0; border:0; background:linear-gradient(#fff9f4,rgba(255,249,244,.72),transparent); backdrop-filter:none; }
.hh24-wedding-page[data-preset="floral"] .hh24-w-navigation div a { color:#171717; }
.hh24-wedding-page[data-preset="floral"] .hh24-w-hero:not(.has-media) {
	min-height:100svh;
	place-items:center start;
	padding:130px max(24px,calc((100vw - 1180px)/2));
	background-image:url('/wp-content/plugins/hh24-core/assets/images/templates/floral-garden-1600.webp');
	background-image:image-set(url('/wp-content/plugins/hh24-core/assets/images/templates/floral-garden-1600.avif') type('image/avif') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/floral-garden-3200.avif') type('image/avif') 2x,url('/wp-content/plugins/hh24-core/assets/images/templates/floral-garden-1600.webp') type('image/webp') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/floral-garden-3200.webp') type('image/webp') 2x);
	background-position:center;
	text-align:left;
}
.hh24-wedding-page[data-preset="floral"] .hh24-w-hero:not(.has-media)::after { z-index:0; inset:0; width:auto; height:auto; border:0; border-radius:0; background:linear-gradient(90deg,rgba(255,249,244,.99) 0 28%,rgba(255,249,244,.88) 43%,rgba(255,249,244,.1) 70%); }
.hh24-wedding-page[data-preset="floral"] .hh24-w-hero:not(.has-media)::before { z-index:1; top:14%; bottom:11%; left:max(24px,calc((100vw - 1250px)/2)); width:min(43vw,590px); height:auto; border-color:color-mix(in srgb,var(--hh24-w-accent) 72%,transparent); border-radius:52% 48% 49% 51%; }
.hh24-wedding-page[data-preset="floral"] .hh24-w-hero .hh24-w-wrap { z-index:2; width:min(45%,590px); margin:0; padding:48px 42px; }
.hh24-wedding-page[data-preset="floral"] .hh24-w-hero-logo { margin-bottom:-42px; }
.hh24-wedding-page[data-preset="floral"] .hh24-w-hero h1 { color:#171717; font-size:clamp(58px,7vw,96px); font-weight:500; letter-spacing:-.035em; }
.hh24-wedding-page[data-preset="floral"] .hh24-w-eyebrow { color:#9c5f58; font-size:13px; font-weight:700; letter-spacing:.19em; text-transform:uppercase; }
.hh24-wedding-page[data-preset="floral"] .hh24-w-lead { color:#3a3431; font-size:18px; }
.hh24-wedding-page[data-preset="floral"] .hh24-w-button { background:#171717; color:#fff; }
.hh24-wedding-page[data-preset="floral"] .hh24-w-ornament { color:#c98e86; }
.hh24-wedding-page[data-preset="floral"] .hh24-w-section:nth-of-type(even):not(.bg-dark) { background:linear-gradient(135deg,color-mix(in srgb,#c98e86 11%,#fff9f4),#fff9f4); }
.hh24-wedding-page[data-preset="floral"] .hh24-w-section h2 { font-weight:500; letter-spacing:-.02em; }
.hh24-wedding-page[data-preset="floral"] .hh24-w-schedule article { border-color:color-mix(in srgb,#c98e86 45%,transparent); }

@media (max-width:800px) {
	.hh24-wedding-page[data-preset="floral"] .hh24-w-hero:not(.has-media) { min-height:790px; place-items:end center; padding:390px 24px 72px; background-position:66% top; text-align:center; }
	.hh24-wedding-page[data-preset="floral"] .hh24-w-hero:not(.has-media)::before { display:none; }
	.hh24-wedding-page[data-preset="floral"] .hh24-w-hero:not(.has-media)::after { background:linear-gradient(180deg,rgba(255,249,244,.03) 0 39%,rgba(255,249,244,.9) 63%,#fff9f4 100%); }
	.hh24-wedding-page[data-preset="floral"] .hh24-w-hero .hh24-w-wrap { width:100%; padding:36px 14px 0; }
	.hh24-wedding-page[data-preset="floral"] .hh24-w-hero-logo { margin-bottom:-34px; }
}

@media (max-width:520px) {
	.hh24-wedding-page[data-preset="floral"] .hh24-w-hero:not(.has-media) { min-height:690px; padding-top:310px; background-image:image-set(url('/wp-content/plugins/hh24-core/assets/images/templates/floral-garden-480.avif') type('image/avif') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/floral-garden-900.avif') type('image/avif') 2x,url('/wp-content/plugins/hh24-core/assets/images/templates/floral-garden-480.webp') type('image/webp') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/floral-garden-900.webp') type('image/webp') 2x); background-position:67% top; }
	.hh24-wedding-page[data-preset="floral"] .hh24-w-hero h1 { font-size:clamp(43px,13vw,58px); line-height:.97; }
	.hh24-wedding-page[data-preset="floral"] .hh24-w-lead { font-size:16px; }
}

@media (min-width:1800px) {
	.hh24-wedding-page[data-preset="floral"] .hh24-w-hero:not(.has-media) { background-image:image-set(url('/wp-content/plugins/hh24-core/assets/images/templates/floral-garden-2560.avif') type('image/avif') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/floral-garden-3840.avif') type('image/avif') 2x,url('/wp-content/plugins/hh24-core/assets/images/templates/floral-garden-2560.webp') type('image/webp') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/floral-garden-3840.webp') type('image/webp') 2x); }
}

/* 0.15.8: Premium output layer – the public wedding site mirrors fine stationery. */
.hh24-wedding-page {
	--hh24-w-sheet:color-mix(in srgb,var(--hh24-w-bg) 88%,#fff);
	--hh24-w-line:color-mix(in srgb,var(--hh24-w-text) 15%,transparent);
	--hh24-w-soft-shadow:0 24px 70px color-mix(in srgb,var(--hh24-w-text) 9%,transparent);
	--hh24-w-content:min(calc(100% - 48px),1180px);
	background:var(--hh24-w-bg);
	font-size:17px;
	line-height:1.72;
}
.hh24-wedding-page :where(a,button,summary,input,select,textarea,[tabindex]):focus-visible { outline:3px solid #005fcc; outline-offset:3px; box-shadow:0 0 0 2px #fff; }
.hh24-wedding-page main { overflow:hidden; }
.hh24-wedding-page .hh24-w-wrap { width:var(--hh24-w-content); }

/* The navigation reads like a discreet invitation header, not a platform bar. */
.hh24-w-navigation {
	min-height:82px;
	padding:11px max(24px,calc((100vw - 1320px)/2));
	border-top:0;
	border-bottom:1px solid var(--hh24-w-line);
	background:color-mix(in srgb,var(--hh24-w-bg) 90%,transparent);
	box-shadow:0 10px 35px rgba(29,22,18,.035);
}
.hh24-w-navigation div { gap:clamp(20px,2.6vw,42px); }
.hh24-w-navigation div a { min-height:44px; display:inline-flex; align-items:center; max-width:180px; font-size:12px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; }
.hh24-w-navigation div a::after { right:auto; bottom:5px; width:28px; height:1px; transform:scaleX(0); transform-origin:left; }
.hh24-w-navigation div a:hover::after,.hh24-w-navigation div a:focus-visible::after { transform:scaleX(1); }
.hh24-w-monogram:not(.has-custom-logo) { display:grid; width:58px; height:58px; place-items:center; border:1px solid var(--hh24-w-line); border-radius:50%; font-size:15px; font-weight:500; white-space:nowrap; }
.hh24-w-monogram.has-custom-logo { width:96px; height:62px; }

/* Hero typography and composition: quieter, editorial and without duplicate circles. */
.hh24-wedding-page .hh24-w-hero:not(.has-media)::before { display:none; }
.hh24-wedding-page .hh24-w-hero { min-height:min(920px,92svh); }
.hh24-wedding-page .hh24-w-hero .hh24-w-wrap { max-width:780px; }
.hh24-wedding-page .hh24-w-hero h1 { font-weight:500; letter-spacing:-.035em; text-wrap:balance; }
.hh24-wedding-page .hh24-w-eyebrow { font-size:12px; font-weight:650; letter-spacing:.2em; text-transform:uppercase; }
.hh24-wedding-page .hh24-w-lead { max-width:640px; font-size:18px; line-height:1.65; }
.hh24-wedding-page .hh24-w-ornament { position:relative; width:88px; margin:34px auto 0; font-size:12px; }
.hh24-wedding-page .hh24-w-ornament::before,.hh24-wedding-page .hh24-w-ornament::after { position:absolute; top:50%; width:30px; height:1px; background:currentColor; content:""; opacity:.58; }
.hh24-wedding-page .hh24-w-ornament::before { left:0; }
.hh24-wedding-page .hh24-w-ornament::after { right:0; }
.hh24-wedding-page .hh24-w-button { min-width:178px; min-height:52px; padding-inline:28px; border:1px solid transparent; box-shadow:none; font-size:12px; font-weight:650; letter-spacing:.09em; text-transform:uppercase; }

/* Global section rhythm: more white space, fine rules and deliberate line lengths. */
.hh24-w-section { position:relative; padding:var(--hh24-w-section-space) 0; }
.hh24-w-section::before { position:absolute; top:0; left:50%; width:min(76px,12vw); height:1px; background:var(--hh24-w-line); content:""; transform:translateX(-50%); }
.hh24-w-section:first-child::before,.hh24-module-logo::before { display:none; }
.hh24-w-section h2 { max-width:13ch; margin-bottom:32px; font-size:clamp(44px,5vw,68px); font-weight:500; line-height:1.03; letter-spacing:-.025em; text-wrap:balance; }
.hh24-w-section-eyebrow { margin-bottom:19px; font-size:12px!important; letter-spacing:.24em; }
.hh24-w-copy { max-width:690px; font-size:17px; line-height:1.78; text-wrap:pretty; }
.hh24-w-copy p:last-child { margin-bottom:0; }
.hh24-w-section.variant-card > .hh24-w-wrap,.hh24-w-section.variant-editorial > .hh24-w-wrap { max-width:980px; border:1px solid var(--hh24-w-line); background:var(--hh24-w-sheet); box-shadow:var(--hh24-w-soft-shadow); }
.hh24-w-section.variant-editorial > .hh24-w-wrap { border-left:1px solid var(--hh24-w-line); }

/* Information modules receive their own visual grammar. */
.hh24-module-intro .hh24-w-copy,.hh24-module-story .hh24-w-copy { max-width:760px; font-size:clamp(18px,1.55vw,21px); line-height:1.8; }
.hh24-module-story:not(.has-media) .hh24-w-wrap { display:grid; grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr); gap:clamp(38px,7vw,100px); align-items:start; }
.hh24-module-story:not(.has-media) :is(.hh24-w-section-eyebrow,h2) { grid-column:1; text-align:left; }
.hh24-module-story:not(.has-media) h2 { margin-right:0; margin-left:0; }
.hh24-module-story:not(.has-media) .hh24-w-copy { grid-column:2; grid-row:1 / span 2; text-align:left; }
.hh24-module-story:not(.has-media) .hh24-w-detail { grid-column:2; justify-content:flex-start; margin:20px 0 0; }

.hh24-w-schedule { --hh24-w-schedule-axis:126px; position:relative; max-width:820px; margin-top:56px; }
.hh24-w-schedule::before { position:absolute; top:18px; bottom:18px; left:var(--hh24-w-schedule-axis); width:1px; background:var(--hh24-w-line); content:""; transform:translateX(-50%); }
.hh24-w-schedule article { position:relative; grid-template-columns:102px 1fr; gap:46px; min-height:104px; padding:22px 0; border:0; }
.hh24-w-schedule article::before { position:absolute; z-index:1; top:32px; left:var(--hh24-w-schedule-axis); box-sizing:border-box; width:17px; height:17px; border:3px solid var(--hh24-w-bg); border-radius:50%; background:var(--hh24-w-accent); box-shadow:0 0 0 1px var(--hh24-w-line); content:""; transform:translateX(-50%); }
.hh24-w-schedule time { padding-top:3px; font-size:12px; font-weight:700; letter-spacing:.11em; }
.hh24-w-schedule h3 { font-size:clamp(23px,2.4vw,31px); font-weight:500; }
.hh24-w-schedule p { margin-top:8px; color:color-mix(in srgb,var(--hh24-w-text) 72%,transparent); }
.hh24-w-section.variant-cards .hh24-w-schedule::before,.hh24-w-section.variant-cards .hh24-w-schedule article::before { display:none; }
.hh24-w-section.variant-cards .hh24-w-schedule article { border:1px solid var(--hh24-w-line); background:var(--hh24-w-sheet); box-shadow:none; }

.hh24-w-countdown { width:min(100%,760px); margin:54px auto 0; gap:0; border-top:1px solid var(--hh24-w-line); border-bottom:1px solid var(--hh24-w-line); }
.hh24-w-countdown span { position:relative; flex:1; min-width:0; padding:34px 18px 30px; }
.hh24-w-countdown span + span::before { position:absolute; top:24%; bottom:24%; left:0; width:1px; background:var(--hh24-w-line); content:""; }
.hh24-w-countdown strong { font-size:clamp(48px,6vw,78px); font-weight:400; font-variant-numeric:tabular-nums; }
.hh24-w-countdown small { color:color-mix(in srgb,var(--hh24-w-text) 82%,var(--hh24-w-bg)); font-size:12px; font-weight:650; letter-spacing:.16em; text-transform:uppercase; }

.hh24-w-location { max-width:760px; margin-top:50px; border:1px solid var(--hh24-w-line); background:var(--hh24-w-sheet); box-shadow:none; }
.hh24-w-location > i { display:grid; width:56px; height:56px; margin:auto; place-items:center; border:1px solid var(--hh24-w-line); border-radius:50%; font-size:20px; }
.hh24-w-location h3 { margin-top:24px; font-size:clamp(30px,3.5vw,42px); font-weight:500; }
.hh24-w-location .hh24-w-button { margin-top:28px; }

.hh24-w-gallery { gap:16px; margin-top:58px; }
.hh24-w-gallery img { height:300px; border-radius:2px; box-shadow:none; filter:saturate(.94); transition:filter .3s ease,transform .35s ease; }
.hh24-w-gallery img:first-child { height:616px; }
.hh24-w-gallery img:hover { filter:saturate(1); transform:translateY(-4px); }
.hh24-w-section.variant-grid .hh24-w-gallery img { height:340px; }
.hh24-w-section.variant-filmstrip .hh24-w-gallery img { border-width:12px 12px 34px; box-shadow:0 18px 44px rgba(30,25,20,.1); }

.hh24-w-faq { max-width:820px; margin-top:50px; }
.hh24-w-faq details { margin:0; padding:25px 4px; border:0; border-bottom:1px solid var(--hh24-w-line); border-radius:0; background:transparent; }
.hh24-w-faq details:first-child { border-top:1px solid var(--hh24-w-line); }
.hh24-w-faq summary { min-height:44px; font-size:17px; }
.hh24-w-contact a { display:inline-flex; min-height:48px; align-items:center; padding:12px 22px; border-color:var(--hh24-w-line); color:var(--hh24-w-text); font-weight:550; }
.hh24-w-detail > span { width:48px; height:48px; }
.hh24-private-note { max-width:720px; padding:19px 26px; border:1px solid var(--hh24-w-line); border-radius:3px; background:var(--hh24-w-sheet); }

/* Each collection keeps its own stationery character beyond the hero. */
.hh24-wedding-page[data-preset="editorial"] { --hh24-w-sheet:#fff; --hh24-w-line:rgba(25,22,19,.16); }
.hh24-wedding-page[data-preset="editorial"] .hh24-w-section h2 { font-weight:500; }
.hh24-wedding-page[data-preset="editorial"] .hh24-w-section:nth-of-type(3n):not(.bg-dark) { background:color-mix(in srgb,var(--hh24-w-accent) 9%,#fff); }
.hh24-wedding-page[data-preset="editorial"] .hh24-w-gallery img:nth-child(2) { margin-top:46px; }
.hh24-wedding-page[data-preset="romantic"] .hh24-w-section::before { width:44px; background:var(--hh24-w-accent); }
.hh24-wedding-page[data-preset="romantic"] .hh24-w-location,.hh24-wedding-page[data-preset="romantic"] .hh24-w-section.variant-card > .hh24-w-wrap { border-radius:180px 180px 24px 24px; }
.hh24-wedding-page[data-preset="botanical"] { --hh24-w-sheet:#f7faf6; }
.hh24-wedding-page[data-preset="botanical"] .hh24-w-section-eyebrow,.hh24-wedding-page[data-preset="botanical"] .hh24-w-schedule time { color:#4f684f; }
.hh24-wedding-page[data-preset="botanical"] .hh24-w-gallery img { border-radius:180px 180px 12px 12px; }
.hh24-wedding-page[data-preset="minimal_luxe"] { --hh24-w-sheet:#fff; --hh24-w-line:rgba(22,22,22,.2); }
.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-section h2 { font-weight:400; letter-spacing:-.015em; }
.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-button { border-color:#111; }
.hh24-wedding-page[data-preset="mediterranean"] { --hh24-w-sheet:#fffaf0; }
.hh24-wedding-page[data-preset="mediterranean"] .hh24-w-location { border-radius:180px 180px 18px 18px; }
.hh24-wedding-page[data-preset="mediterranean"] .hh24-w-section-eyebrow { color:#8b492d; }
.hh24-wedding-page[data-preset="floral"] { --hh24-w-sheet:#fffdf9; --hh24-w-line:rgba(118,72,65,.2); }
.hh24-wedding-page[data-preset="floral"] .hh24-w-hero:not(.has-media)::before { display:none; }
.hh24-wedding-page[data-preset="floral"] .hh24-w-hero .hh24-w-wrap { padding-left:12px; }
.hh24-wedding-page[data-preset="floral"] .hh24-w-gallery img { border-radius:160px 160px 10px 10px; }
.hh24-wedding-page[data-preset="floral"] .hh24-w-location { border-radius:160px 160px 16px 16px; }

/* Couple-led closing instead of a generic platform footer. */
.hh24-wedding-footer { min-height:340px; align-items:center; justify-content:center; flex-direction:column; gap:30px; padding:70px 24px 38px; border-top:1px solid var(--hh24-w-line); background:color-mix(in srgb,var(--hh24-w-bg) 90%,#fff); color:var(--hh24-w-text); text-align:center; }
.hh24-w-footer-couple { display:grid; justify-items:center; gap:6px; }
.hh24-w-footer-couple p { margin:2px 0 0; font-size:11px; font-weight:650; letter-spacing:.2em; text-transform:uppercase; }
.hh24-w-footer-couple strong { color:var(--hh24-w-text); font:500 clamp(32px,4vw,48px)/1.1 var(--hh24-w-heading); }
.hh24-w-footer-monogram { display:grid; width:66px; height:66px; margin-bottom:14px; place-items:center; border:1px solid var(--hh24-w-line); border-radius:50%; color:var(--hh24-w-text); font:500 18px/1 var(--hh24-w-heading); white-space:nowrap; }
.hh24-w-footer-credit { display:flex; gap:7px; color:color-mix(in srgb,var(--hh24-w-text) 78%,var(--hh24-w-bg)); font-size:12px; }
.hh24-w-footer-credit a { color:inherit; font:600 12px/1.4 var(--hh24-w-body); text-decoration:underline; text-underline-offset:3px; }
.hh24-w-footer-logo { margin:0 0 -18px; }
.hh24-w-footer-logo.is-compact svg,.hh24-w-footer-logo.is-balanced svg,.hh24-w-footer-logo.is-statement svg { width:min(280px,72vw); }

@media (max-width:800px) {
	.hh24-wedding-page { --hh24-w-content:min(calc(100% - 36px),680px); --hh24-w-section-space:88px; font-size:16px; }
	.hh24-wedding-page[data-spacing="compact"] { --hh24-w-section-space:72px; }
	.hh24-wedding-page[data-spacing="airy"] { --hh24-w-section-space:104px; }
	.hh24-w-navigation,.hh24-wedding-page[data-preset="romantic"] .hh24-w-navigation,.hh24-wedding-page[data-preset="floral"] .hh24-w-navigation { position:sticky; top:0; flex-wrap:wrap; min-height:100px; gap:0; padding:8px 18px 0; border-bottom:1px solid var(--hh24-w-line); background:color-mix(in srgb,var(--hh24-w-bg) 95%,transparent); backdrop-filter:blur(16px); }
	.hh24-w-navigation .hh24-w-monogram.has-custom-logo { width:84px; height:54px; }
	.hh24-w-navigation div { display:flex; width:100%; gap:22px; overflow-x:auto; padding:0 0 7px; scrollbar-width:none; }
	.hh24-w-navigation div::-webkit-scrollbar { display:none; }
	.hh24-w-navigation div a { flex:0 0 auto; min-height:38px; max-width:none; font-size:10px; }
	.hh24-wedding-page .hh24-w-hero { min-height:760px; }
	.hh24-w-section h2 { font-size:clamp(40px,10vw,55px); }
	.hh24-module-story:not(.has-media) .hh24-w-wrap { display:block; }
	.hh24-module-story:not(.has-media) .hh24-w-copy { margin-top:30px; }
	.hh24-module-story:not(.has-media) .hh24-w-detail { justify-content:center; }
	.hh24-w-schedule { --hh24-w-schedule-axis:88px; }
	.hh24-w-schedule article { grid-template-columns:66px 1fr; gap:44px; }
	.hh24-w-gallery img { border-radius:2px!important; }
	.hh24-w-gallery img:hover { transform:none; }
	.hh24-wedding-page[data-preset="floral"] .hh24-w-hero .hh24-w-wrap { padding-left:14px; }
}

@media (max-width:520px) {
	.hh24-wedding-page { --hh24-w-content:calc(100% - 30px); --hh24-w-section-space:76px; }
	.hh24-wedding-page[data-spacing="compact"] { --hh24-w-section-space:64px; }
	.hh24-wedding-page[data-spacing="airy"] { --hh24-w-section-space:88px; }
	.hh24-wedding-page .hh24-w-hero { min-height:690px; }
	.hh24-wedding-page .hh24-w-hero h1 { font-size:clamp(40px,12vw,54px); }
	.hh24-wedding-page .hh24-w-lead { font-size:16px; }
	.hh24-w-section h2 { font-size:clamp(37px,11vw,49px); }
	.hh24-w-section.variant-card > .hh24-w-wrap,.hh24-w-section.variant-editorial > .hh24-w-wrap { width:calc(100% - 24px); padding:38px 23px; }
	.hh24-w-countdown span { padding:27px 7px 24px; }
	.hh24-w-countdown strong { font-size:clamp(38px,12vw,54px); }
	.hh24-w-countdown small { font-size:11px; letter-spacing:.1em; }
	.hh24-w-schedule { --hh24-w-schedule-axis:70px; }
	.hh24-w-schedule article { grid-template-columns:54px 1fr; gap:33px; }
	.hh24-w-schedule h3 { font-size:23px; }
	.hh24-w-gallery,.hh24-w-section.variant-grid .hh24-w-gallery,.hh24-w-section.variant-filmstrip .hh24-w-gallery { gap:8px; }
	.hh24-w-gallery img,.hh24-w-gallery img:first-child { height:300px; }
	.hh24-w-gallery img:first-child { height:420px; }
	.hh24-wedding-footer { min-height:310px; padding-top:58px; }
	.hh24-w-footer-credit { flex-direction:column; }
}

@media (prefers-reduced-motion:reduce) {
	.hh24-wedding-page * { scroll-behavior:auto!important; transition:none!important; }
}

/* 0.17.3: premium heading rhythm, readable dark sections and consistent logo placement. */
.hh24-wedding-page .hh24-w-section .hh24-smart-title { overflow-wrap:normal; hyphens:none; word-break:normal; }
.hh24-wedding-page .hh24-module-intro h2 { max-width:18ch; }
.hh24-wedding-page .hh24-module-intro .hh24-smart-title.is-long { max-width:21ch; font-size:clamp(38px,4.35vw,58px); }
.hh24-wedding-page .hh24-w-hero-logo { margin-bottom:clamp(20px,2.5vw,36px); }
.hh24-wedding-page[data-preset="floral"] .hh24-w-hero-logo,
.hh24-wedding-page[data-preset="romantic"] .hh24-w-hero-logo { margin-bottom:clamp(20px,2.5vw,36px); }
.hh24-wedding-page .hh24-w-hero.has-media::before,
.hh24-wedding-page .hh24-w-hero.has-media::after { display:none!important; }
.hh24-wedding-page[data-preset="romantic"] .hh24-w-navigation {
	position:sticky;
	top:0;
	border-bottom:1px solid var(--hh24-w-line);
	background:color-mix(in srgb,var(--hh24-w-bg) 94%,transparent);
	box-shadow:0 10px 35px rgba(29,22,18,.04);
	backdrop-filter:blur(16px);
}
.hh24-wedding-page[data-preset="romantic"] .hh24-w-hero.media-background > .hh24-w-media-overlay {
	background:linear-gradient(90deg,rgba(18,14,12,.08) 0 42%,color-mix(in srgb,var(--hh24-w-bg) 50%,transparent) 58%,color-mix(in srgb,var(--hh24-w-bg) 90%,transparent) 100%);
}
.hh24-wedding-page[data-preset="romantic"] .hh24-w-hero.media-background .hh24-w-wrap {
	width:min(46%,660px);
	max-width:660px;
	margin-right:6%;
	margin-left:auto;
	padding:clamp(34px,4vw,58px);
	border:1px solid rgba(255,255,255,.62);
	border-radius:46% 46% 24px 24px;
	background:color-mix(in srgb,var(--hh24-w-bg) 82%,transparent);
	box-shadow:0 24px 70px rgba(35,26,22,.13);
	backdrop-filter:blur(9px);
}
.hh24-wedding-page[data-preset="botanical"] .hh24-w-hero.media-background > .hh24-w-media-overlay {
	background:linear-gradient(90deg,color-mix(in srgb,var(--hh24-w-bg) 90%,transparent) 0 42%,color-mix(in srgb,var(--hh24-w-bg) 38%,transparent) 62%,rgba(16,28,20,.08) 100%);
}
.hh24-wedding-page[data-preset="botanical"] .hh24-w-hero.media-background .hh24-w-wrap {
	width:min(46%,640px);
	max-width:640px;
	margin-right:auto;
	margin-left:6%;
	padding:clamp(36px,4vw,62px);
	border:1px solid color-mix(in srgb,var(--hh24-w-primary) 22%,transparent);
	border-radius:220px 220px 24px 24px;
	background:color-mix(in srgb,var(--hh24-w-bg) 88%,transparent);
	box-shadow:0 24px 70px rgba(24,44,30,.14);
	backdrop-filter:blur(9px);
}
.hh24-wedding-page:is([data-preset="romantic"],[data-preset="botanical"]) .hh24-w-hero.media-background :is(h1,.hh24-w-eyebrow,.hh24-w-lead) { color:var(--hh24-w-text); text-shadow:none; }
.hh24-wedding-page:is([data-preset="romantic"],[data-preset="botanical"]) .hh24-w-hero.media-background .hh24-w-button { border-color:var(--hh24-w-primary); background:var(--hh24-w-primary); color:var(--hh24-w-on-primary,#fff); }
.hh24-wedding-page .hh24-w-section.bg-dark,
.hh24-wedding-page .hh24-w-section.bg-dark .hh24-w-section-eyebrow,
.hh24-wedding-page .hh24-w-section.bg-dark .hh24-w-copy,
.hh24-wedding-page .hh24-w-section.bg-dark .hh24-w-copy :is(p,li,strong,em,a),
.hh24-wedding-page .hh24-w-section.bg-dark .hh24-w-contact a,
.hh24-wedding-page .hh24-w-section.bg-dark :is(h2,h3,h4,label,small) { color:var(--hh24-w-on-text,#fff); }
.hh24-wedding-page .hh24-w-section.bg-dark .hh24-w-section-eyebrow { opacity:.82; }
.hh24-wedding-page .hh24-w-section.bg-dark .hh24-w-contact a { border-color:color-mix(in srgb,var(--hh24-w-on-text,#fff) 54%,transparent); text-decoration-color:color-mix(in srgb,var(--hh24-w-on-text,#fff) 68%,transparent); }
.hh24-wedding-page .hh24-w-section.bg-dark .hh24-w-button { border-color:var(--hh24-w-on-text,#fff); background:var(--hh24-w-on-text,#fff); color:var(--hh24-w-text); }
.hh24-module-story:not(.has-media) .hh24-w-wrap { grid-template-columns:minmax(360px,.95fr) minmax(0,1.05fr); gap:clamp(46px,6vw,82px); }
.hh24-module-story:not(.has-media) h2 { max-width:100%; font-size:clamp(40px,4vw,58px); }
.hh24-preview-bar + .hh24-w-navigation { top:70px; }

@media (max-width:800px) {
	.hh24-module-story:not(.has-media) .hh24-w-wrap { display:block; }
	.hh24-wedding-page .hh24-module-intro .hh24-smart-title.is-long { max-width:100%; font-size:clamp(34px,9.5vw,45px); }
	.hh24-wedding-page:is([data-preset="romantic"],[data-preset="botanical"]) .hh24-w-hero.media-background .hh24-w-wrap {
		width:calc(100% - 30px);
		max-width:620px;
		margin:auto;
		padding:30px 20px;
		border-radius:140px 140px 22px 22px;
		background:color-mix(in srgb,var(--hh24-w-bg) 86%,transparent);
	}
	.hh24-preview-bar + .hh24-w-navigation { top:70px; }
}

/* 0.15.16: accessible mobile menu, optional hero reading surface and portrait assets. */
.hh24-w-nav-toggle,
.hh24-w-mobile-overlay { display:none; }

@media (max-width:800px) {
	.hh24-w-navigation,
	.hh24-wedding-page[data-preset="romantic"] .hh24-w-navigation,
	.hh24-wedding-page[data-preset="floral"] .hh24-w-navigation {
		position:sticky;
		top:0;
		min-height:72px;
		flex-wrap:nowrap;
		gap:16px;
		padding:8px 18px;
		border-bottom:1px solid var(--hh24-w-line);
		background:color-mix(in srgb,var(--hh24-w-bg) 96%,transparent);
		backdrop-filter:blur(18px);
	}
	.hh24-preview-bar + .hh24-w-navigation { top:70px; }
	.hh24-w-navigation .hh24-w-monogram.has-custom-logo { width:82px; height:54px; }
	.hh24-w-navigation.is-collapsible .hh24-w-nav-toggle {
		display:grid;
		width:48px;
		height:48px;
		margin-left:auto;
		padding:13px 11px;
		place-content:center;
		gap:5px;
		border:1px solid var(--hh24-w-line);
		border-radius:50%;
		background:color-mix(in srgb,var(--hh24-w-bg) 88%,#fff);
		color:var(--hh24-w-text);
		box-shadow:0 8px 24px rgba(29,22,18,.07);
		cursor:pointer;
	}
	.hh24-w-nav-toggle span { display:block; width:20px; height:1.5px; border-radius:99px; background:currentColor; transition:transform .2s ease,opacity .2s ease; }
	.hh24-w-navigation.is-open .hh24-w-nav-toggle span:nth-child(1) { transform:translateY(6.5px) rotate(45deg); }
	.hh24-w-navigation.is-open .hh24-w-nav-toggle span:nth-child(2) { opacity:0; }
	.hh24-w-navigation.is-open .hh24-w-nav-toggle span:nth-child(3) { transform:translateY(-6.5px) rotate(-45deg); }
	.hh24-w-navigation.is-collapsible > .hh24-w-nav-links {
		position:absolute;
		top:calc(100% + 1px);
		right:12px;
		left:12px;
		display:grid;
		width:auto;
		max-height:calc(100svh - 96px);
		gap:0;
		overflow:auto;
		padding:12px 20px 18px;
		border:1px solid var(--hh24-w-line);
		border-top:0;
		border-radius:0 0 22px 22px;
		background:color-mix(in srgb,var(--hh24-w-bg) 98%,#fff);
		box-shadow:0 22px 50px rgba(29,22,18,.14);
		opacity:0;
		visibility:hidden;
		transform:translateY(-10px);
		transition:opacity .18s ease,transform .18s ease,visibility 0s;
		pointer-events:none;
	}
	.hh24-w-navigation.is-collapsible.is-open > .hh24-w-nav-links { opacity:1; visibility:visible; transform:translateY(0); transition-delay:0s; pointer-events:auto; }
	.hh24-w-navigation.is-collapsible > .hh24-w-nav-links a {
		min-height:50px;
		max-width:none;
		justify-content:flex-start;
		border-bottom:1px solid var(--hh24-w-line);
		font-size:11px;
	}
	.hh24-w-navigation.is-collapsible > .hh24-w-nav-links a:last-child { border-bottom:0; }
	.hh24-w-navigation.is-collapsible > .hh24-w-nav-links a::after { display:none; }
	.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-nav-toggle { border-color:rgba(255,255,255,.22); background:#202020; color:#fff; }
	.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-navigation.is-collapsible > .hh24-w-nav-links { border-color:rgba(255,255,255,.16); background:#151515; }
	.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-navigation.is-collapsible > .hh24-w-nav-links a { border-color:rgba(255,255,255,.14); color:#fff; }

	.hh24-w-hero.has-mobile-overlay .hh24-w-mobile-overlay {
		position:absolute;
		z-index:2;
		inset:0;
		display:block;
		pointer-events:none;
	}
	.hh24-w-hero.has-mobile-overlay.mobile-overlay-light .hh24-w-mobile-overlay {
		background:linear-gradient(180deg,transparent 0 18%,color-mix(in srgb,var(--hh24-w-bg) var(--hh24-mobile-overlay-soft),transparent) 47%,color-mix(in srgb,var(--hh24-w-bg) var(--hh24-mobile-overlay),transparent) 72%,var(--hh24-w-bg) 100%);
	}
	.hh24-w-hero.has-mobile-overlay.mobile-overlay-dark .hh24-w-mobile-overlay {
		background:linear-gradient(180deg,transparent 0 18%,color-mix(in srgb,#080808 var(--hh24-mobile-overlay-soft),transparent) 47%,color-mix(in srgb,#080808 var(--hh24-mobile-overlay),transparent) 72%,#080808 100%);
	}
	.hh24-w-hero.has-mobile-overlay .hh24-w-wrap { z-index:3; }
	.hh24-w-hero.has-mobile-overlay.mobile-overlay-light :is(h1,.hh24-w-eyebrow,.hh24-w-lead) { color:var(--hh24-w-text)!important; text-shadow:none; }
	.hh24-w-hero.has-mobile-overlay.mobile-overlay-light .hh24-w-button { border-color:var(--hh24-w-primary); background:var(--hh24-w-primary); color:var(--hh24-w-on-primary,#fff); }
	.hh24-w-hero.has-mobile-overlay.mobile-overlay-dark :is(h1,.hh24-w-eyebrow,.hh24-w-lead) { color:#fff!important; text-shadow:0 2px 24px rgba(0,0,0,.32); }
	.hh24-w-hero.has-mobile-overlay.mobile-overlay-dark .hh24-w-button { border-color:#fff; background:#fff; color:#111; }
	.hh24-w-hero.has-mobile-overlay.mobile-overlay-dark .hh24-w-hero-logo { padding:10px; border-radius:10px; background:rgba(255,255,255,.94); box-shadow:0 10px 28px rgba(0,0,0,.18); }
	.hh24-w-hero.has-mobile-overlay.mobile-overlay-dark .hh24-w-hero-logo :is(svg,img) { filter:none; }

	.hh24-wedding-page .hh24-w-hero:not(.has-media) {
		background-image:url('/wp-content/plugins/hh24-core/assets/images/templates/romantic-mobile-720.webp');
		background-image:image-set(url('/wp-content/plugins/hh24-core/assets/images/templates/romantic-mobile-720.avif') type('image/avif') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/romantic-mobile-1440.avif') type('image/avif') 2x,url('/wp-content/plugins/hh24-core/assets/images/templates/romantic-mobile-720.webp') type('image/webp') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/romantic-mobile-1440.webp') type('image/webp') 2x);
		background-position:center top;
	}
	.hh24-wedding-page[data-preset="editorial"] .hh24-w-hero:not(.has-media) { background-image:url('/wp-content/plugins/hh24-core/assets/images/templates/editorial-mobile-720.webp'); background-image:image-set(url('/wp-content/plugins/hh24-core/assets/images/templates/editorial-mobile-720.avif') type('image/avif') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/editorial-mobile-1440.avif') type('image/avif') 2x,url('/wp-content/plugins/hh24-core/assets/images/templates/editorial-mobile-720.webp') type('image/webp') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/editorial-mobile-1440.webp') type('image/webp') 2x); }
	.hh24-wedding-page[data-preset="botanical"] .hh24-w-hero:not(.has-media) { background-image:url('/wp-content/plugins/hh24-core/assets/images/templates/botanical-mobile-720.webp'); background-image:image-set(url('/wp-content/plugins/hh24-core/assets/images/templates/botanical-mobile-720.avif') type('image/avif') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/botanical-mobile-1440.avif') type('image/avif') 2x,url('/wp-content/plugins/hh24-core/assets/images/templates/botanical-mobile-720.webp') type('image/webp') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/botanical-mobile-1440.webp') type('image/webp') 2x); }
	.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-hero:not(.has-media) { background-image:url('/wp-content/plugins/hh24-core/assets/images/templates/minimal-luxe-mobile-720.webp'); background-image:image-set(url('/wp-content/plugins/hh24-core/assets/images/templates/minimal-luxe-mobile-720.avif') type('image/avif') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/minimal-luxe-mobile-1440.avif') type('image/avif') 2x,url('/wp-content/plugins/hh24-core/assets/images/templates/minimal-luxe-mobile-720.webp') type('image/webp') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/minimal-luxe-mobile-1440.webp') type('image/webp') 2x); }
	.hh24-wedding-page[data-preset="mediterranean"] .hh24-w-hero:not(.has-media) { background-image:url('/wp-content/plugins/hh24-core/assets/images/templates/mediterranean-mobile-720.webp'); background-image:image-set(url('/wp-content/plugins/hh24-core/assets/images/templates/mediterranean-mobile-720.avif') type('image/avif') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/mediterranean-mobile-1440.avif') type('image/avif') 2x,url('/wp-content/plugins/hh24-core/assets/images/templates/mediterranean-mobile-720.webp') type('image/webp') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/mediterranean-mobile-1440.webp') type('image/webp') 2x); }
	.hh24-wedding-page[data-preset="floral"] .hh24-w-hero:not(.has-media) { background-image:url('/wp-content/plugins/hh24-core/assets/images/templates/floral-garden-mobile-720.webp'); background-image:image-set(url('/wp-content/plugins/hh24-core/assets/images/templates/floral-garden-mobile-720.avif') type('image/avif') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/floral-garden-mobile-1440.avif') type('image/avif') 2x,url('/wp-content/plugins/hh24-core/assets/images/templates/floral-garden-mobile-720.webp') type('image/webp') 1x,url('/wp-content/plugins/hh24-core/assets/images/templates/floral-garden-mobile-1440.webp') type('image/webp') 2x); }
}
.hh24-w-language{position:fixed;right:18px;bottom:18px;z-index:120;display:flex;padding:4px;border:1px solid color-mix(in srgb,var(--hh24-w-text) 18%,transparent);border-radius:999px;background:color-mix(in srgb,var(--hh24-w-bg) 94%,transparent);box-shadow:0 10px 30px #0002;backdrop-filter:blur(12px)}
.hh24-w-language a{display:grid;min-width:38px;min-height:38px;place-items:center;border-radius:999px;color:var(--hh24-w-text);font:700 13px/1 var(--hh24-w-body);text-decoration:none}
.hh24-w-language a[aria-current="page"]{background:var(--hh24-w-primary);color:var(--hh24-w-on-primary,#fff)}

/* 0.17.4: one premium, resilient output system for every wedding template. */
.hh24-wedding-page .hh24-w-navigation {
	min-height:82px;
	padding:10px max(24px,calc((100vw - 1380px)/2));
	border-top:0;
	background:color-mix(in srgb,var(--hh24-w-bg) 96%,transparent);
	box-shadow:0 8px 32px rgba(24,18,15,.045);
}
.hh24-wedding-page .hh24-w-navigation.is-minimal { position:sticky; }
.hh24-wedding-page .hh24-w-navigation .hh24-w-monogram.has-custom-logo { width:98px; min-width:98px; height:58px; }
.hh24-wedding-page .hh24-w-navigation .hh24-w-monogram.has-custom-logo :is(svg,img) { width:100%; height:100%; max-height:58px; object-fit:contain; }
.hh24-wedding-page .hh24-w-navigation .hh24-w-nav-links { min-width:0; justify-content:flex-end; gap:clamp(15px,1.8vw,28px); }
.hh24-wedding-page .hh24-w-navigation .hh24-w-nav-links a {
	max-width:none;
	overflow:visible;
	color:var(--hh24-w-text);
	font-size:12px;
	font-weight:650;
	letter-spacing:.1em;
	line-height:1.3;
	text-align:center;
	text-overflow:clip;
	text-transform:uppercase;
	white-space:nowrap;
}
.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-navigation { background:#151515; }
.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-navigation .hh24-w-nav-links a { color:#fff; }

/* WordPress and the private preview each receive an exact sticky offset. */
.hh24-wedding-page .hh24-preview-bar { top:0; min-height:40px; }
.hh24-wedding-page .hh24-preview-bar + .hh24-w-navigation { top:var(--hh24-preview-height,40px)!important; }
.hh24-wedding-page.admin-bar:not(.has-private-preview) .hh24-w-navigation { top:32px!important; }
.hh24-wedding-page.admin-bar .hh24-preview-bar { top:32px; }
.hh24-wedding-page.admin-bar .hh24-preview-bar + .hh24-w-navigation { top:calc(32px + var(--hh24-preview-height,40px))!important; }

/* Default photographs never inherit decorative circles or oversized shapes. */
.hh24-wedding-page:is([data-preset="editorial"],[data-preset="romantic"],[data-preset="botanical"],[data-preset="minimal_luxe"],[data-preset="mediterranean"]) .hh24-w-hero:not(.has-media)::before { display:none!important; }
.hh24-wedding-page:is([data-preset="editorial"],[data-preset="romantic"],[data-preset="botanical"],[data-preset="minimal_luxe"],[data-preset="mediterranean"]) .hh24-w-hero:not(.has-media)::after {
	z-index:0;
	inset:0;
	display:block;
	width:auto;
	height:auto;
	border:0;
	border-radius:0;
	content:"";
}
.hh24-wedding-page:is([data-preset="editorial"],[data-preset="romantic"],[data-preset="botanical"],[data-preset="minimal_luxe"],[data-preset="mediterranean"]) .hh24-w-hero:not(.has-media) .hh24-w-wrap {
	position:relative;
	z-index:2;
	width:min(43%,620px);
	max-width:620px;
	margin:0;
	padding:clamp(32px,4vw,58px);
	border:1px solid rgba(255,255,255,.62);
	background:color-mix(in srgb,var(--hh24-w-bg) 88%,transparent);
	box-shadow:0 24px 70px rgba(34,25,20,.13);
	backdrop-filter:blur(10px);
}
.hh24-wedding-page:is([data-preset="editorial"],[data-preset="botanical"],[data-preset="mediterranean"]) .hh24-w-hero:not(.has-media) .hh24-w-wrap { margin-right:auto; margin-left:5%; text-align:left; }
.hh24-wedding-page[data-preset="romantic"] .hh24-w-hero:not(.has-media) .hh24-w-wrap { margin-right:5%; margin-left:auto; border-radius:210px 210px 24px 24px; text-align:center; }
.hh24-wedding-page[data-preset="botanical"] .hh24-w-hero:not(.has-media) .hh24-w-wrap { border-color:color-mix(in srgb,var(--hh24-w-primary) 28%,transparent); border-radius:180px 180px 24px 24px; }
.hh24-wedding-page[data-preset="mediterranean"] .hh24-w-hero:not(.has-media) .hh24-w-wrap { border-radius:24px 180px 24px 24px; }
.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-hero:not(.has-media) .hh24-w-wrap { margin-right:5%; margin-left:auto; border-color:rgba(255,255,255,.22); border-radius:0; background:rgba(10,10,10,.74); color:#fff; }
.hh24-wedding-page[data-preset="editorial"] .hh24-w-hero:not(.has-media)::after { background:linear-gradient(90deg,rgba(255,252,248,.83) 0 28%,rgba(255,252,248,.24) 57%,transparent 78%); }
.hh24-wedding-page[data-preset="romantic"] .hh24-w-hero:not(.has-media)::after { background:linear-gradient(90deg,transparent 0 40%,rgba(251,247,240,.25) 55%,rgba(251,247,240,.84) 100%); }
.hh24-wedding-page[data-preset="botanical"] .hh24-w-hero:not(.has-media)::after { background:linear-gradient(90deg,rgba(246,248,243,.86) 0 30%,rgba(246,248,243,.24) 60%,transparent 78%); }
.hh24-wedding-page[data-preset="mediterranean"] .hh24-w-hero:not(.has-media)::after { background:linear-gradient(90deg,rgba(255,248,236,.86) 0 29%,rgba(255,248,236,.2) 58%,transparent 78%); }
.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-hero:not(.has-media)::after { background:linear-gradient(90deg,rgba(7,7,7,.05) 0 42%,rgba(7,7,7,.38) 61%,rgba(7,7,7,.82) 100%); }
.hh24-wedding-page:is([data-preset="editorial"],[data-preset="romantic"],[data-preset="botanical"],[data-preset="mediterranean"]) .hh24-w-hero:not(.has-media) :is(h1,.hh24-w-eyebrow,.hh24-w-lead) { color:var(--hh24-w-text); text-shadow:none; }
.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-hero:not(.has-media) :is(h1,.hh24-w-eyebrow,.hh24-w-lead) { color:#fff; text-shadow:none; }
.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-hero-logo { display:inline-grid; padding:14px 18px; border-radius:2px; background:rgba(255,255,255,.9); }
.hh24-wedding-page .hh24-w-hero h1 { font-size:clamp(50px,6.1vw,78px); line-height:.98; }
.hh24-wedding-page[data-preset="editorial"] .hh24-w-hero h1 {
	max-width:100%;
	font-size:clamp(46px,4.6vw,68px);
	line-height:.98;
}
.hh24-wedding-page .hh24-w-hero-logo { margin-bottom:clamp(24px,3vw,42px); }
.hh24-wedding-page .hh24-ai-image-label {
	position:absolute;
	z-index:4;
	right:14px;
	bottom:12px;
	padding:4px 7px;
	border:1px solid rgba(255,255,255,.5);
	border-radius:999px;
	background:#242424;
	color:#fff;
	font:600 9px/1.2 var(--hh24-w-body);
	letter-spacing:.04em;
	backdrop-filter:blur(6px);
}

/* Uploaded background images receive the same legible content surfaces. */
.hh24-wedding-page:is([data-preset="romantic"],[data-preset="botanical"],[data-preset="mediterranean"],[data-preset="floral"]) .hh24-w-hero.media-background .hh24-w-wrap {
	width:min(43%,620px);
	max-width:620px;
	padding:clamp(32px,4vw,58px);
	background:color-mix(in srgb,var(--hh24-w-bg) 94%,transparent);
	box-shadow:0 24px 70px rgba(34,25,20,.13);
	backdrop-filter:blur(10px);
}
.hh24-wedding-page[data-preset="floral"] .hh24-w-hero.media-background .hh24-w-wrap { margin-right:6%; margin-left:auto; border:1px solid color-mix(in srgb,var(--hh24-w-accent) 32%,transparent); border-radius:220px 220px 24px 24px; text-align:center; }
.hh24-wedding-page[data-preset="floral"] .hh24-w-hero.media-background :is(h1,.hh24-w-eyebrow,.hh24-w-lead) { color:var(--hh24-w-text); text-shadow:none; }
.hh24-wedding-page[data-preset="mediterranean"] .hh24-w-hero.media-background .hh24-w-wrap { margin-right:auto; margin-left:5%; border-radius:24px 180px 24px 24px; }
.hh24-wedding-page[data-preset="mediterranean"] .hh24-w-hero.media-background :is(h1,.hh24-w-eyebrow,.hh24-w-lead) { color:var(--hh24-w-text); text-shadow:none; }

/* Long section titles keep their words intact and use the available card width. */
.hh24-wedding-page .hh24-module-story:not(.has-media) .hh24-w-wrap { grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr); }
.hh24-wedding-page .hh24-module-story:not(.has-media) h2 { max-width:17ch; font-size:clamp(36px,3.25vw,50px); overflow-wrap:normal; hyphens:none; word-break:normal; }

@media (max-width:1180px) {
	.hh24-wedding-page .hh24-w-navigation.is-collapsible .hh24-w-nav-toggle {
		display:grid;
		width:48px;
		height:48px;
		margin-left:auto;
		padding:13px 11px;
		place-content:center;
		gap:5px;
		border:1px solid var(--hh24-w-line);
		border-radius:50%;
		background:color-mix(in srgb,var(--hh24-w-bg) 90%,#fff);
		color:var(--hh24-w-text);
		box-shadow:0 8px 24px rgba(29,22,18,.07);
		cursor:pointer;
	}
	.hh24-wedding-page .hh24-w-navigation.is-collapsible > .hh24-w-nav-links {
		position:absolute;
		top:calc(100% + 1px);
		right:12px;
		left:12px;
		display:grid;
		width:auto;
		justify-content:stretch;
		max-height:calc(100svh - 110px);
		gap:0;
		overflow:auto;
		padding:12px 20px 18px;
		border:1px solid var(--hh24-w-line);
		border-top:0;
		border-radius:0 0 22px 22px;
		background:color-mix(in srgb,var(--hh24-w-bg) 98%,#fff);
		box-shadow:0 22px 50px rgba(29,22,18,.14);
		opacity:0;
		visibility:hidden;
		transform:translateY(-10px);
		transition:opacity .18s ease,transform .18s ease,visibility 0s;
		pointer-events:none;
	}
	.hh24-wedding-page .hh24-w-navigation.is-collapsible.is-open > .hh24-w-nav-links { opacity:1; visibility:visible; transform:translateY(0); transition-delay:0s; pointer-events:auto; }
	.hh24-wedding-page .hh24-w-navigation.is-collapsible > .hh24-w-nav-links a { min-height:52px; justify-content:flex-start; border-bottom:1px solid var(--hh24-w-line); font-size:12px; text-align:left; white-space:normal; }
	.hh24-wedding-page .hh24-w-navigation.is-collapsible > .hh24-w-nav-links a:last-child { border-bottom:0; }
	.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-navigation.is-collapsible .hh24-w-nav-toggle { border-color:rgba(255,255,255,.24); background:#202020; color:#fff; }
	.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-navigation.is-collapsible > .hh24-w-nav-links { border-color:rgba(255,255,255,.16); background:#151515; }
	.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-navigation.is-collapsible > .hh24-w-nav-links a { border-color:rgba(255,255,255,.14); color:#fff; }
}

@media (max-width:800px) {
	.hh24-wedding-page.admin-bar:not(.has-private-preview) .hh24-w-navigation { top:46px!important; }
	.hh24-wedding-page.admin-bar .hh24-preview-bar { top:46px; }
	.hh24-wedding-page.admin-bar .hh24-preview-bar + .hh24-w-navigation { top:calc(46px + var(--hh24-preview-height,40px))!important; }
	.hh24-wedding-page:is([data-preset="editorial"],[data-preset="romantic"],[data-preset="botanical"],[data-preset="minimal_luxe"],[data-preset="mediterranean"]) .hh24-w-hero:not(.has-media) .hh24-w-wrap,
	.hh24-wedding-page:is([data-preset="romantic"],[data-preset="botanical"],[data-preset="mediterranean"],[data-preset="floral"]) .hh24-w-hero.media-background .hh24-w-wrap {
		width:calc(100% - 30px);
		max-width:620px;
		margin:auto;
		padding:30px 22px;
		border-radius:24px;
		text-align:center;
	}
	.hh24-wedding-page[data-preset="romantic"] .hh24-w-hero:not(.has-media) .hh24-w-wrap,
	.hh24-wedding-page[data-preset="botanical"] .hh24-w-hero:not(.has-media) .hh24-w-wrap,
	.hh24-wedding-page[data-preset="floral"] .hh24-w-hero.media-background .hh24-w-wrap { border-radius:120px 120px 22px 22px; }
	.hh24-wedding-page .hh24-w-hero h1 { font-size:clamp(39px,11vw,52px); }
	.hh24-wedding-page[data-preset="editorial"] .hh24-w-hero h1 { font-size:clamp(38px,11vw,52px); }
	.hh24-wedding-page .hh24-module-story:not(.has-media) h2 { max-width:100%; font-size:clamp(36px,9.5vw,47px); }
}

/* Long custom section titles collapse gracefully instead of being clipped. */
.hh24-wedding-page .hh24-w-navigation.is-collapsible.is-overflowing .hh24-w-nav-toggle {
	display:grid;
	width:48px;
	height:48px;
	margin-left:auto;
	padding:13px 11px;
	place-content:center;
	gap:5px;
	border:1px solid var(--hh24-w-line);
	border-radius:50%;
	background:color-mix(in srgb,var(--hh24-w-bg) 90%,#fff);
	color:var(--hh24-w-text);
	box-shadow:0 8px 24px rgba(29,22,18,.07);
	cursor:pointer;
}
.hh24-wedding-page .hh24-w-navigation.is-collapsible.is-overflowing > .hh24-w-nav-links {
	position:absolute;
	top:calc(100% + 1px);
	right:12px;
	left:12px;
	display:grid;
	width:auto;
	justify-content:stretch;
	max-height:calc(100svh - 110px);
	gap:0;
	overflow:auto;
	padding:12px 20px 18px;
	border:1px solid var(--hh24-w-line);
	border-top:0;
	border-radius:0 0 22px 22px;
	background:color-mix(in srgb,var(--hh24-w-bg) 98%,#fff);
	box-shadow:0 22px 50px rgba(29,22,18,.14);
	opacity:0;
	visibility:hidden;
	transform:translateY(-10px);
	transition:opacity .18s ease,transform .18s ease,visibility 0s;
	pointer-events:none;
}
.hh24-wedding-page .hh24-w-navigation.is-collapsible.is-overflowing.is-open > .hh24-w-nav-links { opacity:1; visibility:visible; transform:translateY(0); transition-delay:0s; pointer-events:auto; }
.hh24-wedding-page .hh24-w-navigation.is-collapsible.is-overflowing > .hh24-w-nav-links a { min-height:52px; justify-content:flex-start; border-bottom:1px solid var(--hh24-w-line); font-size:12px; text-align:left; white-space:normal; }
.hh24-wedding-page .hh24-w-navigation.is-collapsible.is-overflowing > .hh24-w-nav-links a:last-child { border-bottom:0; }
.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-navigation.is-collapsible.is-overflowing .hh24-w-nav-toggle { border-color:rgba(255,255,255,.24); background:#202020; color:#fff; }
.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-navigation.is-collapsible.is-overflowing > .hh24-w-nav-links { border-color:rgba(255,255,255,.16); background:#151515; }
.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-navigation.is-collapsible.is-overflowing > .hh24-w-nav-links a { border-color:rgba(255,255,255,.14); color:#fff; }

/* 0.17.6: shared contrast and spacing rules for every public wedding template. */
.hh24-wedding-page .hh24-module-intro h2 {
	width:100%;
	max-width:18ch;
	margin-right:auto;
	margin-left:auto;
	text-align:center;
}
.hh24-wedding-page .hh24-module-intro .hh24-smart-title.is-long { max-width:21ch; }
.hh24-wedding-page .hh24-w-hero .hh24-smart-title {
	overflow-wrap:normal;
	hyphens:none;
	word-break:normal;
}
.hh24-wedding-page .hh24-w-hero .hh24-smart-title.is-long {
	max-width:18ch;
	margin-right:auto;
	margin-left:auto;
	font-size:clamp(42px,5vw,64px);
	line-height:1;
}
.hh24-wedding-page .hh24-w-hero .hh24-smart-title.is-very-long {
	max-width:19ch;
	margin-right:auto;
	margin-left:auto;
	font-size:clamp(36px,4.4vw,54px);
	line-height:1.02;
}
.hh24-wedding-page .hh24-w-section.bg-dark .hh24-w-countdown :is(strong,small),
.hh24-wedding-page .hh24-w-section.bg-dark .hh24-w-schedule :is(time,h3,p) { color:var(--hh24-w-on-text,#fff); }
.hh24-wedding-page .hh24-w-schedule article { gap:64px; }
.hh24-wedding-page .hh24-w-section.variant-minimal .hh24-w-schedule { --hh24-w-schedule-axis:104px; }
.hh24-wedding-page .hh24-w-section.variant-minimal .hh24-w-schedule::before,
.hh24-wedding-page .hh24-w-section.variant-minimal .hh24-w-schedule article::before { left:var(--hh24-w-schedule-axis); }
.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-hero-logo {
	padding:12px;
	border-radius:12px;
	background:rgba(255,255,255,.94);
	box-shadow:0 12px 34px rgba(0,0,0,.18);
}
.hh24-wedding-page[data-preset="minimal_luxe"] :is(.hh24-w-monogram.has-custom-logo,.hh24-w-hero-logo) svg,
.hh24-wedding-page .hh24-w-section.bg-dark :is(.hh24-w-section-logo,.hh24-w-footer-logo) svg { filter:none; }
.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-monogram.has-custom-logo,
.hh24-wedding-page .hh24-w-section.bg-dark :is(.hh24-w-section-logo,.hh24-w-footer-logo) {
	padding:8px;
	border-radius:9px;
	background:rgba(255,255,255,.94);
	box-shadow:0 10px 30px rgba(0,0,0,.16);
}
.hh24-wedding-page .hh24-w-section.bg-dark .hh24-private-note,
.hh24-wedding-page .hh24-w-section.bg-dark .hh24-rsvp-card { color:#2b2826; }
.hh24-wedding-page .hh24-w-section.bg-dark:is(.variant-card,.variant-editorial) > .hh24-w-wrap,
.hh24-wedding-page .hh24-w-section.bg-dark:is(.variant-card,.variant-editorial) > .hh24-w-wrap :is(.hh24-w-section-eyebrow,.hh24-w-copy,h2,h3,h4,p,label,legend,li,strong,small) { color:var(--hh24-w-text); }
.hh24-wedding-page .hh24-w-section.bg-dark .hh24-private-note :is(i,strong,small),
.hh24-wedding-page .hh24-w-section.bg-dark .hh24-rsvp-card :is(p,label,legend,li,strong,small) { color:inherit; }
.hh24-wedding-page .hh24-w-section.bg-dark .hh24-rsvp-card .hh24-rsvp-status.is-error { color:#9b2c2c; }
.hh24-wedding-page .hh24-w-section.bg-dark .hh24-rsvp-card .hh24-rsvp-status.is-success { color:#28593a; }

@media (max-width:800px) {
	.hh24-wedding-page .hh24-w-schedule article { gap:34px; }
}

@media (max-width:520px) {
	.hh24-wedding-page .hh24-w-hero .hh24-smart-title.is-long { max-width:100%; font-size:clamp(36px,10.5vw,44px); }
	.hh24-wedding-page .hh24-w-hero .hh24-smart-title.is-very-long { max-width:100%; font-size:clamp(32px,9vw,40px); }
}

/* 0.19.9: the collapsible navigation keeps a visible hamburger at every
 * breakpoint at which the full link row is replaced. */
.hh24-wedding-page .hh24-w-nav-toggle span {
	display:block;
	width:20px;
	height:2px;
	border-radius:99px;
	background:currentColor;
	transition:transform .2s ease,opacity .2s ease;
}
.hh24-wedding-page .hh24-w-navigation.is-open .hh24-w-nav-toggle span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.hh24-wedding-page .hh24-w-navigation.is-open .hh24-w-nav-toggle span:nth-child(2) { opacity:0; }
/* RSVP stays reachable even when the complete section menu is collapsed. */
.hh24-wedding-page .hh24-w-navigation > .hh24-w-nav-rsvp { display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; min-height:44px; padding:10px 16px; margin-left:auto; border:1px solid currentColor; border-radius:6px; color:var(--hh24-w-text); background:var(--hh24-w-bg); font-size:14px; line-height:1.3; font-weight:650; text-decoration:none; }
.hh24-wedding-page .hh24-w-navigation > .hh24-w-nav-rsvp:focus-visible { outline:2px solid currentColor; outline-offset:3px; }
.hh24-wedding-page .hh24-w-navigation > .hh24-w-nav-rsvp + .hh24-w-nav-toggle { margin-left:12px; flex-shrink:0; }
.hh24-wedding-page[data-preset="minimal_luxe"] .hh24-w-navigation > .hh24-w-nav-rsvp { color:#fff; background:#151515; }
.hh24-wedding-page .hh24-w-navigation.is-collapsible.is-open > .hh24-w-nav-links { max-height:var(--hh24-nav-available-height,calc(100svh - 170px)); }
@media(max-width:620px) {
 .hh24-wedding-page .hh24-w-navigation { padding-inline:12px; gap:8px; }
 .hh24-wedding-page .hh24-w-navigation .hh24-w-monogram.has-custom-logo { width:64px; min-width:64px; }
 .hh24-wedding-page .hh24-w-navigation > .hh24-w-nav-rsvp { padding-inline:12px; }
 .hh24-wedding-page .hh24-w-navigation > .hh24-w-nav-rsvp + .hh24-w-nav-toggle { margin-left:0; }
}
.hh24-wedding-page .hh24-w-navigation.is-open .hh24-w-nav-toggle span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

@media (max-width:520px) {
	.hh24-wedding-page .hh24-w-schedule article { gap:46px; }
	.hh24-wedding-page .hh24-w-section.variant-minimal .hh24-w-schedule { --hh24-w-schedule-axis:98px; }
}

/* Final focus guard: the blue outer ring and white separation remain visible
 * on both bright stationery and dark image/colour sections. */
.hh24-wedding-page :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible {
	outline:3px solid #005fcc!important;
	outline-offset:3px;
	box-shadow:0 0 0 2px #fff!important;
}

/* Template demos and private previews keep the same intentional image slots
 * as the designer until the couple replaces them with owned media. */
.hh24-w-gallery-placeholder {
	display:grid;
	min-height:300px;
	place-items:center;
	align-content:center;
	gap:10px;
	padding:24px;
	border:1px solid color-mix(in srgb,var(--hh24-w-primary) 13%,transparent);
	border-radius:var(--hh24-w-radius);
	background:linear-gradient(145deg,color-mix(in srgb,var(--hh24-w-accent) 10%,#fff),color-mix(in srgb,var(--hh24-w-bg) 88%,#fff));
	color:color-mix(in srgb,var(--hh24-w-text) 68%,var(--hh24-w-bg));
	text-align:center;
}
.hh24-w-gallery-placeholder:first-child { grid-row:span 2; min-height:616px; }
.hh24-w-gallery-placeholder i { font-size:24px; }
.hh24-w-gallery-placeholder small { font-size:12px; font-weight:650; letter-spacing:.08em; text-transform:uppercase; }
.hh24-w-section.variant-grid .hh24-w-gallery-placeholder { grid-row:auto; min-height:340px; }
.hh24-w-section.variant-filmstrip .hh24-w-gallery-placeholder { grid-row:auto; min-height:320px; border:12px solid #fff; border-radius:0; box-shadow:0 18px 44px rgba(30,25,20,.1); transform:rotate(-1deg); }
.hh24-template-demo .hh24-preview-bar a { color:#fff; font-weight:700; }
.hh24-template-demo .hh24-rsvp-form :is(input,select,textarea) { font-size:16px; }
.hh24-template-demo-footer .hh24-w-footer-couple small { margin-top:8px; color:color-mix(in srgb,var(--hh24-w-text) 72%,var(--hh24-w-bg)); }
.hh24-template-demo-footer .hh24-w-footer-credit .hh24-w-button { color:var(--hh24-w-on-text,#fff); text-decoration:none; }

@media (max-width:900px) {
	.hh24-w-gallery-placeholder,
	.hh24-w-gallery-placeholder:first-child,
	.hh24-w-section.variant-grid .hh24-w-gallery-placeholder,
	.hh24-w-section.variant-filmstrip .hh24-w-gallery-placeholder { grid-row:auto; min-height:300px; transform:none; }
	.hh24-w-gallery-placeholder:first-child { grid-column:1 / -1; min-height:420px; }
}

@media (max-width:620px) {
	.hh24-w-gallery-placeholder,
	.hh24-w-gallery-placeholder:first-child { grid-column:auto; min-height:300px; }
}
/* Additional wedding sections. */
.hh24-w-info-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:32px; text-align:left; }
.hh24-w-info-grid article { min-width:0; padding:28px; border:1px solid color-mix(in srgb,currentColor 22%,transparent); border-radius:12px; overflow-wrap:anywhere; }
.hh24-w-info-grid article a { display:block; margin-top:10px; color:inherit; }
.hh24-w-info-icon { display:grid; place-items:center; width:48px; height:48px; border-radius:50%; background:#ffffff80; font-size:26px; margin-bottom:20px; }
.hh24-module-quote .hh24-w-copy { font-size:clamp(24px,3vw,40px); font-style:italic; }
.hh24-w-quote-source { display:block; margin-top:22px; }
.variant-alternating .hh24-w-schedule { display:block; position:relative; }
.variant-alternating .hh24-w-schedule::before { content:''; position:absolute; top:0; bottom:0; left:50%; width:1px; background:currentColor; opacity:.3; }
.variant-alternating .hh24-w-schedule article { width:50%; box-sizing:border-box; padding:28px; display:block; }
.variant-alternating .hh24-w-schedule article:nth-child(even) { margin-left:50%; text-align:left; }
.variant-alternating .hh24-w-schedule article:nth-child(odd) { text-align:right; }
@media(max-width:600px) {
 .hh24-w-info-grid { grid-template-columns:1fr; }
 .variant-alternating .hh24-w-schedule article { width:100%; margin-left:0; text-align:left; }
 .variant-alternating .hh24-w-schedule::before { left:0; }
}

/* Keep text and photography readable together, including tablet widths. */
.hh24-wedding-page .hh24-w-hero.variant-romantic.media-side > .hh24-w-wrap {
 padding-top:120px;
}
@media(max-width:520px) {
 .hh24-wedding-page .hh24-w-hero.variant-romantic.media-side > .hh24-w-wrap {
  padding:88px 24px 48px;
  border-radius:80px 80px 0 0;
 }
}
.hh24-wedding-page :is(.hh24-w-hero,.hh24-w-section).media-side {
 grid-template-columns:repeat(2,minmax(0,640px));
}
.hh24-wedding-page :is(.hh24-w-hero,.hh24-w-section).media-side > .hh24-w-wrap {
 min-width:0; width:100%; max-width:100%; margin:0; box-sizing:border-box;
}
.hh24-wedding-page :is(h1,h2,h3,.hh24-w-copy,.hh24-w-location p) {
 overflow-wrap:anywhere; hyphens:auto;
}
.hh24-wedding-page .hh24-w-location { min-width:0; max-width:100%; box-sizing:border-box; padding:clamp(20px,3vw,40px); }
@media(max-width:1100px) {
 .hh24-wedding-page :is(.hh24-w-hero,.hh24-w-section).media-side {
  grid-template-columns:minmax(0,680px); gap:32px; padding-inline:24px; justify-content:center;
 }
 .hh24-wedding-page :is(.hh24-w-hero,.hh24-w-section).media-side > .hh24-w-media {
  width:100%; min-width:0; min-height:0; height:clamp(280px,65vw,520px); margin-inline:auto;
 }
}
@media(max-width:520px) {
 .hh24-wedding-page :is(.hh24-w-hero,.hh24-w-section).media-side { padding-inline:16px; gap:24px; }
 .hh24-wedding-page .hh24-w-section:is(.variant-card,.variant-editorial) > .hh24-w-wrap { padding:30px 20px; }
 .hh24-wedding-page .hh24-w-location { padding:24px 16px; }
 .hh24-wedding-page .hh24-w-location h3 { font-size:clamp(24px,7vw,30px); }
}

/* Visual QA: prevent narrow galleries and nested RSVP padding. */
@media (max-width:620px) {
 .hh24-w-gallery,
 .hh24-w-section.variant-grid .hh24-w-gallery,
 .hh24-w-section.variant-filmstrip .hh24-w-gallery { grid-template-columns:minmax(0,1fr); }
 .hh24-w-gallery > * { min-width:0; max-width:100%; box-sizing:border-box; }
 .hh24-wedding-page .hh24-rsvp-card { padding:18px 12px; }
 .hh24-rsvp-form fieldset.hh24-rsvp-choice { margin-inline:0; padding:10px; min-width:0; }
 .hh24-rsvp-choice label { padding:12px 8px; }
}

/* Optional recommendation and gift cards preserve existing free text. */
.hh24-w-recommendations { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); gap:20px; margin-block:24px; text-align:left; }
.hh24-w-recommendations article { min-width:0; padding:24px; border:1px solid currentColor; border-radius:12px; overflow-wrap:anywhere; }
.hh24-w-recommendations h3 { margin:0 0 12px; font-size:clamp(20px,1.8em,30px); line-height:1.2; }
.hh24-w-recommendations p { margin:10px 0; white-space:pre-line; }
.hh24-w-recommendations :is(a,.hh24-recommendation-link) { display:inline-block; color:inherit; margin-top:12px; padding-block:10px; text-decoration:underline; text-underline-offset:3px; }
.hh24-w-calendar-download { display:inline-flex; align-items:center; min-height:44px; max-width:100%; margin-top:8px; padding:6px 0; color:inherit; font:600 13px/1.45 var(--hh24-w-body,sans-serif); text-decoration:underline; text-underline-offset:3px; overflow-wrap:anywhere; }
.hh24-w-calendar-download:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
.hh24-w-calendar-timezone { display:block; font:400 12px/1.45 var(--hh24-w-body,sans-serif); color:inherit; }

/* Scoped mobile timeline correction: preserve cards and desktop alignment. */
@media (max-width:520px) {
 .hh24-wedding-page .hh24-w-section.variant-minimal .hh24-w-schedule { --hh24-w-schedule-axis:70px; }
 .hh24-wedding-page .hh24-w-section.variant-minimal .hh24-w-schedule article { grid-template-columns:54px minmax(0,1fr); gap:33px; }
}
/* Long unbroken content may wrap; ordinary words retain normal word breaking. */
.hh24-wedding-page :is(.hh24-w-hero,.hh24-w-section) :is(h1,h2,h3,h4,p,li,label,legend,summary,a,.hh24-w-copy,.hh24-smart-title),
.hh24-wedding-page .hh24-module-story:not(.has-media) h2,
.hh24-rsvp-page :is(h1,h2,h3,h4,p,label,legend,li,a) {
  overflow-wrap:anywhere;
  word-break:normal;
}
.hh24-wedding-page .hh24-w-schedule article > *,
.hh24-wedding-page .hh24-w-faq details,
.hh24-wedding-page .hh24-rsvp-form > *,
.hh24-rsvp-page .hh24-rsvp-form > * {
  min-width:0;
}

@media (max-width:600px) {
  .hh24-wedding-page .hh24-w-section.variant-cards .hh24-w-schedule {
    grid-template-columns:minmax(0,1fr);
  }
  .hh24-wedding-page .variant-alternating .hh24-w-schedule article:nth-child(n) {
    width:100%;
    margin-left:0;
    text-align:left;
  }
}

/* A timeline is an open sequence, not a stack of marketing cards. */
.hh24-wedding-page .hh24-w-section:not(.variant-cards) .hh24-w-schedule article { background:transparent; border-radius:0; box-shadow:none; }
.hh24-wedding-page .hh24-w-schedule time { font-size:14px; line-height:1.5; font-variant-numeric:tabular-nums; letter-spacing:.02em; }
.hh24-wedding-page .hh24-w-section:is(.variant-timeline,.variant-minimal) .hh24-w-schedule time { text-align:right; padding-right:8px; white-space:nowrap; }


.hh24-wedding-page .hh24-w-schedule .hh24-schedule-symbol { display:block; margin:0 0 12px; font-size:32px; line-height:1; color:inherit; }

 .hh24-wedding-page .hh24-w-section.align-center > .hh24-w-wrap > :is(h1,h2,.hh24-w-copy,.hh24-w-countdown) { margin-inline:auto; text-align:center; }
.hh24-wedding-page .hh24-w-section.align-left > .hh24-w-wrap > :is(h1,h2,.hh24-w-copy) { margin-inline:0 auto; text-align:left; }
.hh24-wedding-page .hh24-w-section.align-right > .hh24-w-wrap > :is(h1,h2,.hh24-w-copy) { margin-inline:auto 0; text-align:right; }

.hh24-wedding-page .hh24-w-section .hh24-w-wrap > h2 { hyphens:auto; word-break:normal; }
@media(max-width:620px) {
 .hh24-wedding-page .hh24-w-section .hh24-w-wrap > h2.is-long { max-width:100%; }
}

/* Layout controls: optional overrides preserve existing templates. */
.hh24-wedding-page[style*="--layout-heading-color:"] .hh24-w-wrap > h2, .hh24-wedding-page[style*="--layout-section-heading-color:"] .hh24-w-wrap > h2, .hh24-wedding-page[style*="--layout-section-heading-background:"] .hh24-w-wrap > h2 { color:var(--layout-section-heading-color,var(--layout-heading-color,inherit))!important; background-color:var(--layout-section-heading-background,transparent)!important; }
.hh24-wedding-page[data-uppercase="yes"] .hh24-w-wrap > h2 {text-transform:uppercase!important;}
.hh24-wedding-page[data-custom-heading-size="yes"] .hh24-w-wrap > h2 {font-size:var(--layout-heading-size)!important;line-height:1.15!important;}
.hh24-wedding-page[data-custom-body-size="yes"] .hh24-w-section :is(p:not([class*="eyebrow"]),li,textarea,input,label,select) {font-size:var(--layout-body-size)!important;line-height:1.6;}
.hh24-wedding-page[style*="--layout-link-color:"] .hh24-w-section a:not([class*="button"]):not([class*="btn"]) {color:var(--layout-link-color,inherit)!important;}
.hh24-wedding-page[data-section-layout="classic"] .hh24-w-section:not(.hh24-module-hero) {border-bottom:1px solid color-mix(in srgb,currentColor 16%,transparent)!important;}
.hh24-wedding-page[data-section-layout="seamless"] .hh24-w-section:not(.hh24-module-hero) {border:0!important;box-shadow:none!important;}
.hh24-wedding-page[data-section-layout="alternating"] .hh24-w-section:nth-of-type(even):not(.bg-dark):not(.media-background):not(.hh24-module-hero) {background-color:color-mix(in srgb,var(--hh24-w-bg) 92%, var(--hh24-w-primary))!important;}
.hh24-wedding-page[data-image-shape="square"] :is(.hh24-module-location,.hh24-module-accommodation):not(.media-background) .hh24-w-media {clip-path:inset(0)!important;border-radius:0!important;aspect-ratio:1;object-fit:cover;}
.hh24-wedding-page[data-image-shape="circle"] :is(.hh24-module-location,.hh24-module-accommodation):not(.media-background) .hh24-w-media {clip-path:circle(50%)!important;border-radius:0!important;aspect-ratio:1;object-fit:cover;}
.hh24-wedding-page[data-image-shape="hexagon"] :is(.hh24-module-location,.hh24-module-accommodation):not(.media-background) .hh24-w-media {clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%)!important;border-radius:0!important;aspect-ratio:1;object-fit:cover;}
.hh24-wedding-page[data-image-shape="octagon"] :is(.hh24-module-location,.hh24-module-accommodation):not(.media-background) .hh24-w-media {clip-path:polygon(30% 0,70% 0,100% 30%,100% 70%,70% 100%,30% 100%,0 70%,0 30%)!important;border-radius:0!important;aspect-ratio:1;object-fit:cover;}
.hh24-wedding-page[data-image-shape="heart"] :is(.hh24-module-location,.hh24-module-accommodation):not(.media-background) .hh24-w-media {clip-path:polygon(50% 94%,8% 52%,0 30%,7% 12%,23% 5%,39% 9%,50% 22%,61% 9%,77% 5%,93% 12%,100% 30%,92% 52%)!important;border-radius:0!important;aspect-ratio:1;object-fit:cover;}

.hh24-wedding-page[style*="--layout-button-color:"] .hh24-w-button {background:var(--layout-button-color)!important;}
.hh24-wedding-page[style*="--layout-button-text-color:"] .hh24-w-button {color:var(--layout-button-text-color)!important;}

.hh24-wedding-page .media-pos-left {--hh24-focus-default:0% 50%;--hh24-focus-default-x:0%;--hh24-focus-default-y:50%;}
.hh24-wedding-page .media-pos-right {--hh24-focus-default:100% 50%;--hh24-focus-default-x:100%;--hh24-focus-default-y:50%;}
.hh24-wedding-page .media-pos-top {--hh24-focus-default:50% 0%;--hh24-focus-default-x:50%;--hh24-focus-default-y:0%;}
.hh24-wedding-page .media-pos-bottom {--hh24-focus-default:50% 100%;--hh24-focus-default-x:50%;--hh24-focus-default-y:100%;}
.hh24-wedding-page [style*="--hh24-focus"] > .hh24-w-media {object-position:var(--hh24-focus-x,var(--hh24-focus-default-x,50%)) var(--hh24-focus-y,var(--hh24-focus-default-y,50%))!important;transform-origin:var(--hh24-focus-x,50%) var(--hh24-focus-y,50%);}
.hh24-calendar-summary {margin-top:36px;text-align:center;}
.hh24-calendar-summary .hh24-w-calendar-download {font:inherit;font-size:13px;text-decoration:underline;text-underline-offset:4px;}
@media(max-width:760px){.hh24-wedding-page [style*="--hh24-focus"] > .hh24-w-media {object-position:var(--hh24-focus-mobile-x,var(--hh24-focus-x,var(--hh24-focus-default-x,50%))) var(--hh24-focus-mobile-y,var(--hh24-focus-y,var(--hh24-focus-default-y,50%)))!important;}}

/* Identical viewport geometry in the public page and the embedded editor. */
html.hh24-w-document {overflow-y:scroll;scrollbar-gutter:stable}
html.hh24-w-document::-webkit-scrollbar {width:15px}
html.hh24-w-document::-webkit-scrollbar-thumb {background:#aaa;border:4px solid transparent;background-clip:padding-box;border-radius:8px}
@media(max-width:760px){html.hh24-w-document {scrollbar-width:none;scrollbar-gutter:auto}html.hh24-w-document::-webkit-scrollbar{width:0}}

html.hh24-w-document .hh24-w-nav-links::-webkit-scrollbar{width:15px}
html.hh24-w-document .hh24-w-nav-links::-webkit-scrollbar-thumb{background:#aaa;border:4px solid transparent;background-clip:padding-box;border-radius:8px}
@media(max-width:760px){html.hh24-w-document .hh24-w-nav-links{scrollbar-width:none}html.hh24-w-document .hh24-w-nav-links::-webkit-scrollbar{width:0}}

html.hh24-w-document .hh24-w-nav-links{scrollbar-gutter:stable}
@media(max-width:760px){html.hh24-w-document .hh24-w-nav-links{scrollbar-gutter:auto}}

/* Give short information headings enough room without changing split layouts. */
.hh24-wedding-page .hh24-w-section:is(.hh24-module-quote,.hh24-module-info) > .hh24-w-wrap > h2 {
  max-width:min(100%,24ch);
  hyphens:manual;
  overflow-wrap:anywhere;
}
/* Clear package context outside the fictional wedding content. */
.hh24-demo-package-note{max-width:760px;margin:24px auto;padding:24px;border:1px solid currentColor;border-radius:12px;text-align:left;font:400 14px/1.65 var(--hh24-w-body,sans-serif)}
.hh24-demo-package-note strong{font-weight:700}.hh24-demo-package-note p{margin:10px 0}.hh24-demo-package-note a{text-decoration:underline}
.hh24-template-demo-bar{flex-wrap:wrap;height:auto;min-height:36px;line-height:1.5;padding:8px 16px}

/* Two original gallery photos fill the row without empty masonry cells. */
.hh24-wedding-page .hh24-w-section .hh24-w-gallery:has(>img:nth-of-type(2)):not(:has(>img:nth-of-type(3))){grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.hh24-wedding-page .hh24-w-section .hh24-w-gallery:has(>img:nth-of-type(2)):not(:has(>img:nth-of-type(3))) > img{grid-row:auto;grid-column:auto;width:100%;height:auto;aspect-ratio:3/2;margin-top:0;object-fit:cover}
@media(max-width:600px){.hh24-wedding-page .hh24-w-section .hh24-w-gallery:has(>img:nth-of-type(2)):not(:has(>img:nth-of-type(3))){grid-template-columns:minmax(0,1fr)}}

/* Script faces need their natural connections and room for ascenders. */
.hh24-wedding-page:is([data-heading-font="allura"],[data-heading-font="great_vibes"],[data-heading-font="dancing_script"]) :is(.hh24-w-hero,.hh24-w-section) :is(.hh24-smart-title,h1,h2,h3) {
 letter-spacing:normal;
 line-height:1.3;
}


.hh24-rsvp-members fieldset,.hh24-rsvp-custom-questions fieldset {min-width:0;border:1px solid currentColor;border-radius:12px;padding:20px;margin:18px 0;}
.hh24-rsvp-members legend,.hh24-rsvp-custom-questions legend {padding:0 8px;font-weight:600;}

.hh24-gift-reservation {display:grid;gap:14px;margin-top:20px;} .hh24-gift-reservation small {font-size:14px;line-height:1.5;}

/* Preserve native hidden semantics inside RSVP layouts. */
.hh24-rsvp-shell [hidden]{display:none!important}

.hh24-gift-reservation button{justify-self:start;max-width:100%;width:auto}
.hh24-gift-reservation [hidden]{display:none!important}

/* Household fields stack their labels; checkbox labels stay inline. */
.hh24-rsvp-form .hh24-rsvp-members fieldset label{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;text-align:left}
.hh24-rsvp-form .hh24-rsvp-members fieldset label:has(input[type="checkbox"]){display:flex;flex-direction:row-reverse;justify-content:flex-end}
.hh24-rsvp-form .hh24-rsvp-members :is(input,select,textarea){min-width:0;box-sizing:border-box}

/* Consent-first location and accommodation maps. */
.hh24-map{width:100%;min-width:0;max-width:100%;margin:1.25rem 0;overflow-wrap:anywhere}
.hh24-map .hh24-map-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:inherit;gap:.75rem 1rem}
.hh24-map button,.hh24-map .hh24-map-actions a{font:inherit;font-size:1rem;line-height:1.4;letter-spacing:normal;text-transform:none;min-height:44px;max-width:100%;padding:.65rem 1rem;border:1px solid currentColor;border-radius:6px;background:transparent;color:inherit;cursor:pointer;text-align:center;white-space:normal;overflow-wrap:anywhere}
.hh24-map .hh24-map-actions a{display:inline-flex;align-items:center;text-decoration:none}
.hh24-map button:focus-visible,.hh24-map a:focus-visible{outline:3px solid currentColor;outline-offset:4px}
.hh24-map .hh24-map-status{font-size:.875rem;line-height:1.5;margin:.5rem 0}
.hh24-map .hh24-map-status:empty{display:none}
.hh24-map .hh24-map-panel{margin-top:1rem;width:100%;min-width:0;border:1px solid #d3d8d5;border-radius:12px;overflow:hidden;background:#f4f6f3;color:#28342e;text-align:center}
.hh24-map .hh24-map-consent{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:clamp(16px,3vw,28px)}
.hh24-map .hh24-map-consent strong{font-size:1.15rem;line-height:1.4}
.hh24-map .hh24-map-consent p{font-size:.9375rem;line-height:1.6;margin:0;color:inherit}
.hh24-map .hh24-map-consent a{font-size:.875rem;color:inherit;text-decoration:underline}
.hh24-map .hh24-map-panel [data-load-map]{background:#28342e;color:#fff;border-color:#28342e}
.hh24-map .hh24-map-panel iframe{display:block;width:100%;height:320px;min-height:200px;border:0}
.hh24-map .hh24-map-panel [data-close-map]{margin:12px}
.hh24-map [hidden]{display:none!important}
.hh24-map .screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hh24-map .hh24-map-copy-fallback{display:block;box-sizing:border-box;width:100%;max-width:100%;font:inherit;padding:.75rem;background:#fff;color:#28342e}
@media(max-width:480px){.hh24-map .hh24-map-panel iframe{height:260px}.hh24-map .hh24-map-actions{gap:.5rem}}
/* First screen: reserve real navigation/preview space, allow long content to grow. */
body.hh24-wedding-page[data-preset] .hh24-w-hero {
 --hh24-hero-space:calc(100svh - var(--hh24-hero-offset, 104px));
 box-sizing:border-box;min-height:var(--hh24-hero-space);height:auto;
 padding-block:clamp(20px,4svh,40px);align-content:center;
}
body.hh24-wedding-page[data-preset] .hh24-w-hero > .hh24-w-wrap {min-height:0}
body.hh24-wedding-page[data-preset] .hh24-w-hero .hh24-w-hero-logo {margin-bottom:16px}
body.hh24-wedding-page[data-preset] .hh24-w-hero .hh24-w-hero-logo :is(svg,img) {
 width:auto;max-width:100%;height:clamp(90px,20svh,190px);max-height:190px;object-fit:contain;
}
body.hh24-wedding-page[data-preset] .hh24-w-hero.media-side > .hh24-w-media {
 height:max(160px,calc(var(--hh24-hero-space) - 80px));min-height:0;max-height:720px;
}
body.hh24-wedding-page[data-preset] .hh24-w-hero.variant-romantic > .hh24-w-wrap {
 padding-block:clamp(48px,8svh,80px) 32px;
}
@media(max-width:1100px) {
 body.hh24-wedding-page[data-preset] .hh24-w-hero.media-side {gap:20px}
 body.hh24-wedding-page[data-preset] .hh24-w-hero.media-side > .hh24-w-media {height:clamp(140px,24svh,240px)}
 body.hh24-wedding-page[data-preset] .hh24-w-hero .hh24-w-hero-logo :is(svg,img) {height:clamp(80px,14svh,120px)}
 body.hh24-wedding-page[data-preset] .hh24-w-hero .hh24-w-lead {margin-block:16px}
}
body.hh24-wedding-page[data-preset] .hh24-w-hero {padding-block:16px}
@media(max-width:1100px) {
 body.hh24-wedding-page[data-preset] .hh24-w-hero.media-side > .hh24-w-media {
  height:clamp(80px,calc(var(--hh24-hero-space) - var(--hh24-hero-copy-height,400px) - 52px),240px);
  object-position:var(--hh24-focus-mobile-x,var(--hh24-focus-x,50%)) var(--hh24-focus-mobile-y,var(--hh24-focus-y,50%))!important;
 }
}
/* Wedding sections share a viewport rhythm, without capping content height. */
body.hh24-wedding-page[data-preset] .hh24-w-section {
 --hh24-section-space:calc(100svh - var(--hh24-section-offset,82px));
 box-sizing:border-box;min-height:var(--hh24-section-space);height:auto;
 display:grid;align-content:center;align-items:center;
 padding-block:clamp(24px,5svh,48px);
 scroll-margin-top:var(--hh24-section-offset,82px);
}
body.hh24-wedding-page[data-preset] .hh24-w-section.media-side > .hh24-w-media {
 min-height:0;height:clamp(180px,calc(var(--hh24-section-space) - 96px),680px);
}
@media(max-width:1100px) {
 body.hh24-wedding-page[data-preset] .hh24-w-section.media-side > .hh24-w-media,
 body.hh24-wedding-page[data-preset] .hh24-w-section.media-top > .hh24-w-media {
  height:clamp(180px,30svh,300px);min-height:0;
 }
}
/* Keep the first line inside the curved frame, particularly on tablets. */
body.hh24-wedding-page[data-preset] .hh24-w-hero.variant-romantic > .hh24-w-wrap,
body.hh24-wedding-page[data-preset="floral"] .hh24-w-hero.media-background > .hh24-w-wrap {
 border-top-left-radius:clamp(80px,16vw,160px);
 border-top-right-radius:clamp(80px,16vw,160px);
 padding-top:clamp(80px,10vw,112px);
 padding-inline:clamp(24px,6vw,64px);
 box-sizing:border-box;
}
