@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=Fraunces:ital,opsz,wght@1,9..144,500&family=Karla:wght@400;500;600;700&display=swap');

:root{
  --cream:        #f2ead9;
  --cream-deep:   #e8dcc2;
  --paper:        #faf5e9;
  --brown:        #5c3a21;
  --brown-deep:   #3c2414;
  --forest:       #4a5a37;
  --forest-deep:  #313d24;
  --gold:         #a9812f;
  --gold-soft:    #cba85c;
  --charcoal:     #2a241d;
  --charcoal-soft:#5c5346;
  --white:        #fffdf6;
  --line: rgba(60,36,20,0.16);

  --font-display: 'Fraunces', 'Georgia', serif;
  --font-body: 'Karla', -apple-system, sans-serif;

  --radius: 3px;
  --shadow-card: 0 1px 2px rgba(42,36,29,0.06), 0 8px 20px -12px rgba(42,36,29,0.25);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family: var(--font-body);
  color: var(--charcoal);
  background-color: var(--cream);
  background-image:
    radial-gradient(rgba(92,58,33,0.035) 1px, transparent 1px);
  background-size: 3px 3px;
  line-height:1.55;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
h1,h2,h3,h4{font-family:var(--font-display); margin:0 0 .4em; color:var(--brown-deep); font-weight:600; letter-spacing:-.01em;}
p{margin:0 0 1em;}
.container{max-width:1180px; margin:0 auto; padding:0 28px;}
.eyebrow{
  font-family:var(--font-body); font-weight:700; font-size:.72rem;
  letter-spacing:.16em; text-transform:uppercase; color:var(--forest);
}

/* ---------- Running-stitch signature divider ---------- */
.stitch-divider{
  display:flex; align-items:center; justify-content:center; gap:14px;
  margin: 18px 0 30px;
}
.stitch-divider .line{
  flex:1; max-width:150px; height:0;
  border-top: 2px dashed var(--forest);
  opacity:.55;
}
.stitch-divider .mark{
  width:14px; height:14px;
  background: var(--gold);
  clip-path: polygon(50% 0%, 61% 35%, 100% 50%, 61% 65%, 50% 100%, 39% 65%, 0% 50%, 39% 35%);
  flex-shrink:0;
}
.stitch-rule{
  border:none; border-top:2px dashed var(--line); margin:0;
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--font-body); font-weight:700; font-size:.82rem;
  letter-spacing:.04em; text-transform:uppercase;
  padding:13px 26px; border-radius: var(--radius);
  border:1.5px solid transparent; cursor:pointer;
  transition: transform .15s ease, background .2s ease, border-color .2s ease, color .2s ease;
}
.btn:hover{transform: translateY(-1px);}
.btn-primary{background:var(--forest); color:var(--white);}
.btn-primary:hover{background:var(--forest-deep);}
.btn-whatsapp{background:#3f5b3d; color:var(--white);}
.btn-whatsapp:hover{background:#2e452c;}
.btn-outline{background:transparent; border-color:var(--brown); color:var(--brown);}
.btn-outline:hover{background:var(--brown); color:var(--white);}
.btn-sm{padding:8px 16px; font-size:.72rem;}
.btn-block{width:100%; justify-content:center;}
.btn-danger{background:transparent;border-color:#93392b;color:#93392b;}
.btn-danger:hover{background:#93392b;color:#fff;}

/* ---------- Header ---------- */
.site-header{
  background: var(--paper);
  border-bottom: 1px solid var(--line);
  position: sticky; top:0; z-index:50;
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 28px; max-width:1180px; margin:0 auto; gap:24px;
}
.brand{display:flex; align-items:center; gap:12px;}
.brand img{height:52px; width:52px; object-fit:cover; border-radius:50%; border:1px solid var(--line);}
.brand-text{display:flex; flex-direction:column; line-height:1.1;}
.brand-text .name{font-family:var(--font-display); font-size:1.5rem; font-weight:700; color:var(--brown-deep);}
.brand-text .tag{font-size:.65rem; letter-spacing:.14em; text-transform:uppercase; color:var(--forest);}

.main-nav{display:flex; align-items:center; gap:26px;}
.main-nav a{
  font-size:.82rem; font-weight:600; letter-spacing:.03em;
  color:var(--charcoal-soft); position:relative; padding:4px 0;
}
.main-nav a:hover{color:var(--brown-deep);}
.main-nav a::after{
  content:""; position:absolute; left:0; right:0; bottom:-4px; height:0;
  border-top:2px dashed var(--gold); opacity:0; transition:opacity .2s;
}
.main-nav a:hover::after{opacity:1;}

.header-actions{display:flex; align-items:center; gap:14px;}
.search-form{display:flex; align-items:center; background:var(--cream); border:1px solid var(--line); border-radius:20px; padding:6px 14px;}
.search-form input{border:none; background:transparent; font-family:var(--font-body); font-size:.82rem; outline:none; width:130px; color:var(--charcoal);}

.nav-toggle{display:none; background:none; border:none; font-size:1.6rem; color:var(--brown-deep); cursor:pointer;}

/* ---------- Hero ---------- */
.hero{
  position:relative; overflow:hidden;
  padding: 76px 0 90px;
  background: linear-gradient(180deg, var(--paper) 0%, var(--cream) 100%);
  border-bottom:1px solid var(--line);
}
.hero-inner{
  max-width:1180px; margin:0 auto; padding:0 28px;
  display:grid; grid-template-columns:1.05fr .95fr; gap:50px; align-items:center;
}
.hero h1{font-size: clamp(2.4rem, 4.6vw, 3.6rem); line-height:1.06; margin-bottom:.3em;}
.hero h1 em{font-style:italic; color:var(--forest);}
.hero p.lede{font-size:1.05rem; color:var(--charcoal-soft); max-width:460px; margin-bottom:1.6em;}
.hero-ctas{display:flex; gap:14px; flex-wrap:wrap;}
.hero-art{position:relative;}
.hero-art svg{width:100%; height:auto;}
.snow-dot{fill:var(--gold-soft);}

/* ---------- Section headers ---------- */
.section{padding:70px 0;}
.section-head{text-align:center; max-width:560px; margin:0 auto 40px;}
.section-head h2{font-size:2rem;}
.section-head p{color:var(--charcoal-soft);}

/* ---------- Category grid ---------- */
.cat-grid{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(230px,1fr)); gap:22px;
}
.cat-card{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
  overflow:hidden; box-shadow:var(--shadow-card); transition: transform .2s ease, box-shadow .2s ease;
}
.cat-card:hover{transform:translateY(-4px); box-shadow:0 14px 30px -14px rgba(42,36,29,.35);}
.cat-card .thumb{height:170px; background:var(--cream-deep); overflow:hidden; position:relative;}
.cat-card .thumb img{width:100%; height:100%; object-fit:cover;}
.cat-card .thumb .ph{display:flex; align-items:center; justify-content:center; height:100%; color:var(--gold); font-family:var(--font-display); font-size:2rem;}
.cat-card .body{padding:16px 18px;}
.cat-card h3{font-size:1.15rem; margin-bottom:.15em;}
.cat-card .count{font-size:.75rem; color:var(--forest); text-transform:uppercase; letter-spacing:.06em; font-weight:700;}

/* ---------- Product grid ---------- */
.product-grid{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(230px,1fr)); gap:24px;
}
.product-card{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
  overflow:hidden; box-shadow:var(--shadow-card); display:flex; flex-direction:column;
  transition: transform .18s ease, box-shadow .18s ease;
}
.product-card:hover{transform:translateY(-3px); box-shadow:0 14px 26px -14px rgba(42,36,29,.32);}
.product-card .thumb{height:220px; background:var(--cream-deep); position:relative; overflow:hidden;}
.product-card .thumb img{width:100%; height:100%; object-fit:cover; transition:transform .4s ease;}
.product-card:hover .thumb img{transform:scale(1.045);}
.product-card .thumb .ph{display:flex;align-items:center;justify-content:center;height:100%;color:var(--gold);font-family:var(--font-display);font-size:1.6rem;}
.badge{position:absolute; top:10px; left:10px; background:var(--gold); color:var(--white); font-size:.65rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:4px 9px; border-radius:20px;}
.badge.out{background:var(--charcoal-soft);}
.product-card .body{padding:16px 18px; display:flex; flex-direction:column; gap:6px; flex:1;}
.product-card h3{font-size:1.02rem; margin:0;}
.product-card .cat-label{font-size:.68rem; text-transform:uppercase; letter-spacing:.08em; color:var(--forest); font-weight:700;}
.product-card .price{font-family:var(--font-display); font-weight:600; color:var(--brown-deep); font-size:1.1rem; margin-top:auto;}
.product-card .card-actions{padding:0 18px 18px;}

/* ---------- Product detail ---------- */
.product-detail{display:grid; grid-template-columns:1fr 1fr; gap:52px; padding:56px 0;}
.pd-gallery .main-img{border-radius:var(--radius); overflow:hidden; border:1px solid var(--line); background:var(--cream-deep); height:460px;}
.pd-gallery .main-img img{width:100%; height:100%; object-fit:cover;}
.pd-thumbs{display:flex; gap:10px; margin-top:12px;}
.pd-thumbs img{width:70px; height:70px; object-fit:cover; border-radius:var(--radius); border:1.5px solid var(--line); cursor:pointer;}
.pd-thumbs img.active{border-color:var(--gold);}
.pd-info .cat-label{color:var(--forest); text-transform:uppercase; letter-spacing:.08em; font-size:.75rem; font-weight:700;}
.pd-info h1{font-size:2.2rem; margin:.2em 0 .3em;}
.pd-info .price{font-family:var(--font-display); font-size:1.7rem; color:var(--brown-deep); margin-bottom:18px;}
.pd-info .desc{color:var(--charcoal-soft); margin-bottom:24px; white-space:pre-line;}
.pd-actions{display:flex; gap:12px; flex-wrap:wrap; margin-bottom:20px;}
.stock-pill{display:inline-flex; align-items:center; gap:6px; font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; margin-bottom:18px;}
.stock-pill.in{color:var(--forest);}
.stock-pill.out{color:#93392b;}
.stock-pill .dot{width:8px; height:8px; border-radius:50%; background:currentColor;}
.pd-note{background:var(--paper); border:1px dashed var(--line); border-radius:var(--radius); padding:14px 16px; font-size:.85rem; color:var(--charcoal-soft);}

/* ---------- Footer ---------- */
.site-footer{background:var(--brown-deep); color:var(--cream); margin-top:60px;}
.footer-inner{max-width:1180px; margin:0 auto; padding:56px 28px 30px; display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:40px;}
.site-footer h4{color:var(--white); font-size:1rem; letter-spacing:.04em; text-transform:uppercase; font-family:var(--font-body); font-weight:700;}
.site-footer p, .site-footer a{color:#d8c9ae; font-size:.88rem;}
.site-footer a:hover{color:var(--gold-soft);}
.footer-links{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:8px;}
.footer-brand .name{font-family:var(--font-display); font-size:1.6rem; color:var(--white); margin-bottom:.2em;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12); padding:18px 28px; text-align:center; font-size:.76rem; color:#b7a58a;}

/* ---------- Flash ---------- */
.flash-wrap{max-width:1180px; margin:16px auto 0; padding:0 28px;}
.flash{padding:12px 16px; border-radius:var(--radius); font-size:.88rem; margin-bottom:10px; border:1px solid transparent;}
.flash.success{background:#eaf0e3; border-color:var(--forest); color:var(--forest-deep);}
.flash.error{background:#f5e6e1; border-color:#93392b; color:#93392b;}

/* ---------- Breadcrumb ---------- */
.crumbs{font-size:.8rem; color:var(--charcoal-soft); margin: 22px 0;}
.crumbs a{color:var(--forest); font-weight:600;}
.crumbs span{margin:0 6px; opacity:.5;}

/* ---------- Empty state ---------- */
.empty-state{text-align:center; padding:70px 20px; color:var(--charcoal-soft);}
.empty-state .mark{font-size:2.4rem; margin-bottom:.3em;}

/* ================= ADMIN ================= */
.admin-shell{display:flex; min-height:100vh; background:var(--cream);}
.admin-sidebar{
  width:230px; background:var(--brown-deep); color:var(--cream); flex-shrink:0;
  display:flex; flex-direction:column; position:sticky; top:0; height:100vh;
}
.admin-sidebar .brand{padding:24px 22px; border-bottom:1px solid rgba(255,255,255,.1);}
.admin-sidebar .brand .name{color:var(--white); font-family:var(--font-display); font-size:1.35rem;}
.admin-sidebar .brand .tag{color:var(--gold-soft); font-size:.62rem; letter-spacing:.12em; text-transform:uppercase;}
.admin-nav{padding:16px 12px; display:flex; flex-direction:column; gap:2px; flex:1;}
.admin-nav a{
  padding:11px 14px; border-radius:var(--radius); font-size:.86rem; font-weight:600;
  color:#d8c9ae; display:flex; align-items:center; gap:10px;
}
.admin-nav a:hover{background:rgba(255,255,255,.06); color:var(--white);}
.admin-nav a.active{background:var(--forest); color:var(--white);}
.admin-sidebar .bottom{padding:16px; border-top:1px solid rgba(255,255,255,.1); font-size:.78rem;}
.admin-sidebar .bottom a{color:var(--gold-soft); font-weight:700;}

.admin-main{flex:1; min-width:0;}
.admin-topbar{
  background:var(--paper); border-bottom:1px solid var(--line);
  padding:18px 32px; display:flex; align-items:center; justify-content:space-between;
}
.admin-topbar h1{font-size:1.5rem; margin:0;}
.admin-content{padding:30px 32px 60px;}

.stat-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:18px; margin-bottom:36px;}
.stat-card{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:20px 22px; box-shadow:var(--shadow-card);}
.stat-card .num{font-family:var(--font-display); font-size:2.1rem; color:var(--brown-deep); font-weight:700;}
.stat-card .label{font-size:.74rem; text-transform:uppercase; letter-spacing:.06em; color:var(--forest); font-weight:700;}

.panel{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-card); overflow:hidden; margin-bottom:28px;}
.panel-head{padding:18px 22px; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between;}
.panel-head h2{font-size:1.1rem; margin:0;}
.panel-body{padding:22px;}

table.admin-table{width:100%; border-collapse:collapse; font-size:.88rem;}
table.admin-table th{text-align:left; padding:12px 16px; background:var(--cream); font-size:.68rem; text-transform:uppercase; letter-spacing:.06em; color:var(--forest); border-bottom:1px solid var(--line);}
table.admin-table td{padding:12px 16px; border-bottom:1px solid var(--line); vertical-align:middle;}
table.admin-table tr:last-child td{border-bottom:none;}
table.admin-table img.thumb-sm{width:44px; height:44px; object-fit:cover; border-radius:var(--radius); border:1px solid var(--line);}
.row-actions{display:flex; gap:8px;}
.pill{display:inline-block; padding:3px 10px; border-radius:20px; font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em;}
.pill.yes{background:#e7efdf; color:var(--forest-deep);}
.pill.no{background:#f2e6e1; color:#93392b;}

.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
.form-group{margin-bottom:18px;}
.form-group.full{grid-column:1 / -1;}
.form-group label{display:block; font-size:.76rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--forest); margin-bottom:7px;}
.form-group input[type=text], .form-group input[type=number], .form-group input[type=password],
.form-group input[type=email], .form-group textarea, .form-group select{
  width:100%; padding:11px 14px; border:1px solid var(--line); border-radius:var(--radius);
  background:var(--white); font-family:var(--font-body); font-size:.92rem; color:var(--charcoal); outline:none;
}
.form-group textarea{resize:vertical; min-height:110px;}
.form-group input:focus, .form-group textarea:focus, .form-group select:focus{border-color:var(--gold);}
.form-check{display:flex; align-items:center; gap:8px; font-size:.85rem;}
.form-actions{display:flex; gap:12px; margin-top:6px;}
.help-text{font-size:.76rem; color:var(--charcoal-soft); margin-top:4px;}
.current-img{width:90px; height:90px; object-fit:cover; border-radius:var(--radius); border:1px solid var(--line); margin-bottom:10px;}

.login-shell{min-height:100vh; display:flex; align-items:center; justify-content:center; background:var(--cream);
  background-image: radial-gradient(rgba(92,58,33,0.05) 1px, transparent 1px); background-size:4px 4px;}
.login-card{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-card); padding:40px 38px; width:360px; text-align:center;}
.login-card img{width:64px; height:64px; border-radius:50%; margin:0 auto 12px; border:1px solid var(--line);}
.login-card h1{font-size:1.4rem;}
.login-card form{text-align:left; margin-top:20px;}

@media (max-width: 900px){
  .hero-inner{grid-template-columns:1fr;}
  .hero-art{order:-1;}
  .product-detail{grid-template-columns:1fr;}
  .footer-inner{grid-template-columns:1fr;}
  .form-grid{grid-template-columns:1fr;}
  .admin-sidebar{position:fixed; left:-230px; z-index:100; transition:left .2s ease;}
  .admin-sidebar.open{left:0;}
  .nav-toggle{display:block;}
}
@media (max-width:700px){
  .main-nav{position:fixed; top:81px; left:0; right:0; background:var(--paper); flex-direction:column; align-items:flex-start; padding:18px 28px; border-bottom:1px solid var(--line); display:none;}
  .main-nav.open{display:flex;}
  .search-form{display:none;}
}

/* ================= PDP v2 — gallery rail + accordion ================= */
.pdp{
  display:grid; grid-template-columns: 1fr 420px; gap:56px; padding:44px 0 60px;
  align-items:start;
}
.pdp-gallery{
  display:grid; grid-template-columns: 84px 1fr; gap:14px;
  position:sticky; top:96px;
}
.pdp-rail{ display:flex; flex-direction:column; gap:10px; max-height:560px; overflow-y:auto; }
.pdp-rail-mobile{ display:none; }
.rail-thumb{
  width:84px; height:100px; padding:0; border-radius:var(--radius); overflow:hidden; cursor:pointer;
  border:1.5px solid var(--line); background:var(--cream-deep); flex-shrink:0; transition:border-color .15s ease;
}
.rail-thumb img{width:100%; height:100%; object-fit:cover;}
.rail-thumb.active, .rail-thumb:hover{border-color:var(--gold);}
.pdp-main{
  position:relative; border-radius:var(--radius); overflow:hidden;
  border:1px solid var(--line); background:var(--cream-deep);
  height:600px;
}
.pdp-main img{width:100%; height:100%; object-fit:cover;}
.pdp-count{
  position:absolute; right:14px; bottom:14px; background:rgba(42,36,29,.72); color:var(--white);
  font-size:.72rem; letter-spacing:.04em; padding:5px 11px; border-radius:20px; font-weight:600;
}
.pdp-info h1{font-size:2rem; margin:.25em 0 .3em; line-height:1.15;}
.pdp-info .price{font-family:var(--font-display); font-size:1.6rem; color:var(--brown-deep); margin-bottom:14px;}
.pdp-actions{margin:22px 0 14px;}

.pdp-accordion{margin-top:30px; border-top:1px solid var(--line);}
.pdp-accordion details{border-bottom:1px solid var(--line);}
.pdp-accordion summary{
  padding:16px 2px; cursor:pointer; font-weight:700; font-size:.85rem;
  letter-spacing:.04em; text-transform:uppercase; color:var(--brown-deep);
  list-style:none; display:flex; align-items:center; justify-content:space-between;
}
.pdp-accordion summary::-webkit-details-marker{display:none;}
.pdp-accordion summary::after{content:"+"; font-size:1.1rem; color:var(--forest); font-weight:400;}
.pdp-accordion details[open] summary::after{content:"\2212";}
.pdp-accordion .acc-body{padding:0 2px 18px; color:var(--charcoal-soft); font-size:.92rem; line-height:1.7; white-space:pre-line;}

/* ---------- product card hover-swap ---------- */
.product-card .thumb{position:relative;}
.thumb-primary, .thumb-hover{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:opacity .35s ease;}
.thumb-hover{opacity:0;}
.product-card:hover .thumb-primary{opacity:0;}
.product-card:hover .thumb-hover{opacity:1;}

/* ---------- collection toolbar / sort ---------- */
.grid-toolbar{
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:22px; padding-bottom:14px; border-bottom:1px solid var(--line);
}
.grid-toolbar .count-text{font-size:.82rem; color:var(--charcoal-soft); font-weight:600;}
.sort-form{display:flex; align-items:center; gap:10px;}
.sort-form label{font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; color:var(--forest); font-weight:700;}
.sort-form select{
  padding:9px 30px 9px 14px; border:1px solid var(--line); border-radius:var(--radius);
  background:var(--paper); font-family:var(--font-body); font-size:.84rem; color:var(--charcoal);
  cursor:pointer; appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%235c3a21'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 12px center;
}

@media (max-width: 900px){
  .pdp{grid-template-columns:1fr; gap:22px;}
  .pdp-gallery{grid-template-columns:1fr; position:static;}
  .pdp-rail{display:none;}
  .pdp-rail-mobile{display:flex; gap:10px; overflow-x:auto; padding-bottom:4px;}
  .pdp-main{height:420px;}
  .grid-toolbar{flex-direction:column; align-items:flex-start; gap:10px;}
}

/* ---------- announcement marquee ---------- */
.announce-bar{
  background:var(--brown-deep); color:var(--gold-soft); overflow:hidden;
  white-space:nowrap; position:sticky; top:0; z-index:60;
}
.announce-track{
  display:inline-flex; gap:14px; align-items:center;
  padding:8px 0; font-size:.68rem; font-weight:700; letter-spacing:.14em;
  animation: marquee 26s linear infinite;
}
.announce-track span{padding:0 6px;}
@keyframes marquee{
  0%{ transform: translateX(0); }
  100%{ transform: translateX(-50%); }
}
.site-header{ top:34px; }
@media (prefers-reduced-motion: reduce){
  .announce-track{ animation: none; }
}

/* ---------- mega menu ---------- */
.mega-trigger{
  background:none; border:none; cursor:pointer; font-family:var(--font-body);
  font-size:.82rem; font-weight:600; letter-spacing:.03em; color:var(--charcoal-soft);
  display:flex; align-items:center; gap:5px; padding:4px 0;
}
.mega-trigger:hover, .mega-trigger[aria-expanded="true"]{color:var(--brown-deep);}
.mega-trigger .caret{font-size:.6rem; transition:transform .2s ease;}
.mega-trigger[aria-expanded="true"] .caret{transform:rotate(180deg);}

.mega-panel{
  position:absolute; left:0; right:0; top:100%;
  background:var(--paper); border-bottom:1px solid var(--line);
  box-shadow:0 18px 30px -18px rgba(42,36,29,.28);
  max-height:0; overflow:hidden; opacity:0; transition:max-height .28s ease, opacity .2s ease;
}
.mega-panel.open{ max-height:420px; opacity:1; overflow-y:auto; }
.mega-panel-inner{
  max-width:1180px; margin:0 auto; padding:32px 28px;
  display:grid; grid-template-columns:repeat(auto-fit, minmax(160px,1fr)); gap:30px;
}
.mega-col .mega-cat-title{
  display:block; font-family:var(--font-display); font-size:1.05rem; font-weight:600;
  color:var(--brown-deep); margin-bottom:12px; padding-bottom:8px; border-bottom:2px dashed var(--line);
}
.mega-col ul{list-style:none; margin:0 0 10px; padding:0; display:flex; flex-direction:column; gap:9px;}
.mega-col ul a{font-size:.86rem; color:var(--charcoal-soft);}
.mega-col ul a:hover{color:var(--forest);}
.mega-view-all{font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--gold);}

/* ---------- search icon ---------- */
.search-form{position:relative;}
.search-icon{color:var(--charcoal-soft); flex-shrink:0;}
.search-form input{margin-left:2px;}

/* ---------- mobile drawer ---------- */
.drawer-backdrop{
  position:fixed; inset:0; background:rgba(42,36,29,.5); z-index:90;
  opacity:0; pointer-events:none; transition:opacity .2s ease;
}
.drawer-backdrop.open{opacity:1; pointer-events:auto;}
.mobile-drawer{
  position:fixed; top:0; right:-340px; width:320px; max-width:86vw; height:100vh;
  background:var(--paper); z-index:95; box-shadow:-10px 0 30px rgba(42,36,29,.25);
  transition:right .25s ease; display:flex; flex-direction:column;
}
.mobile-drawer.open{right:0;}
.drawer-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 20px; border-bottom:1px solid var(--line);
}
.drawer-head .name{font-family:var(--font-display); font-size:1.2rem; color:var(--brown-deep);}
.drawer-head button{background:none; border:none; font-size:1.6rem; color:var(--brown-deep); cursor:pointer; line-height:1;}
.drawer-body{padding:10px 12px; overflow-y:auto; flex:1;}
.drawer-link{display:block; padding:13px 10px; font-weight:700; font-size:.9rem; color:var(--charcoal-soft); border-bottom:1px solid var(--line);}
.drawer-link.whatsapp{color:var(--forest);}
.drawer-cat{border-bottom:1px solid var(--line);}
.drawer-cat summary{
  padding:13px 10px; font-weight:700; font-size:.9rem; color:var(--brown-deep);
  cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center;
}
.drawer-cat summary::-webkit-details-marker{display:none;}
.drawer-cat summary::after{content:"+"; color:var(--forest); font-weight:400;}
.drawer-cat[open] summary::after{content:"\2212";}
.drawer-sub{display:flex; flex-direction:column; padding:0 10px 12px 16px;}
.drawer-sub a{padding:8px 0; font-size:.85rem; color:var(--charcoal-soft);}

.site-header{position:sticky; top:34px; z-index:60;}

@media (max-width: 900px){
  .main-nav{display:none;}
  .search-form{display:none;}
  .mega-panel{display:none;}
}

/* ---------- filter chips ---------- */
.filter-chips{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:28px;}
.chip{
  padding:9px 18px; border-radius:20px; border:1.5px solid var(--line);
  background:var(--paper); font-family:var(--font-body); font-size:.8rem; font-weight:600;
  color:var(--charcoal-soft); cursor:pointer; transition:all .15s ease;
}
.chip:hover{border-color:var(--gold);}
.chip.active{background:var(--forest); border-color:var(--forest); color:var(--white);}
