.wedding-public-page {
  --wedding-navy: #17324f;
  --wedding-navy-deep: #10273d;
  --wedding-gold: #d2a94e;
  --wedding-gold-dark: #a87d25;
  --wedding-cream: #f8f5ef;
  --wedding-ink: #18222d;
  --wedding-muted: #5d6873;
  --wedding-line: #dce1e4;
  background: #fff;
  color: var(--wedding-ink);
  font-family: "DM Sans", var(--sans);
}
.wedding-public-page h1,
.wedding-public-page h2,
.wedding-public-page h3,
.wedding-public-page .brand,
.wedding-public-page .public-footer-logo {
  font-family: "Fraunces", Georgia, serif;
  letter-spacing: 0;
}
.wedding-public-page .container { max-width: 1180px; }
.wedding-public-page .swa-public-footer { margin-top: 0; }
.wedding-kicker {
  margin: 0 0 12px;
  color: var(--wedding-gold-dark);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.wedding-hub-hero {
  padding: 82px 0;
  background: var(--wedding-navy-deep);
  color: #fff;
}
.wedding-hub-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(340px, .85fr);
  gap: 70px;
  align-items: center;
}
.wedding-hub-hero h1,
.wedding-article-hero h1 {
  margin: 0 0 20px;
  color: #fff;
  font-size: 54px;
  line-height: 1.08;
}
.wedding-hero-lede,
.wedding-article-lede {
  max-width: 760px;
  margin: 0;
  color: #dfe8ef;
  font-size: 18px;
  line-height: 1.75;
}
.wedding-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.wedding-btn-gold {
  border: 1px solid var(--wedding-gold);
  border-radius: 8px;
  background: var(--wedding-gold);
  color: #172230;
}
.wedding-btn-gold:hover { border-color: #e3bd64; background: #e3bd64; color: #172230; }
.wedding-btn-outline {
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 8px;
  background: transparent;
  color: #fff;
}
.wedding-btn-outline:hover { background: #fff; color: var(--wedding-navy); }
.wedding-quick-writer {
  padding: 26px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 8px;
  background: rgba(255,255,255,.08);
}
.wedding-quick-writer h2 { margin: 0 0 18px; color: #fff; font-size: 28px; }
.wedding-quick-writer .field label { color: #fff; }
.wedding-quick-writer .field input { border-color: rgba(255,255,255,.28); border-radius: 6px; }
.wedding-quick-writer .btn { width: 100%; border-radius: 6px; background: var(--wedding-gold) !important; color: #172230 !important; }
.wedding-trust-band { border-bottom: 1px solid var(--wedding-line); }
.wedding-trust-band .container { display: grid; grid-template-columns: repeat(3, 1fr); }
.wedding-trust-band .container > div { padding: 25px 28px; border-right: 1px solid var(--wedding-line); }
.wedding-trust-band .container > div:first-child { border-left: 1px solid var(--wedding-line); }
.wedding-trust-band strong { display: block; margin-bottom: 5px; color: var(--wedding-navy); font-family: "Fraunces", Georgia, serif; font-size: 18px; }
.wedding-trust-band span { color: var(--wedding-muted); font-size: 13px; line-height: 1.55; }
.wedding-section { padding: 80px 0; }
.wedding-library-section,
.wedding-faq-section { background: var(--wedding-cream); }
.wedding-section-heading { max-width: 780px; margin-bottom: 34px; }
.wedding-section-heading h2,
.wedding-guide-layout h2 { margin: 0 0 12px; color: var(--wedding-navy); font-size: 40px; line-height: 1.15; }
.wedding-section-heading > p:not(.wedding-kicker) { color: var(--wedding-muted); line-height: 1.7; }
.wedding-featured-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; }
.wedding-featured-card {
  display: flex;
  min-height: 330px;
  padding: 24px;
  flex-direction: column;
  border: 1px solid var(--wedding-line);
  border-radius: 8px;
  background: #fff;
}
.wedding-featured-card > span { color: var(--wedding-gold-dark); font-size: 11px; font-weight: 700; text-transform: uppercase; }
.wedding-featured-card h3 { margin: 12px 0; font-size: 23px; line-height: 1.25; }
.wedding-featured-card h3 a { color: var(--wedding-navy); }
.wedding-featured-card p { color: var(--wedding-muted); line-height: 1.65; }
.wedding-card-meta { margin-top: auto; padding-top: 15px; color: #42566a; font-size: 13px; }
.wedding-text-link { display: inline-flex; margin-top: 15px; align-items: center; gap: 8px; color: var(--wedding-navy); font-weight: 700; }
.wedding-library-group + .wedding-library-group { margin-top: 42px; }
.wedding-library-group > h3 { margin: 0 0 16px; color: var(--wedding-navy); font-size: 25px; }
.wedding-library-links { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.wedding-library-links a {
  display: flex;
  min-height: 102px;
  padding: 17px;
  flex-direction: column;
  justify-content: center;
  border: 1px solid var(--wedding-line);
  border-radius: 8px;
  background: #fff;
}
.wedding-library-links strong { color: var(--wedding-navy); line-height: 1.35; }
.wedding-library-links span { margin-top: 7px; color: var(--wedding-muted); font-size: 12px; }
.wedding-library-links a:hover { border-color: var(--wedding-gold); text-decoration: none; }
.wedding-library-empty { padding: 48px 24px; text-align: center; border: 1px solid var(--wedding-line); background: #fff; }
.wedding-library-empty i { color: var(--wedding-gold-dark); font-size: 38px; }
.wedding-library-empty h3 { color: var(--wedding-navy); }
.wedding-guide-layout { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(300px,.8fr); gap: 70px; align-items: start; }
.wedding-steps { margin: 28px 0 0; padding: 0; list-style: none; }
.wedding-steps li { display: grid; grid-template-columns: 42px 1fr; gap: 16px; padding: 20px 0; border-top: 1px solid var(--wedding-line); }
.wedding-steps li > span { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 50%; background: var(--wedding-navy); color: #fff; font-weight: 700; }
.wedding-steps h3 { margin: 0 0 5px; color: var(--wedding-navy); font-size: 19px; }
.wedding-steps p { margin: 0; color: var(--wedding-muted); line-height: 1.65; }
.wedding-guide-note { padding: 28px; border-left: 4px solid var(--wedding-gold); background: var(--wedding-cream); }
.wedding-guide-note i { color: var(--wedding-gold-dark); font-size: 27px; }
.wedding-guide-note h3 { color: var(--wedding-navy); }
.wedding-guide-note p { color: var(--wedding-muted); line-height: 1.7; }
.wedding-faq-list { max-width: 880px; }
.wedding-faq-list details { border-top: 1px solid #d8d4ca; }
.wedding-faq-list details:last-child { border-bottom: 1px solid #d8d4ca; }
.wedding-faq-list summary { padding: 20px 0; color: var(--wedding-navy); font-weight: 700; cursor: pointer; }
.wedding-faq-list details p { margin: -6px 0 20px; color: var(--wedding-muted); line-height: 1.75; }
.wedding-final-cta { padding: 76px 0; text-align: center; background: var(--wedding-navy-deep); color: #fff; }
.wedding-final-cta h2 { max-width: 780px; margin: 0 auto 14px; color: #fff; font-size: 42px; }
.wedding-final-cta p:not(.wedding-kicker) { max-width: 720px; margin: 0 auto 26px; color: #dce6ed; line-height: 1.7; }

.wedding-breadcrumb { padding: 14px 0; border-bottom: 1px solid var(--wedding-line); background: #fff; font-size: 13px; }
.wedding-breadcrumb .container { display: flex; align-items: center; gap: 10px; overflow: hidden; }
.wedding-breadcrumb a { color: var(--wedding-navy); font-weight: 600; white-space: nowrap; }
.wedding-breadcrumb span { overflow: hidden; color: var(--wedding-muted); text-overflow: ellipsis; white-space: nowrap; }
.wedding-breadcrumb i { color: #9aa5af; font-size: 9px; }
.wedding-article-hero { padding: 68px 0; background: var(--wedding-navy-deep); color: #fff; }
.wedding-article-hero-grid { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(310px,.65fr); gap: 70px; align-items: center; }
.wedding-article-hero h1 { font-size: 48px; }
.wedding-article-meta { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 25px; color: #cfdae3; font-size: 13px; }
.wedding-article-meta i { margin-right: 6px; color: #edcb7c; }
.wedding-article-cta { padding: 25px; border-left: 3px solid var(--wedding-gold); background: rgba(255,255,255,.08); }
.wedding-article-cta h2 { margin: 0 0 10px; color: #fff; font-size: 27px; }
.wedding-article-cta p { color: #dce6ed; line-height: 1.65; }
.wedding-article-cta .btn { display: block; margin: 18px 0 12px; text-align: center; border-radius: 6px; background: var(--wedding-gold) !important; color: #172230 !important; }
.wedding-article-cta span { color: #c7d2db; font-size: 12px; line-height: 1.5; }
.wedding-article-toolbar { border-bottom: 1px solid var(--wedding-line); background: #fff; }
.wedding-article-toolbar .container { display: flex; min-height: 62px; align-items: center; justify-content: space-between; gap: 20px; }
.wedding-article-toolbar > .container > span { color: var(--wedding-muted); font-size: 13px; }
.wedding-article-toolbar button { padding: 9px 12px; border: 0; background: transparent; color: var(--wedding-navy); font-weight: 700; cursor: pointer; }
.wedding-article-toolbar button:hover { background: var(--wedding-cream); }
.wedding-article-section { padding: 64px 0 80px; }
.wedding-article-layout { display: grid; grid-template-columns: minmax(0,1fr) 310px; gap: 58px; align-items: start; }
.wedding-sermon-paper { min-width: 0; }
.wedding-sermon-paper-head { display: flex; margin-bottom: 28px; padding-bottom: 14px; align-items: center; justify-content: space-between; border-bottom: 2px solid var(--wedding-gold); color: var(--wedding-muted); font-size: 12px; text-transform: uppercase; }
.wedding-sermon-content { color: #202932; font-family: Georgia, "Times New Roman", serif; font-size: 19px; line-height: 1.85; }
.wedding-sermon-content h2 { margin: 38px 0 12px; color: var(--wedding-navy); font-size: 27px; line-height: 1.3; }
.wedding-sermon-content h2:first-child { margin-top: 0; font-size: 34px; }
.wedding-sermon-content p { margin: 0 0 20px; }
.wedding-sermon-review-note { display: grid; grid-template-columns: 28px 1fr; gap: 12px; margin-top: 42px; padding: 20px; border: 1px solid #d9e1e5; background: #f5f8f9; }
.wedding-sermon-review-note i { color: var(--wedding-gold-dark); font-size: 20px; }
.wedding-sermon-review-note p { margin: 0; color: #44515d; line-height: 1.65; }
.wedding-article-sidebar { position: sticky; top: 92px; }
.wedding-article-sidebar section { padding: 22px 0; border-top: 1px solid var(--wedding-line); }
.wedding-article-sidebar section:first-child { padding-top: 0; border-top: 0; }
.wedding-article-sidebar h2 { margin: 0 0 12px; color: var(--wedding-navy); font-size: 25px; }
.wedding-article-sidebar p { color: var(--wedding-muted); line-height: 1.7; }
.wedding-article-sidebar section > a { display: block; padding: 11px 0; border-bottom: 1px solid var(--wedding-line); color: var(--wedding-navy); font-weight: 700; }
.wedding-sensitive-public { margin-top: 18px; padding: 15px; border-left: 3px solid var(--wedding-gold); background: var(--wedding-cream); color: #4a5158; font-size: 13px; line-height: 1.65; }

.wedding-admin-layout { display: grid; grid-template-columns: minmax(280px,.65fr) minmax(600px,1.35fr); gap: 18px; margin-top: 18px; align-items: start; }
.wedding-target-panel { position: sticky; top: 18px; max-height: calc(100vh - 36px); overflow: hidden; }
.wedding-target-list { max-height: calc(100vh - 190px); overflow-y: auto; border-top: 1px solid var(--line); }
.wedding-admin-summary { margin-bottom: 12px; color: var(--muted); font-size: 12px; }
.wedding-target-item { display: block; width: 100%; padding: 14px 10px; text-align: left; border: 0; border-bottom: 1px solid var(--line); background: #fff; cursor: pointer; }
.wedding-target-item:hover,
.wedding-target-item.active { background: #f5f8fa; }
.wedding-target-item strong { display: block; margin: 5px 0; color: var(--navy); line-height: 1.35; }
.wedding-target-item > span:last-child { color: var(--muted); font-size: 11px; }
.wedding-target-state { display: inline-block; color: #6c7480; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.wedding-target-state.generated { color: #856710; }
.wedding-target-state.published { color: #207247; }
.wedding-editor-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.wedding-editor-heading h2 { margin: 10px 0 4px; }
.wedding-editor-status.generated { background: #fff4c7; color: #735c0d; }
.wedding-editor-status.published { background: #def4e8; color: #19613c; }
.wedding-sensitivity-note { margin: 18px 0; border-left: 4px solid #bf8a20; }
.wedding-medium-textarea { min-height: 130px !important; }
.wedding-sermon-textarea { min-height: 620px !important; font-family: Georgia, "Times New Roman", serif !important; font-size: 16px !important; line-height: 1.65; }
.wedding-generation-actions { display: flex; margin: 20px 0; align-items: center; gap: 15px; }
.wedding-admin-loading { margin: 18px 0; }
.wedding-editor-divider { margin: 30px 0; border: 0; border-top: 1px solid var(--line); }
.wedding-faq-row { margin-bottom: 12px; padding: 16px; background: #f8fafb; box-shadow: none; }
.wedding-editor-footer { display: flex; margin-top: 20px; justify-content: flex-end; gap: 10px; }

@media (max-width: 980px) {
  .wedding-hub-hero-grid,
  .wedding-article-hero-grid,
  .wedding-guide-layout,
  .wedding-article-layout,
  .wedding-admin-layout { grid-template-columns: 1fr; }
  .wedding-featured-grid,
  .wedding-library-links { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .wedding-article-sidebar,
  .wedding-target-panel { position: static; max-height: none; }
  .wedding-target-list { max-height: 420px; }
}
@media (max-width: 680px) {
  .wedding-hub-hero,
  .wedding-article-hero { padding: 54px 0; }
  .wedding-hub-hero h1,
  .wedding-article-hero h1 { font-size: 38px; }
  .wedding-trust-band .container,
  .wedding-featured-grid,
  .wedding-library-links { grid-template-columns: 1fr; }
  .wedding-trust-band .container > div { border-left: 1px solid var(--wedding-line); border-bottom: 1px solid var(--wedding-line); }
  .wedding-section { padding: 58px 0; }
  .wedding-section-heading h2,
  .wedding-guide-layout h2,
  .wedding-final-cta h2 { font-size: 32px; }
  .wedding-article-toolbar .container { align-items: flex-start; flex-direction: column; padding-top: 12px; padding-bottom: 12px; }
  .wedding-article-toolbar button { padding-left: 0; }
  .wedding-sermon-content { font-size: 17px; }
  .wedding-editor-heading,
  .wedding-generation-actions,
  .wedding-editor-footer { align-items: stretch; flex-direction: column; }
}

@media print {
  .wedding-article-page .swa-public-header,
  .wedding-article-page .swa-public-footer,
  .wedding-breadcrumb,
  .wedding-article-hero,
  .wedding-article-toolbar,
  .wedding-article-sidebar,
  .wedding-related-section,
  .wedding-faq-section,
  .wedding-final-cta,
  .wedding-sermon-review-note { display: none !important; }
  .wedding-article-section { padding: 0; }
  .wedding-article-layout { display: block; }
  .wedding-sermon-paper { max-width: none; }
  .wedding-sermon-content { color: #000; font-size: 12pt; line-height: 1.55; }
}
