/* Public catalog only: shared administration and product gallery styles stay intact. */
.catalog-home { --paper:#faf8f3; --muted:#52616c; --gold:#a58043; background:var(--paper); }
.catalog-home [hidden] { display:none!important; }
.catalog-home a:focus-visible,.catalog-home button:focus-visible { outline:3px solid #a58043; outline-offset:4px; }
.skip-link { position:fixed; left:16px; top:-80px; z-index:100; padding:12px 18px; background:var(--navy); color:white; }
.skip-link:focus { top:12px; }
.catalog-home .site-header { display:block; height:auto; padding:0; background:var(--paper); backdrop-filter:none; }
.header-main { max-width:1180px; margin:auto; padding:16px 24px; display:flex; justify-content:space-between; align-items:center; gap:24px; position:relative; }
.catalog-home .brand { color:var(--navy); min-width:0; font-size:17px; }
.catalog-home .brand img { object-fit:contain; flex-shrink:0; }
.site-nav { display:flex; align-items:center; gap:28px; font-size:14px; font-weight:600; }
.site-nav>a:not(.whatsapp):hover,.footer-links a:hover { text-decoration:underline; text-underline-offset:5px; }
.catalog-home .whatsapp { background:#167a49; color:#fff; min-height:44px; border-radius:6px; font-size:14px; }
.catalog-home .whatsapp:hover { background:#10643b; }
.location-strip { margin:0; padding:6px 16px; background:#f0ece3; color:#43545f; text-align:center; font-size:12px; letter-spacing:.02em; }
.location-strip span { margin:0 8px; color:#795d31; }
.menu-toggle { display:none; }
.gift-intro { max-width:1180px; margin:auto; padding:36px 24px 0; }
.gift-intro h1 { font-family:'Playfair Display',Georgia,serif; color:var(--navy); font-size:clamp(30px,3.5vw,44px); line-height:1.18; letter-spacing:-.025em; margin:0 0 24px; font-weight:600; }
.gift-categories { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.gift-category { display:block; min-width:0; }
.category-photo { background:#efebe3; height:260px; display:grid; place-items:center; overflow:hidden; border-radius:4px; color:var(--muted); }
.category-photo img { display:block; width:100%; height:100%; min-width:0; min-height:0; max-height:100%; object-fit:contain; }
.category-label { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 0; color:var(--navy); font-size:19px; font-weight:600; border-bottom:1px solid #b69969; }
.category-label>span { color:#795d31; }
.gift-category:hover .category-label { border-bottom-color:var(--navy); }
.catalog-home .catalog { padding:36px 24px 64px; scroll-margin-top:125px; }
.catalog-home .section-heading { align-items:center; margin-bottom:8px; }
.catalog-home .section-heading h2 { font-size:clamp(26px,3vw,34px); font-weight:600; margin:0; }
.catalog-home .filter { min-height:44px; color:var(--navy); border-color:#bcc5ca; background:transparent; font-size:14px; padding:9px 18px; }
.catalog-home .filter.active { color:white; background:var(--navy); border-color:var(--navy); }
.catalog-home .filter:hover:not(.active) { background:#eee9df; }
.catalog-result { font-size:13px; color:var(--muted); margin:0 0 20px; min-height:20px; }
.catalog-home .product-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px 24px; }
.catalog-home .product-card { position:relative; display:flex; flex-direction:column; min-width:0; background:transparent; border:0; border-radius:0; box-shadow:none; overflow:visible; cursor:default; }
.catalog-home .product-card:hover { transform:none; box-shadow:none; }
.catalog-home .product-image { aspect-ratio:1; background:#efebe3; border-radius:4px; }
.catalog-home .product-image>img { object-fit:contain; }
.catalog-home .product-info { display:flex; flex-direction:column; flex:1; padding:12px 0 0; min-width:0; }
.catalog-home .product-info h3 { font:600 17px/1.35 'DM Sans',sans-serif; margin:0 0 6px; overflow-wrap:anywhere; }
.catalog-home .product-info .summary { display:block; font-size:14px; margin:0; line-height:1.45; }
.catalog-home .card-bottom { margin-top:auto; padding-top:12px; flex-wrap:wrap; gap:4px 12px; }
.catalog-home .card-bottom>strong { color:var(--navy); font-size:18px; }
.catalog-home .card-bottom .text-button { color:var(--navy); padding:10px 0; min-height:44px; font-size:14px; text-align:left; }
.catalog-home .card-bottom .text-button:after { content:''; position:absolute; inset:0; z-index:1; border-radius:4px; }
.catalog-home .product-card:focus-within { outline:3px solid var(--gold); outline-offset:5px; }
.catalog-home .variant-count { font-size:11px; top:8px; left:8px; background:var(--navy); color:white; }
.catalog-home .site-footer { display:block; padding:38px max(24px,calc((100% - 1132px)/2)) 18px; border-top:2px solid var(--gold); }
.footer-grid { display:grid; grid-template-columns:1.2fr .65fr 1fr; gap:48px; }
.site-footer .brand { color:white; margin-bottom:14px; }
.site-footer p { color:#c9d3d9; font-size:14px; margin:6px 0; }
.site-footer h2 { font:600 15px/1.5 'DM Sans',sans-serif; margin:0 0 14px; color:white; }
.footer-links { display:flex; flex-direction:column; align-items:flex-start; gap:4px; }
.footer-links h2 { margin-bottom:6px; }
.footer-links a { min-height:40px; display:flex; align-items:center; color:#dce4e9; font-size:14px; }
.site-footer .whatsapp { margin:16px 0 0; width:auto; }
.footer-contact { scroll-margin-top:135px; }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-top:28px; padding-top:16px; border-top:1px solid #34505f; color:#c9d3d9; font-size:12px; }
.footer-bottom a { min-height:44px; display:flex; align-items:center; }
#intro-title,#contacto { scroll-margin-top:135px; }
@media(max-width:760px) {
  .header-main { padding:10px 16px; gap:12px; }
  .catalog-home .brand { font-size:15px; gap:8px; }
  .catalog-home .brand img { width:40px; height:40px; }
  .menu-toggle { display:flex; align-items:center; gap:8px; min-height:44px; padding:8px 12px; border:1px solid #bcc5ca; border-radius:5px; background:transparent; color:var(--navy); font-weight:600; font-size:14px; }
  .site-nav { display:none; position:absolute; top:100%; right:16px; left:16px; padding:12px; background:var(--paper); border:1px solid #c8c4bc; border-radius:5px; box-shadow:0 12px 24px #071d2d14; z-index:2; gap:4px; }
  .site-nav.is-open { display:flex; flex-direction:column; align-items:stretch; }
  .site-nav>a { min-height:44px; display:flex; align-items:center; padding:8px 12px; }
  .location-strip { font-size:11px; padding:5px 8px; }
  .location-strip span { margin:0 4px; }
  .gift-intro { padding:24px 16px 0; }
  .gift-intro h1 { font-size:30px; max-width:400px; margin-bottom:18px; }
  .gift-categories { gap:12px; }
  .category-photo { height:auto; aspect-ratio:1; }
  .category-label { font-size:16px; padding:10px 0; }
  .catalog-home .catalog { padding:26px 16px 40px; scroll-margin-top:110px; }
  .catalog-home .section-heading { gap:14px; align-items:flex-start; margin-bottom:12px; }
  .catalog-home .section-heading h2 { font-size:27px; }
  .catalog-home .filters { gap:6px; flex-wrap:nowrap; }
  .catalog-home .filter { padding:8px 14px; }
  .catalog-result { margin-bottom:16px; }
  .catalog-home .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 12px; }
  .catalog-home .product-info { padding-top:10px; }
  .catalog-home .product-info h3 { font-size:15px; }
  .catalog-home .product-info .summary { font-size:13px; }
  .catalog-home .card-bottom { align-items:flex-start; flex-direction:column; padding-top:9px; gap:0; }
  .catalog-home .card-bottom>strong { font-size:17px; }
  .catalog-home .card-bottom .text-button { font-size:13px; padding:8px 0; }
  .catalog-home .variant-count { font-size:10px; padding:4px 6px; }
  .catalog-home .site-footer { padding:28px 16px 12px; }
  .footer-grid { grid-template-columns:1fr; gap:24px; }
  .site-footer .footer-identity .brand { font-size:17px; }
  .site-footer .footer-identity img { width:48px; height:48px; }
  .footer-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 12px; }
  .footer-links h2 { grid-column:1/-1; }
  .site-footer .whatsapp { width:100%; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .catalog-home a,.catalog-home button { transition:none; }
}
