/*
 * Generated visual enhancements for the templates identified in
 * docs/TEMPLATE_IMAGE_VISUAL_AUDIT.md. Every rule is body-scoped so the shared
 * bundle can be loaded safely without changing any other invitation template.
 * Decorative layers never receive pointer events and intentionally sit below
 * invitation controls and customer-supplied photography.
 */

body.aile-invitation {
  --generated-surface: url("/templates/generated/aile/AIL-01-paper-texture.jpg");
  --generated-frame: url("/templates/generated/aile/AIL-02-botanical-corners.png");
  --generated-divider: url("/templates/generated/aile/AIL-03-story-divider.png");
}

body.alunan-invitation {
  --generated-surface: url("/templates/generated/alunan/ALU-01-tonal-background.jpg");
  --generated-frame: url("/templates/generated/alunan/ALU-02-floral-corners.png");
  --generated-divider: url("/templates/generated/alunan/ALU-03-arch-divider.png");
}

body.anabelle-invitation {
  --generated-hero: url("/templates/generated/anabelle/ANA-01-hero-frame.jpg");
  --generated-surface: url("/templates/generated/anabelle/ANA-02-paper-background.jpg");
  --generated-divider: url("/templates/generated/anabelle/ANA-03-wildflower-divider.png");
}

body.ashilla-invitation {
  --generated-surface: url("/templates/generated/ashilla/ASH-01-canvas-texture.jpg");
  --generated-frame: url("/templates/generated/ashilla/ASH-02-line-corners.png");
  --generated-divider: url("/templates/generated/ashilla/ASH-03-divider.png");
}

body.insan-invitation {
  --generated-surface: url("/templates/generated/insan/INS-01-handmade-paper.jpg");
  --generated-frame: url("/templates/generated/insan/INS-02-geometric-frame.png");
}

body.linda-invitation {
  --generated-surface: url("/templates/generated/linda/LIN-01-green-texture.jpg");
  --generated-frame: url("/templates/generated/linda/LIN-02-gold-corners.png");
  --generated-divider: url("/templates/generated/linda/LIN-03-gold-divider.png");
}

body.tia-invitation {
  --generated-surface: url("/templates/generated/tia/TIA-01-ivory-gold-paper.jpg");
  --generated-frame: url("/templates/generated/tia/TIA-02-blue-gold-corners.png");
  --generated-divider: url("/templates/generated/tia/TIA-03-fine-divider.png");
}

body.jeni-invitation {
  --generated-surface: url("/templates/generated/jeni/JEN-01-greige-paper.jpg");
  --generated-frame: url("/templates/generated/jeni/JEN-02-olive-corners.png");
}

body.juwita-invitation {
  --generated-surface: url("/templates/generated/juwita/JUW-01-navy-linen.jpg");
  --generated-frame: url("/templates/generated/juwita/JUW-02-copper-ornaments.png");
}

body.sekar-invitation {
  --generated-surface: url("/templates/generated/sekar/SEK-01-blush-wash.jpg");
  --generated-frame: url("/templates/generated/sekar/SEK-02-pressed-leaf-corners.png");
}

body.senandika-invitation {
  --generated-surface: url("/templates/generated/senandika/SEN-01-white-paper.jpg");
  --generated-frame: url("/templates/generated/senandika/SEN-02-terracotta-corners.png");
}

body.serlyn-invitation {
  --generated-surface: url("/templates/generated/serlyn/SER-01-navy-texture.jpg");
  --generated-frame: url("/templates/generated/serlyn/SER-02-gold-corner-linework.png");
}

/* Rasi-style long-form templates. */
body.aile-invitation .al-gate,
body.aile-invitation .al-section,
body.alunan-invitation .al-gate,
body.alunan-invitation .al-section,
body.ashilla-invitation .as-gate,
body.ashilla-invitation .as-section,
body.insan-invitation .in-gate,
body.insan-invitation .in-section,
body.linda-invitation .li-gate,
body.linda-invitation .li-section,
body.tia-invitation .ti-gate,
body.tia-invitation .ti-section,
body.jeni-invitation .jn-gate,
body.jeni-invitation .jn-section,
body.juwita-invitation .jw-gate,
body.juwita-invitation .jw-section,
body.sekar-invitation .sk-gate,
body.sekar-invitation .sk-section,
body.senandika-invitation .sn-gate,
body.senandika-invitation .sn-section,
body.serlyn-invitation .se-gate,
body.serlyn-invitation .se-section {
  background-image: var(--generated-surface);
  background-position: center;
  background-size: cover;
}

body.anabelle-invitation .an-section {
  background-image: var(--generated-surface);
  background-position: center;
  background-size: cover;
}

body.anabelle-invitation .an-gate {
  background-image: linear-gradient(rgba(255,255,255,.10), rgba(255,255,255,.10)), var(--generated-hero);
  background-position: center;
  background-size: cover;
}

body.aile-invitation .al-gate,
body.alunan-invitation .al-gate,
body.alunan-invitation .al-cover,
body.ashilla-invitation .as-gate,
body.ashilla-invitation .as-cover,
body.insan-invitation .in-gate,
body.linda-invitation .li-gate,
body.linda-invitation .li-cover,
body.tia-invitation .ti-gate,
body.jeni-invitation .jn-gate,
body.juwita-invitation .jw-gate,
body.sekar-invitation .sk-gate,
body.sekar-invitation .sk-cover,
body.senandika-invitation .sn-gate,
body.serlyn-invitation .se-gate {
  isolation: isolate;
  position: relative;
}

body.aile-invitation .al-gate::after,
body.alunan-invitation .al-gate::after,
body.alunan-invitation .al-cover::after,
body.ashilla-invitation .as-gate::after,
body.ashilla-invitation .as-cover::after,
body.insan-invitation .in-gate::after,
body.linda-invitation .li-gate::after,
body.linda-invitation .li-cover::after,
body.tia-invitation .ti-gate::after,
body.jeni-invitation .jn-gate::after,
body.juwita-invitation .jw-gate::after,
body.sekar-invitation .sk-gate::after,
body.sekar-invitation .sk-cover::after,
body.senandika-invitation .sn-gate::after,
body.serlyn-invitation .se-gate::after {
  background: var(--generated-frame) center / 100% 100% no-repeat;
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 2;
}

body.aile-invitation .al-gate::after,
body.insan-invitation .in-gate::after,
body.tia-invitation .ti-gate::after,
body.jeni-invitation .jn-gate::after,
body.senandika-invitation .sn-gate::after {
  opacity: .82;
}

body.alunan-invitation .al-gate::after,
body.alunan-invitation .al-cover::after,
body.ashilla-invitation .as-gate::after,
body.ashilla-invitation .as-cover::after,
body.linda-invitation .li-gate::after,
body.linda-invitation .li-cover::after,
body.juwita-invitation .jw-gate::after,
body.sekar-invitation .sk-gate::after,
body.sekar-invitation .sk-cover::after,
body.serlyn-invitation .se-gate::after {
  opacity: .72;
}

body.aile-invitation .al-section .al-heading::after,
body.alunan-invitation .al-section .al-heading::after,
body.anabelle-invitation .an-section .an-heading::after,
body.ashilla-invitation .as-section .as-heading::after,
body.linda-invitation .li-section .li-heading::after,
body.tia-invitation .ti-section .ti-heading::after {
  background: var(--generated-divider) center / contain no-repeat;
  content: "";
  display: block;
  height: 32px;
  margin: .45rem auto 0;
  width: min(170px, 58vw);
}

/* Ragam-style full-screen slide templates. */
body.ragam-adatsumatera-invitation {
  --generated-surface: url("/templates/generated/adatsumatera/SUM-01-woven-paper.jpg");
  --generated-frame: url("/templates/generated/adatsumatera/SUM-02-corner-frame.png");
  --generated-divider: url("/templates/generated/adatsumatera/SUM-03-songket-divider.png");
}

body.ragam-coloredbeach-invitation {
  --generated-surface: url("/templates/generated/coloredbeach/CBE-01-beach-hero.jpg");
  --generated-frame: url("/templates/generated/coloredbeach/CBE-02-coastal-corners.png");
  --generated-divider: url("/templates/generated/coloredbeach/CBE-03-wave-divider.png");
}

body.ragam-creampurple-invitation {
  --generated-surface: url("/templates/generated/creampurple/CPU-01-lavender-wash.jpg");
  --generated-frame: url("/templates/generated/creampurple/CPU-02-floral-corners.png");
  --generated-divider: url("/templates/generated/creampurple/CPU-03-floral-divider.png");
}

body.ragam-angela-invitation {
  --generated-surface: url("/templates/generated/angela/ANG-01-botanical-wash.jpg");
  --generated-frame: url("/templates/generated/angela/ANG-02-floral-corners.png");
}

body.ragam-artichoke-invitation {
  --generated-surface: url("/templates/generated/artichoke/ART-01-sage-background.jpg");
  --generated-frame: url("/templates/generated/artichoke/ART-02-artichoke-line-art.png");
}

body.ragam-adatsumatera-invitation .container-mobile,
body.ragam-coloredbeach-invitation .container-mobile,
body.ragam-creampurple-invitation .container-mobile,
body.ragam-angela-invitation .container-mobile,
body.ragam-artichoke-invitation .container-mobile {
  isolation: isolate;
  position: relative;
}

body.ragam-adatsumatera-invitation .container-mobile::before,
body.ragam-coloredbeach-invitation .container-mobile::before,
body.ragam-creampurple-invitation .container-mobile::before,
body.ragam-angela-invitation .container-mobile::before,
body.ragam-artichoke-invitation .container-mobile::before {
  background: var(--generated-surface) center / cover no-repeat;
  content: "";
  inset: 0;
  opacity: .22;
  pointer-events: none;
  position: absolute;
  z-index: 0;
}

body.ragam-coloredbeach-invitation .container-mobile::before { opacity: .16; }
body.ragam-creampurple-invitation .container-mobile::before { opacity: .28; }

body.ragam-adatsumatera-invitation .ragam_cover::after,
body.ragam-coloredbeach-invitation .ragam_cover::after,
body.ragam-creampurple-invitation .ragam_cover::after,
body.ragam-angela-invitation .ragam_cover::after,
body.ragam-artichoke-invitation .ragam_cover::after {
  background: var(--generated-frame) center / 100% 100% no-repeat;
  content: "";
  inset: 0;
  opacity: .78;
  pointer-events: none;
  position: absolute;
  z-index: 2;
}

body.ragam-adatsumatera-invitation .ragam_slide h2::after,
body.ragam-adatsumatera-invitation .ragam_slide h3::after,
body.ragam-coloredbeach-invitation .ragam_slide h2::after,
body.ragam-coloredbeach-invitation .ragam_slide h3::after,
body.ragam-creampurple-invitation .ragam_slide h2::after,
body.ragam-creampurple-invitation .ragam_slide h3::after {
  background: var(--generated-divider) center / contain no-repeat;
  content: "";
  display: block;
  height: 28px;
  margin: .35rem auto 0;
  width: min(160px, 54vw);
}

/* Pelita-style photographic templates. */
body.pelita-embroidery-invitation {
  --generated-surface: url("/templates/generated/embroidery/EMB-01-textile-background.jpg");
  --generated-frame: url("/templates/generated/embroidery/EMB-02-embroidered-frame.png");
  --generated-divider: url("/templates/generated/embroidery/EMB-03-stitch-divider.png");
}

body.pelita-floravera-invitation {
  --generated-surface: url("/templates/generated/floravera/FLV-01-botanical-background.jpg");
  --generated-frame: url("/templates/generated/floravera/FLV-02-floral-corners.png");
  --generated-divider: url("/templates/generated/floravera/FLV-03-pressed-flower-divider.png");
}

body.pelita-studio1-invitation {
  --generated-surface: url("/templates/generated/studio1/ST1-01-brown-texture.jpg");
  --generated-frame: url("/templates/generated/studio1/ST1-02-gold-geometry.png");
}

body.pelita-embroidery-invitation .pelita-section:not(.pelita-section--bg),
body.pelita-floravera-invitation .pelita-section:not(.pelita-section--bg),
body.pelita-studio1-invitation .pelita-section:not(.pelita-section--bg) {
  background-image: var(--generated-surface);
  background-position: center;
  background-size: cover;
}

body.pelita-embroidery-invitation .pelita-cover,
body.pelita-floravera-invitation .pelita-cover,
body.pelita-studio1-invitation .pelita-cover {
  isolation: isolate;
}

body.pelita-embroidery-invitation .pelita-cover::after,
body.pelita-floravera-invitation .pelita-cover::after,
body.pelita-studio1-invitation .pelita-cover::after {
  background: var(--generated-frame) center / 100% 100% no-repeat;
  content: "";
  inset: 0;
  opacity: .78;
  pointer-events: none;
  position: absolute;
  z-index: 2;
}

body.pelita-embroidery-invitation .pelita-section h2::after,
body.pelita-embroidery-invitation .pelita-section h3::after,
body.pelita-floravera-invitation .pelita-section h2::after,
body.pelita-floravera-invitation .pelita-section h3::after {
  background: var(--generated-divider) center / contain no-repeat;
  content: "";
  display: block;
  height: 30px;
  margin: .4rem auto 0;
  width: min(170px, 56vw);
}

/* Garden06. */
body.garden06-invitation {
  --generated-surface: url("/templates/generated/garden06/G06-01-garden-wash.jpg");
  --generated-divider: url("/templates/generated/garden06/G06-02-leaf-divider.png");
}

body.garden06-invitation .gd06-cover,
body.garden06-invitation .gd06-section {
  background-image: var(--generated-surface);
  background-position: center;
  background-size: cover;
}

body.garden06-invitation .gd06-section h2::after,
body.garden06-invitation .gd06-section h3::after,
body.garden06-invitation .gd06-couple-names::after {
  background: var(--generated-divider) center / contain no-repeat;
  content: "";
  display: block;
  height: 30px;
  margin: .4rem auto 0;
  width: min(170px, 56vw);
}

/* Sora uses the shared Lakon layout, hence its template-code body selector. */
body.lakon--sora {
  --generated-surface: url("/templates/generated/sora/SOR-01-sunlit-background.jpg");
  --generated-frame: url("/templates/generated/sora/SOR-02-leaf-shadow-overlay.png");
}

body.lakon--sora .cover,
body.lakon--sora main section:not(.hero) {
  background-image: var(--generated-surface);
  background-position: center;
  background-size: cover;
}

body.lakon--sora .cover {
  isolation: isolate;
  position: relative;
}

body.lakon--sora .cover::after {
  background: var(--generated-frame) center / cover no-repeat;
  content: "";
  inset: 0;
  opacity: .68;
  pointer-events: none;
  position: absolute;
  z-index: 2;
}

@media (prefers-reduced-motion: reduce) {
  body.aile-invitation *,
  body.alunan-invitation *,
  body.anabelle-invitation *,
  body.ashilla-invitation *,
  body.insan-invitation *,
  body.linda-invitation *,
  body.tia-invitation *,
  body.jeni-invitation *,
  body.juwita-invitation *,
  body.sekar-invitation *,
  body.senandika-invitation *,
  body.serlyn-invitation * {
    background-attachment: scroll !important;
  }
}
