:root{
    --navy:#140a3d;
    --indigo:#241060;
    --purple:#5b2a9e;
    --gold:#f5c542;
    --gold-d:#c99a12;
    --bg:#f7f3ff;
    --ink:#1e1b2e;
    --mute:#5b5670;
    --line:#ded6f0;
    --u:8px
}

*{
    box-sizing:border-box
}

html{
    scroll-behavior:smooth
}

body{
    margin:0;
    background:#fff;
    color:var(--ink);
    font:16px/1.65 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif
}

img{
    max-width:100%;
    height:auto;
    display:block
}
ul,ol{
        list-style:none;
        margin:0;
        padding:0
}

a{
    color:inherit
}
.wrap{
    max-width:1120px;
    margin:0 auto;
    padding:0 calc(var(--u)*2)
}

h1,h2,h3{
    line-height:1.25;
    margin:0 0 var(--u)
}

h1,h2{
    font-family:Georgia,"Times New Roman",serif
}

h1{
    font-size:clamp(2.4rem,6vw,4rem);
    color:var(--gold)
}

h2{
    font-size:1.9rem;
    margin-bottom:calc(var(--u)*2)
}

h3{font-size:1.15rem}

section{padding:calc(var(--u)*8) 0
}

.alt{
    background:var(--bg)
}
.lead{
    font-size:1.1rem;
    color:var(--mute);
    max-width:680px
}

.skip{
    position:absolute;
    left:-999px
}
.skip:focus{
    left:8px;
    top:8px;
    background:#fff;
    padding:8px;
    z-index:99
}

:focus-visible{
    outline:3px solid var(--gold-d);
    outline-offset:2px
}
.head{
    background:var(--navy);
    color:#f1e9ff;
    position:sticky;
    top:0;z-index:20;
    border-bottom:1px solid #3a2a7a
}
.bar{
    display:flex;
    align-items:center;
    gap:calc(var(--u)*3);
    padding-top:10px;
    padding-bottom:10px;
    flex-wrap:wrap
}
.grow{
    flex:1
}
.logo{
    display:flex;
    align-items:center;
    gap:12px;
    text-decoration:none
}
.logo img{
    width:48px;
    height:48px;
    border-radius:50%
}
.bn{
    display:flex;
    flex-direction:column;
    line-height:1.2
}
.bn strong{
    color:var(--gold);
    font-family:Georgia,serif;
    font-size:1.1rem
}
.bn small{
    font-size:.75rem;
    color:#cfc3ee
}
.bar nav{
    flex:1
}
.bar nav ul{
    display:flex;
    gap:calc(var(--u)*3);
    justify-content:center
}
.bar nav a{
    text-decoration:none;
    font-weight:500
}
.bar nav a:hover{
    color:var(--gold)
}
.btn{
    display:inline-block;
    background:var(--purple);
    color:#fff;
    margin-bottom: 5px;
    padding:12px 24px;
    border-radius:999px;
    text-decoration:none;
    border:2px solid var(--purple);
    cursor:pointer;
    font:inherit;
    font-weight:500
}
.btn:hover{
    background:var(--indigo);
    border-color:var(--indigo)
}
.btn.gold{
    background:var(--gold);
    border-color:var(--gold);
    color:var(--navy)
}
.btn.gold:hover{
    background:#ffd966;
    border-color:#ffd966
}
.btn.ghost{
    background:transparent;
    color:var(--purple)
}
.btn.ghost:hover{
    background:var(--purple);
    color:#fff
}
.hero .btn.ghost,.head .btn.ghost{
    color:#fff;border-color:#fff
}
.hero .btn.ghost:hover{
    background:#fff;
    color:var(--navy)
}
.btn.small{
    padding:6px 16px
}
.btn[disabled]{
    opacity:.5;
    cursor:not-allowed
}
.link{
    color:var(--purple);
    font-weight:600
}
.head .link{
    color:var(--gold)
}

#bcal {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    flex-wrap: wrap;
}

#bcal i {
    font-size: 1.2em;
}

.hero{
    background:radial-gradient(
        ellipse at 75% 40%,
        #3b1d8a 0%,
        #1d0f55 45%,
        #0e0630 100%);
        color:#f1e9ff;
        padding:calc(var(--u)*9) 0
    }
.hero-grid{
    display:grid;
    grid-template-columns:1.1fr 1fr;
    gap:calc(var(--u)*5);
    align-items:center
}
.eyebrow{
    text-transform:uppercase;
    letter-spacing:.14em;font-size:.85rem;
    color:#cfc3ee;
    font-weight:600;
    margin:0 0 var(--u)}.tag{font-family:Georgia,serif;font-style:italic;font-size:1.35rem;
    color:#fff;margin:0 0 16px
}
.hero .lead{
    color:#d9cff2
}
.hero-art img{
    width:min(440px,100%);
    margin:0 auto;
    border-radius:50%;
    box-shadow:0 24px 60px rgba(0,0,0,.45);
    animation:fl 9s ease-in-out infinite
}

@keyframes fl{
    50%{transform:translateY(-8px)}
}
.grid2{
    display:grid;grid-template-columns:1fr 1fr;
    gap:calc(var(--u)*4)
}
.card{
    background:#fff;
    border:1px solid var(--line);
    border-radius:14px;
    overflow:hidden;
    transition:transform .3s,box-shadow .3s
}
.card:hover{
    transform:translateY(-5px);
    box-shadow:0 18px 40px rgba(36,16,96,.16)
}
.card>img{
    width:100%;
    aspect-ratio:4/3;
    object-fit:cover;
    object-position:50% 20%
}
.pad{
    padding:calc(var(--u)*3)
}
.steps,.svc{
    display:grid;
    gap:calc(var(--u)*3);
    margin-top:calc(var(--u)*3)
}
.steps{
    grid-template-columns:repeat(3,1fr)
}
.svc{
    grid-template-columns:repeat(auto-fit,minmax(300px,1fr))
}
.num{
    display:inline-grid;
    place-items:center;
    width:40px;
    height:40px;
    border-radius:50%;
    background:var(--navy);
    color:var(--gold);
    font-weight:700;
    margin-bottom:12px
}
.quote{
    background:linear-gradient(135deg,var(--indigo),var(--navy));color:#f1e9ff;
    text-align:center
}
.quote blockquote{
    margin:0 auto;
    max-width:780px
}
.quote h2{
    color:#cfc3ee;
    font-size:1rem;
    text-transform:uppercase;
    letter-spacing:.14em;
    font-family:inherit
}
.quote .q{
    font-family:Georgia,serif;
    font-style:italic;
    font-size:clamp(1.6rem,4vw,2.4rem);
    color:var(--gold);
    margin:0 0 16px;line-height:1.3
}
.events{
    margin-top:calc(var(--u)*3)
}
.events li{
    display:grid;
    grid-template-columns:150px 1fr 150px auto;
    gap:calc(var(--u)*2);
    align-items:center;
    background:#fff;
    border:1px solid var(--line);
    border-radius:12px;
    padding:calc(var(--u)*2);
    margin-bottom:12px
}
.events li:hover{
    border-color:var(--purple)
}
.events .msgli{
    display:block;
    color:var(--mute)
}
.dbadge{
    background:var(--navy);
    color:var(--gold);
    font-weight:700;
    border-radius:10px;
    padding:10px;
    text-align:center;
    line-height:1.3
}
.dbadge small{
    display:block;
    font-weight:400;
    color:#cfc3ee
}
.ev strong,.price strong{
    display:block
}
.price{
    text-align:right
}
.meta{
    color:var(--mute);
    font-size:.875rem;
    margin:0
}
.gal{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:calc(var(--u)*2);
    margin-top:calc(var(--u)*3)
}
.gal img{
    width:100%;aspect-ratio:3/4;
    object-fit:cover;
    object-position:50% 15%;
    border-radius:12px
}
.ct{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:calc(var(--u)*3);
    margin:calc(var(--u)*3) 0 0
}
.ct dt{
    font-weight:700;
    color:var(--purple)
}
.ct dd{
    margin:0
}
.foot{
    background:var(--navy);
    color:#cfc3ee;
    padding:calc(var(--u)*5) 0
}
.fgrid{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    flex-wrap:wrap
}
.foot .copy{
    margin:0;
    font-size:.875rem
}
.foot a{
    color:var(--gold)
}
.menu{
    display:none;
    background:none;
    border:2px solid #5a4a9a;
    color:#fff;
    border-radius:6px;
    padding:8px 14px;
    font:inherit;
    cursor:pointer
}
.fab{
    display:none
}
dialog{
    border:0;
    border-radius:14px;
    padding:calc(var(--u)*3);
    width:min(520px,calc(100vw - 24px));
    max-height:92vh;
    overflow:auto;
    box-shadow:0 30px 80px rgba(0,0,0,.5)
}
dialog::backdrop{
    background:rgba(14,6,48,.75)
}
.mh{
    display:flex;
    justify-content:space-between;
    gap:12px;
    align-items:flex-start
}
.mh h2{
    margin:0
}
label{
    display:block;
    font-weight:600;
    margin:14px 0 4px
}
input,select,textarea{
    width:100%;
    padding:12px;
    border:1px solid #8a84a3;
    border-radius:8px;
    font:inherit;
    background:#fff;
    color:var(--ink)
}
.tot{
    display:flex;
    justify-content:space-between;
    font-size:1.25rem;
    border-top:1px solid var(--line);
    margin-top:16px;
    padding-top:12px
}
.wide{
    width:100%;
    margin:8px 0
}
.tk{
    font-size:1.6rem;
    font-weight:700;
    color:var(--purple);
    letter-spacing:.06em;
    margin:0 0 12px
}
.rv{
    opacity:0;
    transform:translateY(26px);
    transition:opacity .7s,transform .7s
}
.rv.in{
    opacity:1;transform:none
}
.card.rv.in:hover{
    transform:translateY(-5px)
}



/* admin */
.adm{
    padding-top:calc(var(--u)*4);
    padding-bottom:calc(var(--u)*8)
}
.box{
    max-width:480px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:12px;
    padding:calc(var(--u)*3);
    margin-top:16px
}
#cr{
    max-width:none
}
.msg{
    color:#9b1c1c;
    font-weight:500
}
.tabs{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    margin-bottom:20px
}
.tabs button{
    background:#fff;
    border:2px solid var(--line);
    border-radius:999px;
    padding:8px 18px;
    font:inherit;
    font-weight:600;
    cursor:pointer
}
.tabs .on{
    background:var(--purple);
    color:#fff;
    border-color:var(--purple)
}
.stats4{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
    gap:16px
}
.stats4 li{
    background:var(--bg);
    border-radius:12px;
    padding:20px
}
.stats4 b{
    display:block;
    font-size:1.8rem;
    color:var(--purple)
}
.eform{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:4px 16px;
    margin-bottom:12px
}
.eform .full{
    grid-column:1/-1
}
.chk{
    display:flex;
    gap:8px;
    align-items:center
}
.chk input{
    width:auto
}
.fl{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    margin-bottom:16px
}
.fl input,.fl select{
    flex:1;
    min-width:180px;
    width:auto
}
.tw{
    overflow-x:auto
}
table{
    border-collapse:collapse;
    width:100%;
    font-size:.9rem
}
th,td{
    text-align:left;
    padding:10px;
    border-bottom:1px solid var(--line);
    vertical-align:top
}
th{
    background:var(--bg);
    white-space:nowrap
}
td .btn{
    margin:2px 4px 2px 0
}
@media(max-width:900px){
    .hero-grid,.grid2,.steps,.ct,.gal{
        grid-template-columns:1fr
    }
    .hero-art{
        order:-1
    }
    .hero-art img{
        width:min(300px,80%)
    }
 .menu{
    display:inline-block;
    margin-left:auto
}
.bar nav{
    display:none;
    width:100%;order:5
}
.bar nav.open{
    display:block
}
.bar nav ul{
    flex-direction:column;
    gap:12px;
    align-items:flex-start
}
.bar>.btn.gold{
    display:none
}
 .events li{
    grid-template-columns:1fr 1fr
}
.events .ev,.events .dbadge{
    grid-column:1/-1
}
.price{
    text-align:left
}
 .fab{
    display:block;
    position:fixed;
    left:12px;
    right:12px;
    bottom:12px;
    z-index:15
}
.fab .btn{
    width:100%;
    box-shadow:0 8px 24px rgba(0,0,0,.4)
}
body{
    padding-bottom:76px
}
.gal img{
    aspect-ratio:4/3}
}

@media(prefers-reduced-motion:reduce){
    .rv{
        opacity:1;
        transform:none;
        transition:none
    }
    .hero-art img{
        animation:none
    }
    .card{
        transition:none
    }
}
.steps,.svc{
    counter-reset:n
}
.steps>li,.svc>li{
    counter-increment:n
}
.num::before{
    content:counter(n)
}
.stats{
    background:var(--gold);
    color:var(--navy);
    padding:0
}
.stats ul{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:16px;
    padding-top:20px;
    padding-bottom:20px;
    text-align:center
}
.stats b{
    display:block;
    font-family:Georgia,serif;
    font-size:2rem;line-height:1.2
}
.stats span{
    font-size:.9rem;
    font-weight:600
}
.split{
    display:grid;
    grid-template-columns:.8fr 1.2fr;
    gap:calc(var(--u)*6);
    align-items:center
}
.split img{
    width:100%;
    max-width:420px;
    border-radius:16px;
    aspect-ratio:3/4;object-fit:cover;
    object-position:50% 15%;box-shadow:0 20px 50px rgba(36,16,96,.25)
}
.eyebrow.dk{
    color:var(--purple)
}
.gal{
    grid-template-columns:repeat(4,1fr)
}
.gb{
    display:block;
    width:100%;
    padding:0;
    border:0;
    background:none;
    cursor:zoom-in;
    border-radius:12px;
    overflow:hidden
}
.gb img{
    transition:transform .5s
}
.gb:hover img,.gb:focus-visible img{
    transform:scale(1.05)
}
.lb{
    max-width:min(92vw,720px);
    background:var(--navy);
    color:#fff;text-align:center
}
.lb img{
    max-height:72vh;
    width:auto;
    max-width:100%;
    margin:12px auto;
    border-radius:10px
}
.lb .meta{
    color:#cfc3ee
}
.lbn{
    display:flex;
    gap:12px;
    justify-content:center
}
.nf{
    text-align:center;
    padding-top:80px;
    padding-bottom:80px
}
.nf img{
    width:140px;
    margin:0 auto 20px;
    border-radius:50%
}
.nf h1{
    color:var(--purple)
}

@media(max-width:900px){
    .gal{
        grid-template-columns:repeat(2,1fr)
    }
    .split{
        grid-template-columns:1fr
    }
    .stats ul{
        grid-template-columns:1fr
    }
    .split img{
        margin:0 auto
    }
}

/* v3: event cards, filters, auth, account */
.chips{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    margin-top:20px
}
.chip{
    background:#fff;
    border:2px solid var(--line);
    border-radius:999px;
    padding:6px 16px;
    font:inherit;
    font-weight:600;
    cursor:pointer;
    color:var(--ink)
}
.chip.on{
    background:var(--purple);
    border-color:var(--purple);
    color:#fff
}
.events.egrid{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(290px,1fr));
    gap:20px
}
.events.egrid li{
    display:flex;
    flex-direction:column;
    grid-template-columns:none;
    padding:0;
    margin:0;
    gap:0;
    align-items:stretch
}
.events.egrid li.msgli{
    grid-column:1/-1;
    display:block;
    border:0;
    background:none
}
.evc .cv{
    width:100%;
    aspect-ratio:16/10;
    object-fit:cover;
    object-position:50% 20%
}
.evc .cv.ph{
    object-fit:contain;
    background:var(--navy);
    padding:14px
}
.evc .pad{
    display:flex;
    flex-direction:column;
    gap:6px;
    flex:1;
    padding:18px
}
.evc h3{
    margin:4px 0 0
}
.evc p{
    margin:0
}
.evc .dt{
    color:var(--purple);
    font-weight:600
}
.tag{
    display:inline-block;
    align-self:flex-start;
    background:var(--bg);
    color:var(--purple);
    font-size:.75rem;
    font-weight:700;
    letter-spacing:.06em;
    text-transform:uppercase;
    padding:2px 10px;
    border-radius:999px
}
.desc{
    color:var(--mute);
    font-size:.9rem;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden
}
.bar2{
    height:6px;
    border-radius:99px;
    background:var(--line);
    overflow:hidden;
    margin-top:6px
}
.bar2 span{
    display:block;
    height:100%;
    background:var(--gold-d)
}
.foot2{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-top:auto;
    padding-top:10px
}
.foot2 .pr strong{
    font-size:1.15rem
}
.head .btn.ghost.small{
    padding:6px 16px
}
.pl{
    display:flex;
    gap:12px;
    flex-wrap:wrap
}
.lnk{
    background:none;
    border:0;
    padding:0;
    font:inherit;
    color:var(--purple);
    text-decoration:underline;
    cursor:pointer
}
.acc{
    padding:calc(var(--u)*5) 0 calc(var(--u)*8)
}
.acc h1{
    color:var(--purple);
    font-size:2rem
}
.acc .tabs{
    display:flex;
    gap:8px;
    margin:16px 0 24px
}
.acc .tabs button{
    background:#fff;
    border:2px solid var(--line);
    border-radius:999px;
    padding:8px 20px;
    font:inherit;
    font-weight:600;
    cursor:pointer
}
.acc .tabs .on{
    background:var(--purple);
    color:#fff;
    border-color:var(--purple)
}
.bklist{
    display:grid;
    gap:14px
}
.bkc{
    display:grid;
    grid-template-columns:1fr auto;
    gap:8px 16px;
    padding:18px;
    align-items:start
}
.bkc h3{
    margin:0
}
.bkc .acts{
    grid-column:1/-1;
    display:flex;
    gap:8px;
    flex-wrap:wrap
}
.bkc p{
    margin:2px 0
}
.bd{
    display:inline-block;
    padding:2px 12px;
    border-radius:999px;
    font-size:.78rem;
    font-weight:700;
    background:var(--line);
    color:var(--ink)
}
.bd.paid{
    background:#d9f5e1;
    color:#14672b
}
.bd.pending{
    background:#fff0c9;
    color:#7a5a00
}
.bd.cancelled{
    background:#eee;
    color:#555
}
.bd.refunded{
    background:#dbe9ff;
    color:#1b4a9b
}
.pf{
    max-width:480px
}
.sub{
    font-size:1.1rem;
    margin:28px 0 4px
}
.ok{
    color:#14672b;
    font-weight:600
}

.footer-social {
    display: flex;
    justify-content: left;
    align-items: left;
    gap: 20px;
}

.footer-social a {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background-color: #f0f0f0;
    color: #333333;
    font-size: 20px;
    text-decoration: none;
    opacity: 1;
    visibility: visible;
    transition: all 0.3s ease;
}

dd a {
    color: inherit;
    text-decoration: none;
    overflow-wrap: anywhere;
    transition: color 0.2s ease;
}

dd a:hover {
    color: var(--purple);
    text-decoration: underline;
}

/* Hover animation */
.footer-social a:hover {
    transform: translateY(-5px);
}

/* Facebook */
.footer-social a:nth-child(1):hover {
    background-color: #1877F2;
    color: #ffffff;
}

/* Instagram */
.footer-social a:nth-child(2):hover {
    background: linear-gradient(45deg,
                #feda75,
                #fa7e1e,
                #d62976,
                #962fbf,
                #4f5bd5);
    color: #ffffff;
}

/* YouTube */
.footer-social a:nth-child(3):hover {
    background-color: #FF0000;
    color: #ffffff;
}

/* whatsapp group button */
.btn-whatsapp {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;

    max-width: 100%;
    min-width: 0;
    padding: 12px 22px;

    background-color: #25D366;
    color: #ffffff;
    border: 2px solid #25D366;
    border-radius: 999px;

    font: inherit;
    font-weight: 600;
    line-height: 1.4;
    text-align: center;
    text-decoration: none;

    cursor: pointer;
    white-space: normal;
    overflow-wrap: anywhere;

    box-sizing: border-box;
    transition:
        background-color 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        transform 0.2s ease;
}

.btn-whatsapp:hover {
    background-color: #128C7E;
    border-color: #128C7E;
    color: #ffffff;
    box-shadow: 0 4px 12px rgba(18, 140, 126, 0.25);
}

.btn-whatsapp:active {
    transform: scale(0.98);
}

.btn-whatsapp:focus-visible {
    outline: 3px solid #128C7E;
    outline-offset: 4px;
}

@media (max-width: 480px) {
    .btn-whatsapp {
        max-width: 100%;
        padding: 10px 16px;
        gap: 8px;
        font-size: 14px;
    }

    }

@media (prefers-reduced-motion: reduce) {
    .btn-whatsapp {
        transition: none;
    }
}
/* v-final: inline SVG icons, services photos, gallery button */
.ic{width:1.25em;height:1.25em;fill:currentColor;flex:none;display:inline-block}
.btn-whatsapp .ic{width:24px;height:24px}.btn-whatsapp.small{padding:6px 16px}.btn-whatsapp.small .ic{width:20px;height:20px}
.footer-social a .ic{width:20px;height:20px}
.galmore{text-align:center;margin:24px 0 0}
.svc .card > img {
    width: 100%;
    height: auto;
    object-fit: cover;
    object-position: 50% 22%;
}

.svc .pad h3 {
    margin-top: 0;
}


.developer-credit {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 6px;
    padding: 15px 10px;
    width: 100%;
    box-sizing: border-box;
    font-size: 13px;
    color: #888;
}

.developer-credit a {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    color: inherit;
    text-decoration: none;
    max-width: 100%;
}

.developer-logo {
    display: block;
    width: 100px;
    max-width: 100%;
    height: auto;
    object-fit: contain;
}

.developer-name {
    font-size: 14px;
    font-weight: 600;
    color: inherit;
    text-align: center;
}

.developer-credit a:hover .developer-name {
    text-decoration: underline;
}