/* =====================================================================
   WeddingStory.in — premium story themes
   Loaded only on stories whose template has a "theme" (Admin → Templates).
   One shared engine + a small palette block per theme. Decorative motifs are original SVGs in ../img/motifs
   (recoloured with CSS masks), fonts are self-hosted OFL fonts. Edit freely; no build step needed.
   ===================================================================== */

/* ---------- fonts (self-hosted) ---------- */
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/cormorant-garamond-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/cormorant-garamond-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/cormorant-garamond-latin-700-normal.woff2') format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:500;font-display:swap;src:url('../fonts/cormorant-garamond-latin-500-italic.woff2') format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:600;font-display:swap;src:url('../fonts/cormorant-garamond-latin-600-italic.woff2') format('woff2')}
@font-face{font-family:'Cinzel';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/cinzel-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'Cinzel';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/cinzel-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'Cinzel';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/cinzel-latin-700-normal.woff2') format('woff2')}
@font-face{font-family:'Great Vibes';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/great-vibes-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'Yatra One';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/yatra-one-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'Rozha One';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/rozha-one-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/playfair-display-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/playfair-display-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:500;font-display:swap;src:url('../fonts/playfair-display-latin-500-italic.woff2') format('woff2')}
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:600;font-display:swap;src:url('../fonts/playfair-display-latin-600-italic.woff2') format('woff2')}
@font-face{font-family:'Marcellus';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/marcellus-latin-400-normal.woff2') format('woff2')}

/* ---------- shared defaults (each theme overrides what it needs) ---------- */
.th{
  --gold:linear-gradient(135deg,#A67C1F 0%,#F3D98B 48%,#B58A2A 100%);
  --f-display:'Cormorant Garamond'; --fw:600;
  --card:rgba(255,255,255,.78); --alt:rgba(255,255,255,.45); --line:rgba(176,138,62,.55); --line-soft:rgba(176,138,62,.28);
  --orn:var(--accent); --orn-l:var(--accent); --tl:var(--accent); --dot-ink:#fff; --muted:rgba(0,0,0,.62);
  --hero-bg:transparent; --hero-ink:var(--ink); --hero-card:rgba(255,255,255,.6);
  --btn:var(--ink); --btn-ink:#fff; --shadow:0 10px 30px -12px rgba(60,30,20,.28);
}
.th .font-display{font-family:var(--f-display),Georgia,serif;font-weight:var(--fw)}
.th .ws-name{font-family:var(--f-name,var(--f-display)),Georgia,serif;font-weight:var(--fw-name,var(--fw));letter-spacing:var(--ls-name,0)}
.th h1.ws-name{font-size:var(--h1,3.4rem);line-height:1.08}
@media (min-width:768px){.th h1.ws-name{font-size:var(--h1-md,4.5rem)}}
/* long names (over ~26 characters) scale down so the hero stays compact */
.th h1.ws-name-long{font-size:calc(var(--h1,3.4rem)*.62);line-height:1.15}
@media (min-width:768px){.th h1.ws-name-long{font-size:calc(var(--h1-md,4.5rem)*.66)}}

/* ---------- hero ---------- */
.th .ws-hero{position:relative;isolation:isolate;overflow:hidden;background:var(--hero-bg);color:var(--hero-ink);padding-top:clamp(4.5rem,9vw,7rem);padding-bottom:clamp(4.5rem,9vw,7rem)}
.th .ws-hero-in{position:relative;z-index:1}
.th .ws-deco{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.ws-deco i{position:absolute;display:none}
.th .ws-hero [class~="bg-white/70"]{background:var(--hero-card);border:1px solid var(--line);color:var(--hero-ink)}
.th .ws-hero a.border{border-color:currentColor!important}
.th .ws-btn{background:var(--btn)!important;color:var(--btn-ink)!important;box-shadow:0 6px 18px -8px rgba(0,0,0,.45)}
.th .ws-hero p,.th .ws-hero .opacity-80{color:inherit}
.th .ws-hero .opacity-75,.th .ws-hero .opacity-80,.th .ws-hero .opacity-90{opacity:1}

/* wash (soft glow layer) */
.th .d-wash{display:block;inset:0;background:var(--wash,none)}

/* patterns */
.thx-pat-jaali .d-pat,.thx-pat-paisley .d-pat,.thx-pat-bandhani .d-pat,.thx-pat-kolam .d-pat,.thx-pat-stars .d-pat{display:block;inset:0;background:var(--pat,var(--orn));opacity:var(--pat-o,.12)}
.thx-pat-jaali .d-pat{-webkit-mask:url(../img/motifs/jaali-tile.svg) 0 0/64px 64px repeat;mask:url(../img/motifs/jaali-tile.svg) 0 0/64px 64px repeat}
.thx-pat-paisley .d-pat{-webkit-mask:url(../img/motifs/paisley-tile.svg) 0 0/96px 102px repeat;mask:url(../img/motifs/paisley-tile.svg) 0 0/96px 102px repeat}
.thx-pat-bandhani .d-pat{-webkit-mask:url(../img/motifs/bandhani-tile.svg) 0 0/44px 44px repeat;mask:url(../img/motifs/bandhani-tile.svg) 0 0/44px 44px repeat}
.thx-pat-kolam .d-pat{-webkit-mask:url(../img/motifs/kolam-tile.svg) 0 0/88px 88px repeat;mask:url(../img/motifs/kolam-tile.svg) 0 0/88px 88px repeat}
.thx-pat-stars .d-pat{-webkit-mask:url(../img/motifs/stars.svg) 0 0/160px 160px repeat;mask:url(../img/motifs/stars.svg) 0 0/160px 160px repeat}

/* big mandala behind the couple photo */
.thx-mandala .d-mandala{display:block;width:min(560px,130vw);aspect-ratio:1;left:50%;top:250px;transform:translate(-50%,-50%);background:var(--orn);opacity:var(--mandala-o,.28);
  -webkit-mask:url(../img/motifs/mandala.svg) center/contain no-repeat;mask:url(../img/motifs/mandala.svg) center/contain no-repeat}
@media (min-width:768px){.thx-mandala .d-mandala{width:min(720px,60vw);left:calc(50% - 372px);top:50%}}
@media (min-width:1100px){.thx-mandala .d-mandala{left:calc(50% - 372px)}}

/* corner filigree */
.thx-corners .d-c1,.thx-corners .d-c2,.thx-corners .d-c3,.thx-corners .d-c4{display:block;width:clamp(96px,19vw,230px);aspect-ratio:1;background:var(--orn);opacity:.95;
  -webkit-mask:url(../img/motifs/corner.svg) center/contain no-repeat;mask:url(../img/motifs/corner.svg) center/contain no-repeat}
.d-c1{left:0;top:0}.d-c2{right:0;top:0;transform:scaleX(-1)}.d-c3{left:0;bottom:0;transform:scaleY(-1)}.d-c4{right:0;bottom:0;transform:scale(-1,-1)}

/* toran garlands (full colour) */
.thx-toran-marigold .d-toran{display:block;left:0;right:0;top:0;height:clamp(96px,15vw,168px);background:url(../img/motifs/marigold-garland.svg) repeat-x center top/auto 100%}
.thx-toran-mango .d-toran{display:block;left:0;right:0;top:0;height:clamp(72px,11vw,120px);background:url(../img/motifs/mango-toran.svg) repeat-x center top/auto 100%}

/* temple / bandhani strips */
.thx-temple-border .d-strip-t,.thx-temple-border .d-strip-b{display:block;left:0;right:0;height:26px;background:var(--strip,var(--orn));-webkit-mask:url(../img/motifs/temple-border.svg) 0 0/auto 100% repeat-x;mask:url(../img/motifs/temple-border.svg) 0 0/auto 100% repeat-x}
.thx-temple-border .d-strip-t{top:0}.thx-temple-border .d-strip-b{bottom:0;transform:scaleY(-1)}
.thx-bandhani-strip .d-strip-t,.thx-bandhani-strip .d-strip-b{display:block;left:0;right:0;height:34px;background:var(--strip,var(--orn));-webkit-mask:url(../img/motifs/bandhani-tile.svg) 0 50%/34px 34px repeat-x;mask:url(../img/motifs/bandhani-tile.svg) 0 50%/34px 34px repeat-x}
.thx-bandhani-strip .d-strip-t{top:6px}.thx-bandhani-strip .d-strip-b{bottom:6px}

/* gopuram silhouette, lotus crest, peacock feathers, kalash */
.thx-gopuram .d-gopuram{display:block;right:-30px;bottom:26px;width:min(430px,70vw);aspect-ratio:320/250;background:var(--orn);opacity:.11;-webkit-mask:url(../img/motifs/gopuram.svg) center bottom/contain no-repeat;mask:url(../img/motifs/gopuram.svg) center bottom/contain no-repeat}
.thx-lotus-crest .d-lotus{display:block;left:50%;bottom:-6%;width:min(760px,120vw);aspect-ratio:200/146;transform:translateX(-50%);background:var(--orn);opacity:.2;-webkit-mask:url(../img/motifs/lotus.svg) center bottom/contain no-repeat;mask:url(../img/motifs/lotus.svg) center bottom/contain no-repeat}
.thx-peacocks .d-side-l,.thx-peacocks .d-side-r{display:block;bottom:-2%;width:clamp(80px,13vw,180px);aspect-ratio:140/320;background:var(--orn);opacity:.8;-webkit-mask:url(../img/motifs/peacock.svg) center bottom/contain no-repeat;mask:url(../img/motifs/peacock.svg) center bottom/contain no-repeat}
.thx-peacocks .d-side-l{left:9%;transform:rotate(-14deg);transform-origin:50% 100%}.thx-peacocks .d-side-r{right:9%;transform:scaleX(-1) rotate(-14deg);transform-origin:50% 100%}
.thx-kalash .d-side-l,.thx-kalash .d-side-r{display:none}
@media (min-width:1180px){.thx-kalash .d-side-l,.thx-kalash .d-side-r{display:block;bottom:8%;width:clamp(90px,10vw,150px);aspect-ratio:120/170;background:var(--orn2,var(--orn));opacity:.9;-webkit-mask:url(../img/motifs/kalash.svg) center bottom/contain no-repeat;mask:url(../img/motifs/kalash.svg) center bottom/contain no-repeat}
  .thx-kalash .d-side-l{left:2%}.thx-kalash .d-side-r{right:2%}}

/* couple photo shape + ornamental frame */
.thx-frame-ogee .ws-art .arch,.thx-frame-round .ws-art .arch{border-radius:0}
.thx-frame-ogee .ws-art .arch{-webkit-mask:url(../img/motifs/arch-ogee.svg) center/100% 100% no-repeat;mask:url(../img/motifs/arch-ogee.svg) center/100% 100% no-repeat}
.thx-frame-round .ws-art .arch{-webkit-mask:url(../img/motifs/arch-round.svg) center/100% 100% no-repeat;mask:url(../img/motifs/arch-round.svg) center/100% 100% no-repeat}
.thx-frame-ogee .ws-frame,.thx-frame-round .ws-frame{display:block;position:absolute;left:-12%;right:-12%;top:-15%;bottom:-6%;background:var(--frame,var(--orn));pointer-events:none}
.thx-frame-ogee .ws-frame{-webkit-mask:url(../img/motifs/arch-frame.svg) center/100% 100% no-repeat;mask:url(../img/motifs/arch-frame.svg) center/100% 100% no-repeat}
.thx-frame-round .ws-frame{-webkit-mask:url(../img/motifs/arch-round-frame.svg) center/100% 100% no-repeat;mask:url(../img/motifs/arch-round-frame.svg) center/100% 100% no-repeat}
.th .ws-art{margin-top:1.6rem}

/* ---------- sections ---------- */
.th .ws-h2{text-align:center}
.th .ws-h2 + p{margin-left:auto;margin-right:auto;text-align:center}
.thx-div-lotus .ws-h2::after,.thx-div-leaf .ws-h2::after{content:"";display:block;height:26px;margin:.7rem auto 0;background:var(--orn-l);opacity:1}
.thx-div-lotus .ws-h2::after{width:min(360px,82%);-webkit-mask:url(../img/motifs/divider-lotus.svg) center/contain no-repeat;mask:url(../img/motifs/divider-lotus.svg) center/contain no-repeat}
.thx-div-leaf .ws-h2::after{width:min(300px,78%);-webkit-mask:url(../img/motifs/divider-leaf.svg) center/contain no-repeat;mask:url(../img/motifs/divider-leaf.svg) center/contain no-repeat}
.th [class~="bg-white/50"]{background:var(--alt)}
.th [class~="bg-white/70"],.th [class~="bg-white"]:not(.input):not(.btn){background:var(--card)}
.th article[class~="bg-white"],.th [class~="bg-white/70"][class*="rounded-2xl"],.th form[class~="bg-white"]{border:1px solid var(--line);outline:1px solid var(--line-soft);outline-offset:-7px;box-shadow:var(--shadow)}
.th .ws-tl-card{background:var(--card);border:1px solid var(--line);outline:1px solid var(--line-soft);outline-offset:-6px;box-shadow:var(--shadow)}
.th .ws-tl{--tl-line:var(--tl)!important;--tl-dot:var(--tl)!important;--tl-dot-ink:var(--dot-ink)!important;--tl-bg:var(--bg)!important}
.th .ws-tl-dot{box-shadow:0 0 0 5px var(--bg),0 0 0 6.5px var(--line)}
.th .ws-tl-date{color:var(--tl);opacity:1;letter-spacing:.06em;text-transform:uppercase;font-size:.78rem}
.th .ws-h3{text-align:center}

/* invitation card: double border with filigree corners */
.thx-card-orn .ws-invite{position:relative;border-width:2px;outline:1px solid var(--line);outline-offset:-10px}
.thx-card-orn .ws-invite::before,.thx-card-orn .ws-invite::after{content:"";position:absolute;width:82px;height:82px;background:var(--orn-l);opacity:1;pointer-events:none;
  -webkit-mask:url(../img/motifs/corner.svg) center/contain no-repeat;mask:url(../img/motifs/corner.svg) center/contain no-repeat}
.thx-card-orn .ws-invite::before{left:0;top:0}.thx-card-orn .ws-invite::after{right:0;bottom:0;transform:rotate(180deg)}
.th .ws-invite .ws-name{color:var(--ink)}

/* garlands over the invitation / RSVP sections */
.thx-section-toran #invitation,.thx-section-toran #rsvp{position:relative;padding-top:6.5rem}
.thx-section-toran #invitation::before,.thx-section-toran #rsvp::before{content:"";position:absolute;left:0;right:0;top:0;height:78px;background:url(../img/motifs/marigold-garland.svg) repeat-x center top/auto 100%;pointer-events:none}

/* form controls follow the theme palette (defaults are maroon) */
.th .btn-primary{background:var(--btn);color:var(--btn-ink);border-color:transparent;box-shadow:0 6px 18px -8px rgba(0,0,0,.4)}
.th .btn-primary:hover{filter:brightness(1.08)}
.th input[type=checkbox],.th input[type=radio]{accent-color:var(--tl)!important}
.th .input:focus,.th input:focus,.th select:focus,.th textarea:focus{border-color:var(--tl);outline-color:var(--tl)}
.th #rsvp .card,.th #rsvp form{border-radius:1.25rem}

/* ---------- dark themes ---------- */
.th-dark .text-ink,.th-dark .label{color:var(--ink)}
.th-dark .hint,.th-dark .text-muted{color:var(--muted)}
.th-dark{color-scheme:dark}
.th-dark input:not([type=radio]):not([type=checkbox]),.th-dark select,.th-dark textarea{background:rgba(255,255,255,.08);color:var(--ink);border-color:var(--line)}
.th-dark input[type=radio],.th-dark input[type=checkbox]{background:transparent}
.th-dark option{color:#222}
.th-dark .err{color:#FFB4A8}
.th-dark [class~="bg-white/80"]{background:rgba(21,17,61,.85);color:var(--ink)}
.th-dark .ws-tl-card,.th-dark .ws-card{color:var(--ink)}

@media (prefers-reduced-motion:no-preference){
  .thx-mandala .d-mandala{animation:thspin 240s linear infinite}
  @keyframes thspin{to{transform:translate(-50%,-50%) rotate(360deg)}}
}

/* =====================================================================
   THEMES  (palette + typography + which colour the ornaments use)
   Page colours (--bg --ink --accent --photo) come from the template's colour fields.
   ===================================================================== */

/* 1 ▸ Rajwada Royal: maroon & gold */
.th-rajwada-royal{--f-display:'Cinzel';--fw:600;--f-name:'Cinzel';--fw-name:600;--ls-name:.03em;--h1:2.6rem;--h1-md:3.7rem;
  --gold2:linear-gradient(135deg,#B8902F,#F6E19A 50%,#B8902F);--orn:var(--gold2);--pat:#F0D27A;--pat-o:.07;--mandala-o:.32;
  --hero-bg:radial-gradient(120% 90% at 30% 10%,#7A1D33 0%,#4E0F20 62%,#360815 100%);--hero-ink:#F8EBC9;--hero-card:rgba(255,236,190,.09);
  --card:#FFFDF7;--alt:#F6EAD2;--line:rgba(184,144,47,.6);--line-soft:rgba(184,144,47,.3);--tl:#5B1424;--dot-ink:#F6E19A;--btn:#5B1424;--btn-ink:#F6E19A}
.th-rajwada-royal .ws-hero .ws-btn{background:var(--gold2)!important;color:#3a0c16!important}
.th-rajwada-royal .ws-frame{--frame:linear-gradient(135deg,#C79A33,#F6E19A 55%,#B8902F)}
.th-rajwada-royal .ws-hero header,.th-rajwada-royal .ws-hero h1{text-shadow:0 2px 18px rgba(0,0,0,.35)}

/* 2 ▸ Mughal Garden: emerald & gold */
.th-mughal-garden{--f-display:'Cormorant Garamond';--fw:600;--f-name:'Cormorant Garamond';--fw-name:600;--h1:3.4rem;--h1-md:5rem;
  --orn:linear-gradient(135deg,#B08A2E,#F1D785 50%,#B08A2E);--pat:#E8CC7A;--pat-o:.09;
  --hero-bg:linear-gradient(160deg,#11614A 0%,#0B4536 55%,#082F26 100%);--hero-ink:#F5E9C4;--hero-card:rgba(255,240,200,.09);
  --card:#FFFEF9;--alt:#EFE9D2;--line:rgba(176,138,46,.6);--line-soft:rgba(11,69,54,.22);--tl:#0B4536;--dot-ink:#F1D785;--btn:#0B4536;--btn-ink:#F1D785}
.th-mughal-garden .ws-name{font-style:italic}
.th-mughal-garden .ws-hero .ws-btn{background:linear-gradient(135deg,#B08A2E,#F1D785 50%,#B08A2E)!important;color:#0A3226!important}
.th-mughal-garden .ws-frame{--frame:linear-gradient(135deg,#C79A33,#F6E19A 55%,#B8902F)}

/* 3 ▸ Marigold Toran: haldi yellow & saffron */
.th-marigold-toran{--f-display:'Yatra One';--fw:400;--f-name:'Yatra One';--fw-name:400;--h1:2.9rem;--h1-md:4.2rem;
  --orn:#E8790C;--frame:linear-gradient(135deg,#C8620A,#F5A623 55%,#C8620A);
  --hero-bg:linear-gradient(180deg,#FFE9A8 0%,#FFF3CF 55%,#FFF7DE 100%);--hero-ink:#5A2410;--hero-card:rgba(255,255,255,.72);
  --card:#FFFDF2;--alt:#FFEFC4;--line:rgba(200,98,10,.5);--line-soft:rgba(200,98,10,.25);--tl:#B4470A;--dot-ink:#fff;--btn:#B4470A;--btn-ink:#fff}
.th-marigold-toran .ws-hero{padding-top:clamp(8rem,17vw,12rem)}

/* 4 ▸ Kamal Lotus: blush & rose */
.th-kamal-lotus{--f-display:'Cormorant Garamond';--fw:600;--f-name:'Great Vibes';--fw-name:400;--h1:4.2rem;--h1-md:6rem;
  --orn:linear-gradient(135deg,#C2607A,#E58FA6 55%,#B04A66);--mandala-o:.2;--frame:linear-gradient(135deg,#B85A74,#E9A0B3 55%,#B04A66);
  --hero-bg:radial-gradient(110% 80% at 30% 20%,#FFF6F6 0%,#FBE1E5 60%,#F6CAD3 100%);--hero-ink:#4A2233;--hero-card:rgba(255,255,255,.66);
  --card:rgba(255,255,255,.86);--alt:rgba(250,222,228,.55);--line:rgba(194,96,122,.5);--line-soft:rgba(194,96,122,.25);--tl:#B04A66;--dot-ink:#fff;--btn:#8E3550;--btn-ink:#fff}
.th-kamal-lotus .ws-invite .ws-name{font-size:3.4rem;line-height:1.1}

/* 5 ▸ Kanjivaram Temple: cream, maroon, gold & green */
.th-kanjivaram-temple{--f-display:'Marcellus';--fw:400;--f-name:'Marcellus';--fw-name:400;--ls-name:.02em;--h1:2.7rem;--h1-md:3.9rem;
  --orn:#6A1B2B;--strip:linear-gradient(90deg,#6A1B2B,#B8862B 50%,#1F6B4A);--pat:#6A1B2B;--pat-o:.06;--frame:linear-gradient(135deg,#B8862B,#E9C56B 55%,#B8862B);
  --hero-bg:linear-gradient(180deg,#FFF3D3 0%,#FFF8E8 100%);--hero-ink:#6A1B2B;--hero-card:rgba(255,255,255,.7);
  --card:#FFFDF6;--alt:#FCEFD0;--line:rgba(184,134,43,.6);--line-soft:rgba(106,27,43,.2);--tl:#1F6B4A;--dot-ink:#fff;--btn:#6A1B2B;--btn-ink:#F3D98B}
.th-kanjivaram-temple .ws-hero{padding-top:clamp(5.5rem,10vw,8rem)}

/* 6 ▸ Mayur Peacock: teal & gold */
.th-mayur-peacock{--f-display:'Playfair Display';--fw:500;--f-name:'Playfair Display';--fw-name:500;--h1:2.9rem;--h1-md:4.2rem;
  --orn:linear-gradient(135deg,#C9A227,#F0D77A 50%,#C9A227);--hero-bg:radial-gradient(120% 90% at 50% 0%,#12768A 0%,#0A4D5F 58%,#06313E 100%);--hero-ink:#FCF6E3;--hero-card:rgba(255,255,255,.1);
  --card:#FBFFFD;--alt:#DDEEEA;--line:rgba(19,138,138,.55);--line-soft:rgba(11,59,73,.2);--tl:#0B5B6B;--dot-ink:#F0D77A;--btn:#0B4A5A;--btn-ink:#F0D77A}
.th-mayur-peacock .ws-hero .ws-btn{background:linear-gradient(135deg,#C9A227,#F0D77A 50%,#C9A227)!important;color:#062B36!important}
.th-mayur-peacock .d-side-l,.th-mayur-peacock .d-side-r{--orn:linear-gradient(180deg,#2CB5A8,#C9A227)}

/* 7 ▸ Rajasthani Jharokha: terracotta, rose & turquoise */
.th-rajasthani-jharokha{--f-display:'Rozha One';--fw:400;--f-name:'Rozha One';--fw-name:400;--h1:2.6rem;--h1-md:3.8rem;
  --orn:#C8553D;--strip:#1E8C8C;--pat:#C8553D;--pat-o:.16;--frame:linear-gradient(135deg,#C8553D,#E8846E 55%,#B8412B);
  --hero-bg:linear-gradient(180deg,#F8D2AE 0%,#FBE3C6 60%,#FBEBD6 100%);--hero-ink:#5A1E1E;--hero-card:rgba(255,255,255,.66);
  --card:#FFFAF2;--alt:#F7DFC3;--line:rgba(200,85,61,.55);--line-soft:rgba(30,140,140,.3);--tl:#146A6A;--dot-ink:#fff;--btn:#A8402B;--btn-ink:#fff}
.th-rajasthani-jharokha .ws-hero{padding-top:clamp(5.5rem,10vw,8rem)}

/* 8 ▸ Bandhani Sindoor: bridal red & gold */
.th-bandhani-sindoor{--f-display:'Playfair Display';--fw:600;--f-name:'Playfair Display';--fw-name:600;--h1:2.8rem;--h1-md:4.1rem;
  --orn:linear-gradient(135deg,#C9A24B,#F5DC94 50%,#C9A24B);--pat:#F5DC94;--pat-o:.2;
  --hero-bg:radial-gradient(120% 90% at 30% 0%,#D01C3D 0%,#A50F2C 60%,#7C0A20 100%);--hero-ink:#FFF4DE;--hero-card:rgba(255,235,200,.12);
  --card:#FFFDFA;--alt:#FBE4DA;--line:rgba(201,162,75,.65);--line-soft:rgba(165,15,44,.2);--tl:#A50F2C;--dot-ink:#F5DC94;--btn:#A50F2C;--btn-ink:#FFEBC8}
.th-bandhani-sindoor .ws-name{font-style:italic}
.th-bandhani-sindoor .ws-hero .ws-btn{background:linear-gradient(135deg,#C9A24B,#F5DC94 50%,#C9A24B)!important;color:#5A0A18!important}

/* 9 ▸ Mangalam Kalash: saffron, kumkum & mango-leaf toran */
.th-mangalam-kalash{--f-display:'Cormorant Garamond';--fw:700;--f-name:'Cormorant Garamond';--fw-name:700;--h1:3.2rem;--h1-md:4.8rem;
  --orn:#C0392B;--orn2:#B8862B;--frame:linear-gradient(135deg,#B8862B,#EBC66A 55%,#B8862B);
  --hero-bg:linear-gradient(180deg,#FFE7B0 0%,#FFF0CB 60%,#FFF4D9 100%);--hero-ink:#6E1A10;--hero-card:rgba(255,255,255,.72);
  --card:#FFFCF1;--alt:#FFEBC0;--line:rgba(217,130,43,.6);--line-soft:rgba(192,57,43,.22);--tl:#C0392B;--dot-ink:#fff;--btn:#A82E20;--btn-ink:#FFE9B8}
.th-mangalam-kalash .ws-hero{padding-top:clamp(6.5rem,13vw,10rem)}

/* 10 ▸ Sangeet Midnight: indigo & gold (dark) */
.th-sangeet-midnight{--f-display:'Cinzel';--fw:600;--f-name:'Great Vibes';--fw-name:400;--h1:4.2rem;--h1-md:6.2rem;
  --orn:linear-gradient(135deg,#C9A24B,#F5DC94 50%,#C9A24B);--pat:#F5DC94;--pat-o:.35;--mandala-o:.22;
  --hero-bg:radial-gradient(120% 90% at 30% 0%,#3B2E8A 0%,#211A5C 55%,#120E33 100%);--hero-ink:#FBF3DB;--hero-card:rgba(255,255,255,.08);
  --card:rgba(255,255,255,.06);--alt:rgba(255,255,255,.035);--line:rgba(217,180,91,.5);--line-soft:rgba(217,180,91,.22);--tl:#D9B45B;--dot-ink:#1B1548;--btn:#D9B45B;--btn-ink:#1B1548;--muted:rgba(244,230,190,.72);--shadow:0 12px 34px -14px rgba(0,0,0,.6)}
.th-sangeet-midnight{--orn-l:linear-gradient(135deg,#C9A24B,#F5DC94 50%,#C9A24B)}
.th-sangeet-midnight h1.ws-name{text-shadow:0 0 22px rgba(245,220,148,.35)}
.th-sangeet-midnight .ws-invite .ws-name{font-size:3.3rem;line-height:1.1}
.th-sangeet-midnight .ws-invite{background:transparent!important}

/* Fallback: browsers without CSS mask support (very old) get the clean coloured hero, without the masked ornaments. */
@supports not ((mask-image:url(a.svg)) or (-webkit-mask-image:url(a.svg))){
  .th .ws-deco i:not(.d-wash),.th .ws-frame,.th .ws-h2::after,.th .ws-invite::before,.th .ws-invite::after{display:none!important}
  .thx-frame-ogee .ws-art .arch,.thx-frame-round .ws-art .arch{border-radius:9999px 9999px 0 0}
}









/* ==========================================================================
   THREE REGIONAL INDIAN THEMES — paste at the END of the "THEMES" section
   of assets/css/themes.css (after the last existing .th-* block).

   Order matters: the motif-mask overrides at the bottom of each block must
   come after the base .thx-* rules, so keep this at the end of the file.

   Themes:  .th-bengali-alpona   .th-kerala-kasavu   .th-punjabi-phulkari
   No new fonts required — uses the families already declared in themes.css.
   Optional font upgrade per theme is noted above each block.
   ========================================================================== */


/* --------------------------------------------------------------------------
   1. BENGALI ALPONA  —  sindoor red + white rice-paste line work
   Deep red hero, ornaments drawn in WHITE (not gold) — this is the whole
   point of the theme, alpona is painted in rice paste on a red ground.
   Optional font upgrade: --f-name:'Tangerine' (OFL, @fontsource/tangerine)
   -------------------------------------------------------------------------- */
.th-bengali-alpona{
  --f-display:'Cormorant Garamond'; --fw:600;
  --f-name:'Great Vibes'; --fw-name:400; --ls-name:.01em;
  --h1:3.9rem; --h1-md:5.6rem;

  --orn:linear-gradient(135deg,#FFFFFF,#FFE9D6 52%,#FFFFFF);  /* white alpona in hero */
  --orn2:#FFD9C2;
  --orn-l:#9B1424;                                            /* deep red on light sections */
  --frame:#FFF3E4;
  --pat:#FFFFFF; --pat-o:.13;

  --hero-bg:linear-gradient(165deg,#BE2434 0%,#8C1220 55%,#6E0D18 100%);
  --hero-ink:#FFF3E4; --hero-card:rgba(255,243,228,.10);

  --card:#FFFFFF; --alt:#FBE7E0;
  --line:rgba(176,28,46,.45); --line-soft:rgba(43,14,11,.14);
  --tl:#B01C2E; --dot-ink:#FFF3E4;
  --btn:#8C1220; --btn-ink:#FFF3E4;
  --muted:#6A4540; --shadow:0 10px 28px rgba(110,13,24,.10);
}
/* alpona corner vine instead of the default filigree corner */
.th-bengali-alpona .d-c1,
.th-bengali-alpona .d-c2,
.th-bengali-alpona .d-c3,
.th-bengali-alpona .d-c4{
  -webkit-mask-image:url(../img/motifs/alpona-corner.svg);
          mask-image:url(../img/motifs/alpona-corner.svg);
}
/* joda maachh (the auspicious fish) flanking the hero, via the `peacocks` feature */
.th-bengali-alpona .d-side-l,
.th-bengali-alpona .d-side-r{
  -webkit-mask-image:url(../img/motifs/joda-maachh.svg);
          mask-image:url(../img/motifs/joda-maachh.svg);
  width:104px;
}


/* --------------------------------------------------------------------------
   2. KERALA KASAVU  —  off-white mundu, zari gold border, deep green ink
   A LIGHT hero on purpose. No `hero-deep` feature, so a cover photo gets the
   white veil, which is correct here. --orn is a flat deeper gold because a
   pale gradient would vanish on this ground.
   Optional font upgrade: --f-display:'Marcellus' (OFL, @fontsource/marcellus)
   -------------------------------------------------------------------------- */
.th-kerala-kasavu{
  --f-display:'Cormorant Garamond'; --fw:600;
  --f-name:'Cormorant Garamond'; --fw-name:500; --ls-name:.05em;
  --h1:3.4rem; --h1-md:4.8rem;

  --orn:#9A7526;                       /* flat zari gold — light hero */
  --orn2:#1F4132;
  --orn-l:#8A6A1E;
  --frame:#9A7526;
  --strip:#9A7526;

  --hero-bg:linear-gradient(175deg,#FBF7EA 0%,#F3EAD2 100%);
  --hero-ink:#1E2A20; --hero-card:rgba(30,42,32,.07);

  --card:#FFFFFF; --alt:#F5F0E0;
  --line:rgba(154,117,38,.55); --line-soft:rgba(36,41,31,.14);
  --tl:#1F4132; --dot-ink:#F7EFD8;
  --btn:#1F4132; --btn-ink:#F9F3E2;
  --muted:#55584C; --shadow:0 10px 26px rgba(36,41,31,.08);
}
/* kasavu zari border (temple pyramids between two zari lines) top and bottom */
.th-kerala-kasavu .d-strip-t,
.th-kerala-kasavu .d-strip-b{
  -webkit-mask-image:url(../img/motifs/kasavu-border.svg);
          mask-image:url(../img/motifs/kasavu-border.svg);
  -webkit-mask-size:auto 100%;
          mask-size:auto 100%;
  -webkit-mask-repeat:repeat-x;
          mask-repeat:repeat-x;
  height:22px;
}
/* nilavilakku (brass lamp) silhouettes flanking the hero, via `peacocks` */
.th-kerala-kasavu .d-side-l,
.th-kerala-kasavu .d-side-r{
  -webkit-mask-image:url(../img/motifs/nilavilakku.svg);
          mask-image:url(../img/motifs/nilavilakku.svg);
  width:96px;
}


/* --------------------------------------------------------------------------
   3. PUNJABI PHULKARI  —  fuchsia khaddar, marigold, darning-stitch blooms
   The loudest of the three. Buttons are marigold with dark ink, which is the
   memorable element; everything else stays disciplined.
   Optional font upgrade: --f-display:'Yeseva One' (OFL, @fontsource/yeseva-one)
   -------------------------------------------------------------------------- */
.th-punjabi-phulkari{
  --f-display:'Cormorant Garamond'; --fw:700;
  --f-name:'Great Vibes'; --fw-name:400;
  --h1:4.0rem; --h1-md:5.8rem;

  --orn:linear-gradient(135deg,#F6C445,#FFE9A8 50%,#F6C445);
  --orn2:#F26B21;
  --orn-l:#9C1250;
  --frame:#F6C445;
  --pat:#FFD34E; --pat-o:.16;

  --hero-bg:linear-gradient(150deg,#D81B60 0%,#A2144C 55%,#7C0E3A 100%);
  --hero-ink:#FFEDC6; --hero-card:rgba(255,237,198,.12);

  --card:#FFFFFF; --alt:#FDEED0;
  --line:rgba(184,21,90,.45); --line-soft:rgba(42,23,4,.14);
  --tl:#B8155A; --dot-ink:#FFE9A8;
  --btn:#E07B0A; --btn-ink:#2A1704;
  --muted:#6B4A2A; --shadow:0 10px 28px rgba(124,14,58,.12);
}
/* phulkari darning-stitch bloom as the hero pattern, replacing bandhani dots */
.th-punjabi-phulkari .d-pat{
  -webkit-mask-image:url(../img/motifs/phulkari-bloom.svg);
          mask-image:url(../img/motifs/phulkari-bloom.svg);
  -webkit-mask-size:104px 104px;
          mask-size:104px 104px;
  -webkit-mask-repeat:repeat;
          mask-repeat:repeat;
}




/* --------------------------------------------------------------------------
   1. CATHEDRAL IVORY — stone, stained glass, gothic pointed arch
   -------------------------------------------------------------------------- */
.th-cathedral-ivory{
  --f-display:'Cormorant Garamond'; --fw:600;
  --f-name:'Cormorant Garamond'; --fw-name:500; --ls-name:.04em;
  --h1:3.6rem; --h1-md:5.2rem;

  --orn:linear-gradient(135deg,#D9B44A,#F3E0A6 50%,#D9B44A);  /* leaded-glass gold */
  --orn-l:#8A6A22;
  --orn2:#5C2A3D;
  --frame:#D9B44A;

  --hero-bg:linear-gradient(160deg,#1B2A4A 0%,#3B2350 55%,#5C2A3D 100%);
  --hero-ink:#FAF3DE; --hero-card:rgba(243,231,201,.10);

  --card:#FFFDF8; --alt:#F1ECDE;
  --line:rgba(217,180,74,.5); --line-soft:rgba(27,42,74,.16);
  --tl:#3B2350; --dot-ink:#F3E7C9;
  --btn:#1B2A4A; --btn-ink:#F3E7C9;
  --muted:#5A5548; --shadow:0 10px 28px rgba(27,42,74,.12);
}
/* stained-glass rosette on the slow-rotating mandala layer */
.th-cathedral-ivory .d-mandala{
  -webkit-mask-image:url(../img/motifs/stained-glass-rosette.svg);
          mask-image:url(../img/motifs/stained-glass-rosette.svg);
}
/* ornamental cross in place of the default leaf divider */
.th-cathedral-ivory .d-leaf{
  -webkit-mask-image:url(../img/motifs/cross-divider.svg);
          mask-image:url(../img/motifs/cross-divider.svg);
  width:70px; height:34px;
}


/* --------------------------------------------------------------------------
   2. ROSE GARDEN CHAPEL — blush and ivory, light hero, garden roses
   -------------------------------------------------------------------------- */
.th-rose-garden-chapel{
  --f-display:'Cormorant Garamond'; --fw:600;
  --f-name:'Great Vibes'; --fw-name:400;
  --h1:3.9rem; --h1-md:5.6rem;

  --orn:linear-gradient(135deg,#C9748C,#F3D6DE 50%,#C9748C);
  --orn-l:#A8496A;
  --orn2:#5C7A5E;
  --frame:#C9748C;

  --hero-bg:linear-gradient(170deg,#FBF1EE 0%,#F6E1E4 100%);
  --hero-ink:#4A2430; --hero-card:rgba(74,36,48,.06);

  --card:#FFFFFF; --alt:#FBEEF0;
  --line:rgba(201,116,140,.45); --line-soft:rgba(74,36,48,.12);
  --tl:#A8496A; --dot-ink:#FBEEF0;
  --btn:#A8496A; --btn-ink:#FBEEF0;
  --muted:#7A5A5F; --shadow:0 10px 24px rgba(168,73,106,.10);
}
/* rose-vine corner instead of the default filigree corner */
.th-rose-garden-chapel .d-c1,
.th-rose-garden-chapel .d-c2,
.th-rose-garden-chapel .d-c3,
.th-rose-garden-chapel .d-c4{
  -webkit-mask-image:url(../img/motifs/rose-vine-corner.svg);
          mask-image:url(../img/motifs/rose-vine-corner.svg);
}
/* same vine, smaller, as the section divider */
.th-rose-garden-chapel .d-leaf{
  -webkit-mask-image:url(../img/motifs/rose-vine-corner.svg);
          mask-image:url(../img/motifs/rose-vine-corner.svg);
  width:58px; height:58px;
}


/* --------------------------------------------------------------------------
   3. VINEYARD VESPERS — wine and gold, deep evening hero
   -------------------------------------------------------------------------- */
.th-vineyard-vespers{
  --f-display:'Cormorant Garamond'; --fw:600;
  --f-name:'Great Vibes'; --fw-name:400;
  --h1:4.0rem; --h1-md:5.7rem;

  --orn:linear-gradient(135deg,#D9B44A,#F3E0A6 50%,#D9B44A);
  --orn-l:#7A1F33;
  --orn2:#3D5E3F;
  --frame:#D9B44A;

  --hero-bg:linear-gradient(160deg,#5C1330 0%,#3E0E23 60%,#2A0A18 100%);
  --hero-ink:#F3E4C7; --hero-card:rgba(243,228,199,.10);

  --card:#FFFCF6; --alt:#F3E8DC;
  --line:rgba(217,180,74,.4); --line-soft:rgba(61,14,35,.16);
  --tl:#7A1F33; --dot-ink:#F3E4C7;
  --btn:#7A1F33; --btn-ink:#F3E4C7;
  --muted:#6B5347; --shadow:0 10px 28px rgba(61,14,35,.14);
}
/* grapevine cross flanking the hero, via the `peacocks` feature */
.th-vineyard-vespers .d-side-l,
.th-vineyard-vespers .d-side-r{
  -webkit-mask-image:url(../img/motifs/grapevine-cross.svg);
          mask-image:url(../img/motifs/grapevine-cross.svg);
  width:100px;
}


/* --------------------------------------------------------------------------
   4. COASTAL DOVE — sand and soft blue, light seaside-chapel hero
   -------------------------------------------------------------------------- */
.th-coastal-dove{
  --f-display:'Cormorant Garamond'; --fw:600;
  --f-name:'Cormorant Garamond'; --fw-name:500; --ls-name:.03em;
  --h1:3.6rem; --h1-md:5.1rem;

  --orn:linear-gradient(135deg,#6E93A6,#D9E6EA 50%,#6E93A6);
  --orn-l:#3F6577;
  --orn2:#C9A24B;
  --frame:#6E93A6;

  --hero-bg:linear-gradient(170deg,#F7F3EA 0%,#E7EEF0 100%);
  --hero-ink:#233A44; --hero-card:rgba(35,58,68,.06);

  --card:#FFFFFF; --alt:#EEF3F2;
  --line:rgba(110,147,166,.45); --line-soft:rgba(35,58,68,.12);
  --tl:#3F6577; --dot-ink:#F7F3EA;
  --btn:#3F6577; --btn-ink:#F7F3EA;
  --muted:#5E6E71; --shadow:0 10px 24px rgba(35,58,68,.09);
}
/* dove with an olive sprig flanking the hero, via `peacocks` */
.th-coastal-dove .d-side-l,
.th-coastal-dove .d-side-r{
  -webkit-mask-image:url(../img/motifs/dove-branch.svg);
          mask-image:url(../img/motifs/dove-branch.svg);
  width:112px;
}


/* --------------------------------------------------------------------------
   5. MIDNIGHT CANDLELIGHT — navy and amber, candlelit evening service
   -------------------------------------------------------------------------- */
.th-midnight-candlelight{
  --f-display:'Cormorant Garamond'; --fw:600;
  --f-name:'Great Vibes'; --fw-name:400;
  --h1:4.0rem; --h1-md:5.8rem;

  --orn:linear-gradient(135deg,#E8B84B,#FBE6A8 50%,#E8B84B);
  --orn-l:#B8862F;
  --orn2:#8C9BB5;
  --frame:#E8B84B;

  --hero-bg:linear-gradient(165deg,#0F1B33 0%,#182B4D 55%,#22345C 100%);
  --hero-ink:#FCF4DD; --hero-card:rgba(245,233,200,.10);

  --card:#FFFEFA; --alt:#EEF0F6;
  --line:rgba(232,184,75,.4); --line-soft:rgba(15,27,51,.18);
  --tl:#22345C; --dot-ink:#F5E9C8;
  --btn:#22345C; --btn-ink:#F5E9C8;
  --muted:#565C6E; --shadow:0 10px 28px rgba(15,27,51,.14);
}
/* candle-and-star tile as the hero pattern */
.th-midnight-candlelight .d-pat{
  -webkit-mask-image:url(../img/motifs/candle-star.svg);
          mask-image:url(../img/motifs/candle-star.svg);
  -webkit-mask-size:88px 88px;
          mask-size:88px 88px;
  -webkit-mask-repeat:repeat;
          mask-repeat:repeat;
}










/* Self-hosted font for Modern Mono Hex only — see FONT-jost/ folder */
@font-face{
  font-family:'Jost';
  src:url('../fonts/jost-latin-400-normal.woff2') format('woff2'),
      url('../fonts/jost-latin-400-normal.woff') format('woff');
  font-weight:400; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Jost';
  src:url('../fonts/jost-latin-600-normal.woff2') format('woff2'),
      url('../fonts/jost-latin-600-normal.woff') format('woff');
  font-weight:600; font-style:normal; font-display:swap;
}


/* --------------------------------------------------------------------------
   1. MODERN MONO HEX — stripped-back minimalist, hexagon photo, no florals
   Deliberately skips corners/mandala/card-orn: the point is restraint, not
   more ornament. Only feature used is a faint dot-grid and the frame.
   -------------------------------------------------------------------------- */
.th-modern-mono-hex{
  --f-display:'Jost'; --fw:600;
  --f-name:'Jost'; --fw-name:600; --ls-name:.08em;
  --h1:2.9rem; --h1-md:4.4rem;

  --orn:#1A1A1A;            /* dot-grid colour in the hero */
  --orn-l:#1A1A1A;
  --orn2:#D8542C;           /* single accent colour, used sparingly */
  --frame:#1A1A1A;
  --pat:#FFFFFF; --pat-o:.10;

  --hero-bg:#F4F3EF;        /* flat, no gradient — the point is flatness */
  --hero-ink:#1A1A1A; --hero-card:rgba(26,26,26,.05);

  --card:#FFFFFF; --alt:#EFEEE8;
  --line:#1A1A1A; --line-soft:rgba(26,26,26,.14);
  --tl:#1A1A1A; --dot-ink:#F4F3EF;
  --btn:#1A1A1A; --btn-ink:#F4F3EF;
  --muted:#5B5B54; --shadow:none;
}
/* 1. Clip the REAL photo — .ws-art .arch, not .ws-frame */
.th-modern-mono-hex .ws-art .arch,
.th-modern-mono-hex .ws-art .arch img{
  -webkit-clip-path:polygon(25% 4%, 75% 4%, 100% 50%, 75% 96%, 25% 96%, 0% 50%) !important;
          clip-path:polygon(25% 4%, 75% 4%, 100% 50%, 75% 96%, 25% 96%, 0% 50%) !important;
  -webkit-mask-image:none !important;
          mask-image:none !important;
}

/* 2. Give the decorative ring overlay a matching hexagon outline instead of
      erasing its mask — keeps the thin border effect, now hexagon-shaped */
.th-modern-mono-hex .ws-frame{
  -webkit-mask-image:url(../img/motifs/hex-ring.svg) !important;
          mask-image:url(../img/motifs/hex-ring.svg) !important;
  -webkit-mask-size:contain !important;
          mask-size:contain !important;
  -webkit-mask-repeat:no-repeat !important;
          mask-repeat:no-repeat !important;
  -webkit-mask-position:center !important;
          mask-position:center !important;
  background:var(--frame) !important;
}


/* --------------------------------------------------------------------------
   2. BOTANICAL CIRCLE — circular photo, full-colour foliage wreath, no
   dark hero at all. Warm, organic, asymmetric spacing.
   -------------------------------------------------------------------------- */
.th-botanical-circle{
  --f-display:'Cormorant Garamond'; --fw:600;
  --f-name:'Great Vibes'; --fw-name:400;
  --h1:3.6rem; --h1-md:5.2rem;

  --orn:#7C8A5E;
  --orn-l:#5F6D46;
  --orn2:#B9754E;
  --frame:#FFFFFF;

  --hero-bg:#FBF7EE;        /* light throughout — no hero-deep, no gradient */
  --hero-ink:#3A3324; --hero-card:rgba(58,51,36,.06);

  --card:#FFFFFF; --alt:#F3EEE1;
  --line:rgba(124,138,94,.4); --line-soft:rgba(58,51,36,.12);
  --tl:#7C8A5E; --dot-ink:#FBF7EE;
  --btn:#5F6D46; --btn-ink:#FBF7EE;
  --muted:#6E6A57; --shadow:0 10px 24px rgba(58,51,36,.08);
}
/* asymmetric spacing: shift the hero content left, let the wreath breathe right */
.th-botanical-circle .ws-hero{ text-align:left !important; }
.th-botanical-circle .ws-name{ margin-left:4%; }

/* wreath ring — full colour, NOT a mask, sits on the mandala layer.
   Turn off any rotation this layer normally has; a wreath should sit still. */
.th-botanical-circle .d-mandala{
  -webkit-mask-image:none !important;
          mask-image:none !important;
  background-image:url(../img/motifs/botanical-wreath.svg) !important;
  background-repeat:no-repeat;
  background-size:contain;
  background-color:transparent !important;
  animation:none !important;
  opacity:1;
}
/* small leaf sprigs at the corners instead of gold filigree */
.th-botanical-circle .d-c1,
.th-botanical-circle .d-c2,
.th-botanical-circle .d-c3,
.th-botanical-circle .d-c4{
  -webkit-mask-image:url(../img/motifs/botanical-wreath.svg);
          mask-image:url(../img/motifs/botanical-wreath.svg);
  -webkit-mask-position:center; mask-position:center;
  width:70px; height:70px;
}

/* --- circular photo crop (see the note at the top of this file) --- */
.th-botanical-circle .ws-art .arch,
.th-botanical-circle .ws-art .arch img{
  -webkit-clip-path:circle(50% at 50% 50%) !important;
          clip-path:circle(50% at 50% 50%) !important;
  -webkit-mask-image:none !important;
          mask-image:none !important;
}

.th-botanical-circle .ws-frame{
  -webkit-mask-image:url(../img/motifs/circle-ring.svg) !important;
          mask-image:url(../img/motifs/circle-ring.svg) !important;
  -webkit-mask-size:contain !important;
          mask-size:contain !important;
  -webkit-mask-repeat:no-repeat !important;
          mask-repeat:no-repeat !important;
  -webkit-mask-position:center !important;
          mask-position:center !important;
  background:var(--frame) !important;
}


/* ==========================================================================
   Contrast fixes (added after review; keep at the end of the file)
   - The primary hero button must stand out from a deep hero (WCAG 1.4.11, 3:1).
   - Timeline dates on Botanical Circle need 4.5:1 (sage #7C8A5E was 3.7:1).
   ========================================================================== */
.th-bengali-alpona .ws-hero .ws-btn{background:#FFF3E4!important;color:#8C1220!important}
.th-cathedral-ivory .ws-hero .ws-btn{background:linear-gradient(135deg,#D9B44A,#F3E0A6 50%,#D9B44A)!important;color:#1B2A4A!important}
.th-vineyard-vespers .ws-hero .ws-btn{background:linear-gradient(135deg,#D9B44A,#F3E0A6 50%,#D9B44A)!important;color:#3E0E23!important}
.th-midnight-candlelight .ws-hero .ws-btn{background:linear-gradient(135deg,#E8A93C,#FFD98A 50%,#E8A93C)!important;color:#0F1B33!important}
.th-punjabi-phulkari .ws-hero .ws-btn{background:#FFC93C!important;color:#2A1704!important}
.th-botanical-circle .ws-tl-date{color:#5F6D46}
/* Botanical Circle: the wreath must hug the circular photo, not spread behind the names.
   (It was 720px wide around a ~235px photo, so leaves landed on the text.) */
.th-botanical-circle .d-mandala{width:min(330px,88vw)!important}
@media (min-width:768px){.th-botanical-circle .d-mandala{width:430px!important}}
@media (min-width:768px){.th-botanical-circle .ws-hero-in{column-gap:4.75rem}}

/* --------------------------------------------------------------------------
   4. COLOR BLOCK WAVE — solid alt-colour block, thin wave rule, blob photo
   -------------------------------------------------------------------------- */
.th-colorblock-wave{
  --f-display:'Jost'; --fw:600;
  --f-name:'Jost'; --fw-name:400; --ls-name:.03em;
  --h1:2.9rem; --h1-md:4.2rem;

  --orn:#EFEAE0; --orn-l:#2E4756; --orn2:#EFEAE0; --frame:#EFEAE0;

  --hero-bg:#3F5F6E; --hero-ink:#EFEAE0; --hero-card:rgba(239,234,224,.10);

  --card:#FFFFFF; --alt:#3F5F6E;
  --line:rgba(239,234,224,.35); --line-soft:rgba(63,95,110,.14);
  --tl:#3F5F6E; --dot-ink:#EFEAE0;
  --btn:#3F5F6E; --btn-ink:#EFEAE0;
  --muted:#5C6B6F; --shadow:0 8px 20px rgba(63,95,110,.10);
}
.th-colorblock-wave .ws-h2::after{
  content:''; display:block; width:60px; height:3px; margin:.6em auto 0;
  -webkit-mask-image:url(../img/motifs/wave-strip.svg);
          mask-image:url(../img/motifs/wave-strip.svg);
  -webkit-mask-size:contain; mask-size:contain;
  -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat;
  background:var(--tl);
}
.th-colorblock-wave .ws-art .arch,
.th-colorblock-wave .ws-art .arch img{
  -webkit-clip-path:none !important; clip-path:none !important;
  -webkit-mask-image:none !important; mask-image:none !important;
  /* organic blob via uneven border-radius — no clip-path needed at all */
  border-radius:62% 38% 55% 45% / 48% 45% 55% 52% !important;
  overflow:hidden;
}
.th-colorblock-wave .ws-frame{
  -webkit-mask-image:url(../img/motifs/blob-ring.svg) !important;
          mask-image:url(../img/motifs/blob-ring.svg) !important;
  -webkit-mask-size:contain !important; mask-size:contain !important;
  -webkit-mask-repeat:no-repeat !important; mask-repeat:no-repeat !important;
  -webkit-mask-position:center !important; mask-position:center !important;
  background:var(--frame) !important;
}
.th-colorblock-wave .ws-btn{ border-radius:999px !important; }



