/* Félicita public catalog & product pages */

.breadcrumb { display:flex; align-items:center; gap:8px; font-size:12px; color:#777; margin-bottom:24px; flex-wrap:wrap; }
.breadcrumb a { color:#777; text-decoration:none; transition:color .2s; }
.breadcrumb a:hover { color:#A5675A; }
.breadcrumb__sep { color:#EDE4DE; }

.catalog-hero { text-align:center; padding:48px 0 40px; max-width:720px; margin:0 auto; }
.catalog-hero h1 { font-family:"Playfair Display",Georgia,serif; font-size:clamp(2rem,5vw,3.25rem); font-weight:700; color:#2C2420; margin:12px 0 16px; line-height:1.15; }
.catalog-hero h1 .font-script { font-family:"Great Vibes",cursive; font-weight:400; color:#A5675A; font-size:1.15em; }
.catalog-hero p { color:#7A6F6A; font-size:15px; line-height:1.7; }

.catalog-toolbar { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; margin-bottom:28px; }
.category-tabs { display:flex; gap:8px; overflow-x:auto; padding-bottom:4px; scrollbar-width:none; flex:1; min-width:0; }
.category-tabs::-webkit-scrollbar { display:none; }
.category-pill {
  flex-shrink:0; padding:10px 20px; border-radius:999px; border:1px solid #EDE4DE; background:#fff;
  font-size:13px; font-weight:500; color:#2C2420; cursor:pointer; transition:all .25s; text-decoration:none; white-space:nowrap;
}
.category-pill:hover { border-color:#A5675A; color:#A5675A; }
.category-pill.is-active { background:#F4E1E1; border-color:#A5675A; color:#A5675A; }

.catalog-filters { display:flex; align-items:center; gap:10px; flex-shrink:0; }
.catalog-search { padding:10px 16px; border:1px solid #EDE4DE; border-radius:999px; font-size:13px; min-width:180px; background:#fff; }
.catalog-sort { padding:10px 14px; border:1px solid #EDE4DE; border-radius:999px; font-size:13px; background:#fff; }
.filter-btn { padding:10px 16px; border:1px solid #EDE4DE; border-radius:999px; font-size:13px; background:#fff; cursor:pointer; }
.filter-btn:hover { border-color:#A5675A; color:#A5675A; }

.cakes-grid { display:grid; grid-template-columns:1fr; gap:24px; }
@media (min-width:640px) { .cakes-grid { grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px) { .cakes-grid { grid-template-columns:repeat(4,1fr); } }

.catalog-card {
  background:#FCF9F5; border:1px solid #EDE4DE; border-radius:1.5rem; overflow:hidden;
  transition:transform .3s, box-shadow .3s;
}
.catalog-card:hover { transform:translateY(-4px); box-shadow:0 16px 40px rgba(0,0,0,.06); }
.catalog-card__img-wrap { position:relative; aspect-ratio:4/5; overflow:hidden; background:#FAF0EE; }
.catalog-card__img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.catalog-card:hover .catalog-card__img { transform:scale(1.06); }
.catalog-card__badge { position:absolute; top:12px; left:12px; padding:4px 12px; border-radius:999px; background:#A5675A; color:#fff; font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.catalog-card__body { padding:20px; }
.catalog-card__cat { font-size:10px; font-weight:700; letter-spacing:.15em; text-transform:uppercase; color:#C8A06B; margin-bottom:6px; }
.catalog-card__title { font-family:"Playfair Display",Georgia,serif; font-size:1.25rem; font-weight:700; color:#2C2420; margin-bottom:8px; }
.catalog-card__desc { font-size:12px; color:#777; line-height:1.5; margin-bottom:14px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.catalog-card__meta { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.catalog-card__price { font-weight:700; color:#A5675A; font-size:14px; }
.catalog-card__icons { display:flex; gap:8px; margin:12px 0; flex-wrap:wrap; }
.catalog-card__icon { font-size:10px; color:#777; display:inline-flex; align-items:center; gap:4px; }
.catalog-card__cta { display:inline-flex; align-items:center; justify-content:center; width:100%; padding:10px; border-radius:999px; border:1px solid #2C2420; color:#2C2420; font-size:12px; font-weight:600; text-decoration:none; transition:all .25s; margin-top:12px; }
.catalog-card:hover .catalog-card__cta { background:#A5675A; border-color:#A5675A; color:#fff; }

.catalog-count { font-size:13px; color:#777; margin-bottom:20px; }
.catalog-pagination { display:flex; align-items:center; justify-content:center; gap:8px; margin-top:40px; flex-wrap:wrap; }
.catalog-pagination a, .catalog-pagination span { padding:8px 14px; border-radius:999px; font-size:13px; text-decoration:none; border:1px solid #EDE4DE; color:#2C2420; }
.catalog-pagination a:hover { border-color:#A5675A; color:#A5675A; }
.catalog-pagination .is-active { background:#F4E1E1; border-color:#A5675A; color:#A5675A; font-weight:600; }

.custom-banner {
  margin-top:64px; padding:56px 32px; border-radius:2rem; background:linear-gradient(135deg,#FAF0EE 0%,#FCF9F5 100%);
  border:1px solid #EDE4DE; text-align:center;
}
.custom-banner h2 { font-family:"Playfair Display",Georgia,serif; font-size:clamp(1.5rem,3vw,2rem); margin-bottom:12px; }
.custom-banner p { color:#777; max-width:520px; margin:0 auto 24px; font-size:14px; line-height:1.7; }

/* Product detail */
.product-detail { display:grid; gap:40px; padding-bottom:80px; }
@media (min-width:1024px) { .product-detail { grid-template-columns:55fr 45fr; gap:56px; align-items:start; } }

.product-gallery__hero { position:relative; border-radius:1.5rem; overflow:hidden; background:#FAF0EE; aspect-ratio:1; }
.product-gallery__hero img { width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.product-gallery__hero:hover img { transform:scale(1.03); }
.product-gallery__counter { position:absolute; bottom:16px; right:16px; background:rgba(255,255,255,.9); padding:6px 12px; border-radius:999px; font-size:12px; font-weight:600; }
.product-gallery__float-badge { position:absolute; top:16px; left:16px; padding:8px 16px; border-radius:999px; background:#A5675A; color:#fff; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.product-gallery__thumbs { display:flex; gap:10px; margin-top:12px; overflow-x:auto; }
@media (min-width:1024px) {
  .product-gallery { display:grid; grid-template-columns:80px 1fr; gap:12px; }
  .product-gallery__thumbs { flex-direction:column; margin-top:0; overflow-y:auto; max-height:520px; }
}
.product-gallery__thumb { flex-shrink:0; width:72px; height:72px; border-radius:12px; overflow:hidden; border:2px solid transparent; cursor:pointer; opacity:.7; transition:all .2s; padding:0; background:none; }
.product-gallery__thumb.is-active, .product-gallery__thumb:hover { border-color:#A5675A; opacity:1; }
.product-gallery__thumb img { width:100%; height:100%; object-fit:cover; }

.product-info__title { font-family:"Playfair Display",Georgia,serif; font-size:clamp(2rem,4vw,2.75rem); font-weight:700; margin-bottom:12px; }
.product-info__price { font-size:1.5rem; font-weight:700; color:#A5675A; margin-bottom:8px; }
.product-info__note { font-size:13px; color:#777; margin-bottom:24px; font-style:italic; }
.product-info__desc { color:#777; line-height:1.8; margin-bottom:28px; font-size:15px; }

.quick-info-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-bottom:28px; }
.quick-info-card { padding:16px; border:1px solid #EDE4DE; border-radius:1rem; background:#fff; }
.quick-info-card__title { font-size:12px; font-weight:700; color:#2C2420; margin-bottom:4px; }
.quick-info-card__text { font-size:11px; color:#777; line-height:1.4; }

.variation-chips { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:24px; }
.variation-chip { padding:8px 16px; border-radius:999px; background:#FAF0EE; color:#2C2420; font-size:12px; font-weight:500; }

.product-actions { display:flex; flex-direction:column; gap:12px; margin-bottom:24px; }
.btn-whatsapp { display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:16px 28px; border-radius:999px; background:#25D366; color:#fff; font-weight:600; font-size:14px; text-decoration:none; transition:opacity .2s; border:none; cursor:pointer; }
.btn-whatsapp:hover { opacity:.92; }
.product-share { display:flex; gap:10px; margin-bottom:32px; }
.product-share a, .product-share button { width:40px; height:40px; border-radius:50%; border:1px solid #EDE4DE; display:flex; align-items:center; justify-content:center; background:#fff; cursor:pointer; color:#2C2420; text-decoration:none; transition:all .2s; }
.product-share a:hover, .product-share button:hover { border-color:#A5675A; color:#A5675A; }

.product-accordion { border:1px solid #EDE4DE; border-radius:1rem; overflow:hidden; margin-bottom:12px; background:#fff; }
.product-accordion__q { width:100%; text-align:left; padding:18px 20px; font-weight:600; font-size:14px; background:none; border:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; }
.product-accordion__a { max-height:0; overflow:hidden; transition:max-height .35s ease; }
.product-accordion__a-inner { padding:0 20px 18px; color:#777; font-size:14px; line-height:1.7; }
.product-accordion.is-open .product-accordion__a { max-height:400px; }

.custom-notice { padding:24px; border-radius:1.5rem; background:#FAF0EE; border:1px solid #F4E1E1; margin:32px 0; }
.custom-notice p { color:#777; font-size:14px; line-height:1.7; margin-bottom:16px; }

.related-slider { display:flex; gap:20px; overflow-x:auto; padding-bottom:12px; scrollbar-width:none; }
.related-slider::-webkit-scrollbar { display:none; }
.related-slider .catalog-card { min-width:260px; max-width:260px; }

.product-sticky-bar {
  position:fixed; left:0; right:0; bottom:0; z-index:45; background:rgba(255,255,255,.97);
  backdrop-filter:blur(8px); border-top:1px solid #EDE4DE; padding:12px 16px;
  display:flex; align-items:center; gap:12px; transform:translateY(100%); transition:transform .3s;
}
.product-sticky-bar.is-visible { transform:none; }
@media (min-width:768px) { .product-sticky-bar { display:none; } }

/* Lightbox */
.lightbox { position:fixed; inset:0; z-index:100; background:rgba(0,0,0,.92); display:none; align-items:center; justify-content:center; padding:24px; }
.lightbox.is-open { display:flex; }
.lightbox img { max-width:100%; max-height:90vh; object-fit:contain; border-radius:8px; }
.lightbox__close { position:absolute; top:20px; right:20px; width:44px; height:44px; border-radius:50%; background:#fff; border:none; cursor:pointer; font-size:24px; }

.nav-text.is-active { color:#A5675A !important; }
