/* Botanical Floral — photo-forward, ornamented, warm rounded shapes */
body.template-floral {
  --accent: #c98a6b;
  --ink: #3d3128;
  --muted: #8a7a6a;
  --bg: #fff9f7;
  font-family: 'Open Sans', sans-serif;
}

body.template-floral h1,
body.template-floral #cover h1,
body.template-floral section h2 { font-family: 'Cormorant Garamond', serif; font-weight: 600; }

body.template-floral .ornament { width: 90px; height: 30px; color: var(--accent); margin: 0 auto 1rem; display: block; }
body.template-floral .ornament-sm { width: 60px; height: 20px; margin: 1rem auto 0; }

body.template-floral .eyebrow { letter-spacing: .18em; text-transform: uppercase; font-size: .72rem; color: var(--accent); margin-bottom: .75rem; }

body.template-floral #cover h1,
body.template-floral .hero h1 { font-size: 2.9rem; margin: 0 0 .75rem; line-height: 1.1; }
body.template-floral #cover .amp,
body.template-floral .hero .amp { display: inline-block; margin: 0 .3rem; color: var(--accent); font-style: italic; }
body.template-floral #cover .date,
body.template-floral .hero .date { font-size: 1.05rem; color: var(--muted); margin-bottom: 1.75rem; font-style: italic; }
body.template-floral #cover .cover-to { font-size: .95rem; color: var(--muted); margin-bottom: 2rem; line-height: 1.6; }
body.template-floral #cover .cover-to strong { color: var(--ink); font-size: 1.1rem; }
body.template-floral .cover-open-btn { display: inline-block; width: auto; padding: .75rem 1.9rem; border-radius: 999px; }

body.template-floral .hero-photo { max-height: 68vh; }
body.template-floral .hero-photo img { max-height: 68vh; }
body.template-floral .hero {
  min-height: 40vh; display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; padding: 3.5rem 1.25rem;
}
body.template-floral .hero-cta { display: inline-block; width: auto; padding: .75rem 1.9rem; border-radius: 999px; text-decoration: none; }
body.template-floral .add-to-calendar-link { display: block; margin-top: .85rem; font-size: .8rem; color: var(--muted); text-decoration: underline; font-style: italic; }

body.template-floral section { padding: 3rem 1.25rem; max-width: 600px; margin: 0 auto; }
body.template-floral section h2 { text-align: center; font-size: 2rem; margin-bottom: 1.75rem; }
body.template-floral section h2::before,
body.template-floral section h2::after { content: "❀"; color: var(--accent); font-size: 1.1rem; margin: 0 .5rem; vertical-align: middle; }

body.template-floral .letter-card {
  background: #fff; border-radius: 24px; padding: 2rem 1.75rem; box-shadow: 0 8px 28px rgba(160,120,90,.1);
  text-align: center;
}
body.template-floral .story { font-size: 1.05rem; font-style: italic; white-space: pre-line; }

body.template-floral .petal-list { display: flex; flex-direction: column; gap: 1.35rem; }
body.template-floral .petal-item { display: flex; gap: 1rem; align-items: flex-start; }
body.template-floral .petal-dot { color: var(--accent); font-size: 1.2rem; line-height: 1.4; }
body.template-floral .petal-item strong { display: block; font-size: 1.1rem; font-family: 'Cormorant Garamond', serif; }
body.template-floral .petal-meta { font-size: .88rem; color: var(--muted); }

body.template-floral .venue-card {
  text-align: center; background: #fff; border-radius: 24px; padding: 1.75rem; box-shadow: 0 8px 28px rgba(160,120,90,.1);
}
body.template-floral .venue-card .name { font-size: 1.25rem; font-weight: 600; font-family: 'Cormorant Garamond', serif; margin-bottom: .25rem; }
body.template-floral .venue-card .address { color: var(--muted); font-size: .92rem; margin-bottom: 1rem; }
body.template-floral .venue-card .dress-code { font-size: .88rem; color: var(--muted); }

body.template-floral .gallery-collage { display: grid; grid-template-columns: repeat(2, 1fr); gap: .75rem; }
body.template-floral .gallery-collage img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 18px; }
body.template-floral .gallery-collage img:nth-child(3n+1) { border-radius: 999px 18px 18px 18px; }
body.template-floral .gallery-collage img:nth-child(3n+2) { margin-top: 1.25rem; border-radius: 18px 18px 999px 18px; }
@media (min-width: 480px) { body.template-floral .gallery-collage { grid-template-columns: repeat(3, 1fr); } }

body.template-floral .countdown-tile { background: #fff; border-radius: 18px; box-shadow: 0 8px 28px rgba(160,120,90,.1); }

body.template-floral .rsvp-card { max-width: 460px; margin: 0 auto; background: #fff; border-radius: 24px; padding: 2rem 1.75rem; box-shadow: 0 8px 28px rgba(160,120,90,.1); }
body.template-floral .submit-btn { width: 100%; margin-top: 1.25rem; padding: .8rem; border-radius: 999px; font-size: 1rem; }

body.template-floral .wishes-list { display: flex; flex-direction: column; gap: .85rem; max-width: 460px; margin: 0 auto; }
body.template-floral .wish-card { background: #fff; border-radius: 18px; padding: 1.1rem 1.3rem; box-shadow: 0 8px 28px rgba(160,120,90,.1); }
body.template-floral .wish-head { display: flex; align-items: baseline; justify-content: space-between; gap: .5rem; margin-bottom: .35rem; }
body.template-floral .wish-head strong { font-size: 1rem; font-family: 'Cormorant Garamond', serif; }
body.template-floral .wish-attending { font-size: .7rem; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); white-space: nowrap; }
body.template-floral .wish-message { margin: 0; font-size: .92rem; white-space: pre-line; }
body.template-floral .wish-date { margin-top: .5rem; font-size: .75rem; color: var(--muted); }

@media (max-width: 420px) {
  /* At this width, 2rem section headings with the "❀" flanking marks wrap
     onto a second line for longer titles, which makes the heading look
     off-center even though text-align: center is correct. */
  body.template-floral section h2 { font-size: 1.6rem; }
}
