:root{
  --white:#ffffff;
  --gold:#D4AF37;
  --gold-dark:#B8912C;
  --ink:#1c1c1c;
  --gray:#6f6f6f;
  --light-gray:#f6f5f2;
  --border:#eae7e1;
  --radius:16px;
  --shadow:0 10px 30px rgba(0,0,0,0.06);
  --serif:'Playfair Display',serif;
  --sans:'Montserrat',sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:var(--sans);color:var(--ink);background:var(--white);line-height:1.6;-webkit-font-smoothing:antialiased;}
img{max-width:100%;display:block;}
a{text-decoration:none;color:inherit;}
ul{list-style:none;}

/* Header */
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,0.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);}
.header-inner{max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:16px 24px;}
.logo-placeholder{font-family:var(--serif);font-size:1.5rem;font-weight:600;letter-spacing:0.5px;color:var(--ink);}
.logo-img{height:36px;}
.main-nav ul{display:flex;gap:28px;}
.main-nav a{font-size:0.85rem;letter-spacing:0.5px;text-transform:uppercase;font-weight:500;color:var(--ink);transition:color .2s;position:relative;}
.main-nav a:hover{color:var(--gold-dark);}
.header-actions{display:flex;align-items:center;gap:16px;}
.search-input{border:1px solid var(--border);border-radius:30px;padding:8px 16px;font-family:var(--sans);font-size:0.85rem;width:180px;background:var(--light-gray);outline:none;transition:border-color .2s;}
.search-input:focus{border-color:var(--gold);}
.toggles{display:flex;gap:10px;}
.toggle-btn{border:1px solid var(--border);background:var(--white);border-radius:30px;padding:6px 12px;font-size:0.75rem;letter-spacing:0.5px;cursor:pointer;font-family:var(--sans);color:var(--gray);}
.toggle-btn .opt{transition:color .2s,font-weight .2s;}
.toggle-btn .opt.active{color:var(--gold-dark);font-weight:600;}
.hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:28px;height:22px;background:none;border:none;cursor:pointer;}
.hamburger span{display:block;height:2px;width:100%;background:var(--ink);border-radius:2px;transition:all .3s;}
.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.hamburger.open span:nth-child(2){opacity:0;}
.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* Mobile nav */
.mobile-nav{position:fixed;top:0;right:-100%;width:78%;max-width:320px;height:100vh;background:var(--white);z-index:200;box-shadow:-10px 0 40px rgba(0,0,0,0.1);padding:100px 32px 32px;transition:right .35s ease;}
.mobile-nav.open{right:0;}
.mobile-nav ul{display:flex;flex-direction:column;gap:24px;margin-bottom:32px;}
.mobile-nav a{font-size:1rem;text-transform:uppercase;letter-spacing:0.5px;font-weight:500;}
.mobile-nav-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.4);z-index:150;opacity:0;pointer-events:none;transition:opacity .3s;}
.mobile-nav-overlay.open{opacity:1;pointer-events:auto;}

/* Buttons */
.btn{display:inline-block;padding:14px 32px;border-radius:30px;font-size:0.85rem;letter-spacing:0.5px;text-transform:uppercase;font-weight:600;transition:all .25s;cursor:pointer;border:1px solid transparent;text-align:center;}
.btn-primary{background:var(--gold);color:var(--white);}
.btn-primary:hover{background:var(--gold-dark);}
.btn-outline{border:1px solid var(--ink);color:var(--ink);width:100%;padding:12px 20px;font-size:0.75rem;}
.btn-outline:hover{background:var(--ink);color:var(--white);}
.btn-whatsapp{background:#25D366;color:#fff;}
.btn-whatsapp:hover{background:#1fb455;}
.btn-email{background:var(--ink);color:#fff;}
.btn-email:hover{background:#000;}

/* Hero */
.hero{padding:110px 24px 90px;text-align:center;background:linear-gradient(180deg,#fffdf8 0%,#ffffff 100%);}
.hero-inner{max-width:720px;margin:0 auto;}
.eyebrow{color:var(--gold-dark);font-size:0.8rem;letter-spacing:2px;font-weight:600;margin-bottom:16px;}
.hero h1{font-family:var(--serif);font-size:3rem;line-height:1.2;margin-bottom:20px;font-weight:600;}
.hero-sub{color:var(--gray);font-size:1.05rem;margin-bottom:36px;}

/* Sections */
section{padding:80px 24px;max-width:1280px;margin:0 auto;}
.section-title{font-family:var(--serif);font-size:2.2rem;text-align:center;margin-bottom:40px;font-weight:600;}

/* Filters */
.filter-bar{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:50px;}
.filter-btn{border:1px solid var(--border);background:var(--white);padding:9px 20px;border-radius:30px;font-size:0.8rem;letter-spacing:0.3px;cursor:pointer;transition:all .2s;font-family:var(--sans);color:var(--ink);}
.filter-btn:hover{border-color:var(--gold);}
.filter-btn.active{background:var(--ink);color:var(--white);border-color:var(--ink);}

/* Grid */
.template-grid{display:grid;grid-template-columns:repeat(1,1fr);gap:40px;}
@media(min-width:640px){.template-grid{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1024px){.template-grid{grid-template-columns:repeat(3,1fr);}}
@media(min-width:1280px){.template-grid{grid-template-columns:repeat(4,1fr);}}

.template-card{opacity:1;transition:transform .3s;}
.template-card:hover{transform:translateY(-6px);}
.template-card.hidden{display:none;}

.card-media{position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);}
.carousel{position:relative;aspect-ratio:9/16;overflow:hidden;background:#111;}
.carousel-track{display:flex;height:100%;width:200%;transition:transform .4s ease;}
.carousel-slide{width:50%;height:100%;flex-shrink:0;}
.carousel-slide img{width:100%;height:100%;object-fit:cover;}
.carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,0.85);border:none;width:32px;height:32px;border-radius:50%;font-size:1.2rem;cursor:pointer;color:var(--ink);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s;}
.carousel:hover .carousel-arrow{opacity:1;}
.carousel-arrow.prev{left:10px;}
.carousel-arrow.next{right:10px;}
.carousel-dots{position:absolute;bottom:12px;left:0;right:0;display:flex;justify-content:center;gap:6px;}
.dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,0.5);transition:background .2s;}
.dot.active{background:var(--gold);}
.tag-badge{position:absolute;top:12px;left:12px;background:rgba(255,255,255,0.92);color:var(--ink);font-size:0.7rem;letter-spacing:0.5px;text-transform:uppercase;padding:5px 12px;border-radius:20px;font-weight:600;}

.card-info{padding:20px 4px 0;}
.card-title{font-family:var(--serif);font-size:1.15rem;margin-bottom:6px;font-weight:600;}
.card-price{color:var(--gold-dark);font-weight:600;font-size:1.05rem;margin-bottom:14px;}
.card-cta{margin-top:4px;}

.no-results{display:none;text-align:center;color:var(--gray);margin-top:40px;}
.no-results.show{display:block;}

/* About */
.about-section{background:var(--light-gray);border-radius:var(--radius);text-align:center;}
.about-text{max-width:700px;margin:0 auto;color:var(--gray);font-size:1.05rem;}

/* CTA */
.cta-section{text-align:center;padding:90px 24px;}
.cta-section h2{font-family:var(--serif);font-size:2.4rem;margin-bottom:16px;}
.cta-section p{color:var(--gray);max-width:520px;margin:0 auto 36px;}
.cta-buttons{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;}

/* Footer */
.site-footer{background:var(--ink);color:#e8e6e1;padding:56px 24px 28px;}
.footer-inner{max-width:1280px;margin:0 auto;display:flex;flex-wrap:wrap;justify-content:space-between;gap:32px;margin-bottom:32px;}
.site-footer .logo-placeholder{color:var(--gold);}
.footer-about{color:#a8a6a1;margin-top:10px;max-width:320px;font-size:0.9rem;}
.footer-contact{display:flex;flex-direction:column;gap:10px;font-size:0.9rem;}
.footer-contact a:hover{color:var(--gold);}
.footer-copy{text-align:center;color:#7d7b76;font-size:0.8rem;border-top:1px solid rgba(255,255,255,0.08);padding-top:20px;max-width:1280px;margin:0 auto;}

/* Mobile */
@media(max-width:900px){
  .main-nav,.search-wrap{display:none;}
  .hamburger{display:flex;}
  .header-inner{padding:14px 20px;}
  .toggles{gap:6px;}
}
@media(max-width:640px){
  .hero{padding:80px 20px 60px;}
  .hero h1{font-size:2.1rem;}
  section{padding:60px 20px;}
  .section-title{font-size:1.7rem;}
  .cta-section h2{font-size:1.9rem;}
}
