@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600&family=Manrope:wght@400;500;600;700&display=swap');

:root { --bg:#fbfaf7;
  --cream:#f4eee6;
  --beige:#e9dccd;
  --text:#24211f;
  --muted:#6f6862;
  --border:#ddd5cc;
  --dark:#1e1d1b;
  --white:#fff;
  --serif:"Cormorant Garamond",Georgia,serif;
  --sans:Manrope,Arial,sans-serif;
  --max:1180px;
  --space:clamp(3.5rem,7vw,7rem);
  --transition:180ms ease
}
* { box-sizing:border-box
}
html { scroll-behavior:smooth
}
body { margin:0;
  background:var(--bg);
  color:var(--text);
  font:13px/1.65 var(--sans)
}
a { color:inherit;
  text-decoration:none
}
button,input { font:inherit
}
button { cursor:pointer
}
.container { width:min(calc(100% - 48px),var(--max));
  margin:auto
}
.sr-only { position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0,0,0,0)
}
.eyebrow { text-transform:uppercase;
  letter-spacing:.11em;
  font-size:10px;
  margin:0 0 17px;
  font-weight:700
}
.button { display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:0 23px;
  background:var(--dark);
  color:var(--white);
  border:1px solid var(--dark);
  font-size:10px;
  font-weight:700;
  letter-spacing:.08em;
  transition:var(--transition)
}
.button:hover,.button:focus-visible { background:transparent;
  color:var(--dark)
}
.section { padding:var(--space) 0
}
.section-title { text-align:center;
  text-transform:uppercase;
  letter-spacing:.1em;
  font:600 clamp(24px,2.3vw,31px)/1 var(--serif);
  margin:0 0 31px
}
.section-title:after { content:"";
  display:block;
  width:29px;
  border-top:1px solid;
  margin:11px auto 0
}
.site-header { height:104px;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  position:relative;
  background:var(--bg);
  z-index:10
}
.header-left,.header-right { display:flex;
  align-items:center;
  gap:20px
}
.header-right { justify-content:flex-end
}
.nav { display:flex;
  gap:26px;
  text-transform:uppercase;
  letter-spacing:.075em;
  font-size:10px
}
.icon-button { border:0;
  background:none;
  padding:7px;
  color:var(--text);
  font-size:24px;
  line-height:1
}
.icon-button svg { width:21px;
  height:21px;
  display:block
}
.brand { font:600 27px/.67 var(--serif);
  text-align:center;
  font-style:italic;
  letter-spacing:-.06em
}
.brand span { display:block
}
.desktop-nav { margin-left:27px
}
.mobile-nav { display:none
}
.hero { background:var(--cream);
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(42%,.95fr);
  min-height:350px
}
.hero-copy { align-self:center;
  padding-top:20px;
  padding-bottom:35px;
  margin-left:max(24px,calc((100vw - var(--max))/2));
  width:min(510px,calc(100% - 48px))
}
.hero h1,.promo h2,.page-hero h1 { font:600 clamp(43px,5vw,68px)/.93 var(--serif);
  margin:0 0 21px;
  max-width:450px
}
.lead { max-width:360px;
  margin:0 0 25px;
  color:#3d3935
}
.hero-art,.promo-art { background-image:linear-gradient(90deg,rgba(244,238,230,.1),rgba(244,238,230,0)),url('../assets/images/reference-hero.png');
  background-size:cover;
  background-position:80% 29%;
  min-height:350px
}
.benefits { background:var(--white)
}
.benefits .container { display:grid;
  grid-template-columns:repeat(4,1fr)
}
.benefit { text-align:center;
  padding:22px 15px;
  border-right:1px solid var(--border)
}
.benefit:last-child { border:0
}
.benefit-icon { font-size:25px;
  line-height:1;
  display:block;
  margin-bottom:7px
}
.benefit strong { display:block;
  font-size:10px;
  letter-spacing:.06em
}
.benefit span { font-size:11px
}
.category-grid { display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px
}
.category-card { height:290px;
  position:relative;
  overflow:hidden;
  background:linear-gradient(150deg,#c9a47e,#7d5235);
  isolation:isolate;
  color:#fff;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  text-align:center;
  padding:22px
}
.category-card:before { content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(transparent 30%,rgba(24,18,12,.62));
  z-index:-1
}
.category-card:nth-child(2) { background:linear-gradient(145deg,#d8d0c4,#80372f)
}
.category-card:nth-child(3) { background:linear-gradient(145deg,#e3c6a1,#624734)
}
.category-card:nth-child(4) { background:linear-gradient(145deg,#a88661,#e6caa4)
}
.category-card h3 { font:600 25px/.86 var(--serif);
  margin:0 0 13px
}
.category-card .outline { display:inline-flex;
  border:1px solid #fff;
  padding:7px 15px;
  font-size:9px;
  letter-spacing:.08em;
  font-weight:700
}
.product-grid { display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:13px
}
.product-card { border:1px solid var(--border);
  background:#fff;
  min-width:0;
  display:flex;
  flex-direction:column;
  transition:transform var(--transition)
}
.product-card>a:first-child { display:block }
.product-card:hover { transform:translateY(-3px)
}
.product-image { aspect-ratio:1/.98;
  background:linear-gradient(145deg,#e8d7c3,#b0855d);
  display:grid;
  place-items:center;
  text-align:center;
  padding:13px;
  color:#fff;
  font:600 25px/.9 var(--serif)
}
.product-card:nth-child(2n) .product-image { background:linear-gradient(145deg,#eeded4,#a64a3e)
}
.product-card:nth-child(3n) .product-image { background:linear-gradient(145deg,#d0af86,#6b4b32)
}
.product-body { padding:10px;
  position:relative;
  min-height:73px
}
.product-name { display:block;
  font-size:10px;
  line-height:1.3;
  padding-right:26px
}
.price { display:block;
  font-weight:700;
  font-size:11px;
  margin-top:8px
}
.consult-icon { position:absolute;
  right:9px;
  bottom:9px;
  width:26px;
  height:26px;
  border:1px solid var(--border);
  display:grid;
  place-items:center;
  font-size:14px;
  background:#fff
}
.promo { min-height:205px;
  background:var(--beige);
  display:grid;
  grid-template-columns:1fr 1.1fr;
  overflow:hidden;
  margin-bottom:var(--space)
}
.promo>div:first-child { padding:36px 0 30px 66px
}
.promo h2 { font-size:34px;
  margin-bottom:18px
}
.promo-art { min-height:205px;
  background-position:74% 78%
}
.gallery-strip { padding:25px 0;
  background:var(--cream)
}
.gallery-layout { display:grid;
  grid-template-columns:200px 1fr;
  gap:27px;
  align-items:center
}
.gallery-intro { border-right:1px solid var(--border)
}
.gallery-intro p { margin:3px 0;
  font-size:11px
}
.social-icon { font-size:28px;
  float:left;
  margin-right:10px
}
.text-link { font-size:9px;
  font-weight:700;
  text-decoration:underline;
  letter-spacing:.06em
}
.gallery-grid { display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:10px
}
.gallery-item { aspect-ratio:1;
  background:linear-gradient(145deg,#be9168,#f3d9bd);
  overflow:hidden
}
.gallery-item img { width:100%; height:100%; object-fit:cover; display:block; transition:transform var(--transition) }.gallery-item:hover img { transform:scale(1.04) }
.gallery-item:nth-child(even) { background:linear-gradient(145deg,#a75c50,#ebd5c8)
}
.site-footer { padding:35px 0 13px;
  background:var(--bg)
}
.footer-grid { display:grid;
  grid-template-columns:1.1fr .9fr 1.3fr 1.5fr;
  gap:28px
}
.footer-grid>section { border-left:1px solid var(--border);
  padding-left:25px
}
.footer-grid>section:first-child { border:0;
  padding:0
}
.footer-title { font-size:9px;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin:0 0 9px
}
.footer-grid p,.footer-grid a { font-size:10px;
  margin:2px 0;
  display:block
}
.footer-contact-layout { display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px
}
.footer-social { display:flex;
  align-items:center;
  gap:9px;
  margin-top:0;
  flex-shrink:0
}
.footer-social a { width:29px;
  height:29px;
  margin:0;
  display:grid;
  place-items:center;
  border:1px solid var(--border);
  transition:background var(--transition),color var(--transition)
}
.footer-social a:hover,.footer-social a:focus-visible { background:var(--dark);
  color:var(--white)
}
.footer-social svg { width:16px;
  height:16px
}
.newsletter { display:flex;
  margin-top:10px
}
.newsletter input { min-width:0;
  width:100%;
  border:1px solid var(--border);
  background:#fff;
  padding:10px;
  font-size:9px
}
.newsletter button { font-size:8px;
  white-space:nowrap;
  padding:0 12px
}
.form-message { font-size:10px;
  margin-top:6px
}
.copyright { text-align:center;
  font-size:9px;
  margin:24px 0 0;
  color:var(--muted)
}
.page-hero { background:var(--cream);
  padding:70px 0
}
.page-hero h1 { font-size:53px;
  margin-bottom:8px
}
.page-hero p { max-width:400px
}
.catalog-tools { display:grid;
  gap:18px
}
.search input { width:100%;
  padding:13px;
  border:1px solid var(--border);
  background:#fff
}
.filters { display:flex;
  flex-wrap:wrap;
  gap:7px
}
.filter { border:1px solid var(--border);
  background:transparent;
  padding:7px 12px;
  font-size:10px
}
.filter[aria-pressed="true"] { background:var(--dark);
  color:#fff;
  border-color:var(--dark)
}
.results-count { color:var(--muted);
  font-size:11px;
  margin:20px 0
}
.catalog-grid { grid-template-columns:repeat(4,1fr)
}
.empty-state { text-align:center;
  padding:45px;
  background:var(--cream)
}
.product-page { padding-top:31px;
  padding-bottom:0
}
#related-section { padding-top:55px }
.breadcrumb { font-size:10px;
  color:var(--muted);
  margin-bottom:20px
}
.product-detail { display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:clamp(30px,7vw,100px)
}
.product-main-image { width:100%; border:0; cursor:zoom-in; background:linear-gradient(145deg,#eeded4,#a64a3e);
  aspect-ratio:1;
  display:grid;
  place-items:center;
  text-align:center;
  padding:30px;
  color:#fff;
  font:600 48px/.9 var(--serif)
}
.thumbnails { display:flex;
  gap:8px;
  margin-top:9px
}
.thumbnail { width:165px;
  aspect-ratio:1;
  border:1px solid var(--border);
  background:var(--beige);
  padding:0;
  overflow:hidden;
  cursor:pointer
}
.thumbnail img { display:block; width:100%; height:100%; object-fit:cover }
.product-info h1 { font:600 clamp(38px,4vw,55px)/.94 var(--serif);
  margin:8px 0
}
.category-label { text-transform:uppercase;
  letter-spacing:.1em;
  font-size:10px
}
.detail-price { font-size:17px;
  margin:16px 0;
  font-weight:700
}
.description { max-width:450px
}
.specs { border-top:1px solid var(--border);
  margin:22px 0;
  padding:13px 0;
  display:grid;
  gap:7px
}
.specs div { display:grid;
  grid-template-columns:100px 1fr;
  font-size:11px
}
.status { font-weight:700
}
.back-link { display:inline-block;
  margin:15px 0 0;
  font-size:10px;
  text-decoration:underline
}
.not-found { text-align:center;
  padding:90px 0
}
.site-header-overlay { display:none
}

@media(max-width:800px) { .site-header { height:76px
}
  .desktop-nav { display:none
}
  .header-left { gap:0
}
  .brand { font-size:23px
}
  .header-right { gap:5px
}
  .mobile-nav { display:flex;
    position:fixed;
    z-index:30;
    inset:0 auto 0 0;
    width:min(300px,85vw);
    padding:100px 30px 30px;
    background:var(--bg);
    transform:translateX(-100%);
    transition:transform var(--transition);
    flex-direction:column;
    gap:19px;
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.07em
}
  .mobile-nav.open { transform:translateX(0)
}
  body.menu-open { overflow:hidden
}
  .site-header:has(.mobile-nav.open):after { content:"";
    position:fixed;
    z-index:20;
    inset:0;
    background:rgba(20,18,15,.35);
    pointer-events:none
}
  .hero { display:block
}
  .hero-copy { margin:auto;
    width:min(calc(100% - 48px),var(--max));
    padding:54px 0 38px
}
  .hero h1 { font-size:50px
}
  .hero-art { min-height:255px;
    background-position:86% 30%
}
  .benefits .container { grid-template-columns:repeat(2,1fr)
}
  .benefit:nth-child(2) { border-right:0
}
  .benefit:nth-child(-n+2) { border-bottom:1px solid var(--border)
}
  .category-grid { grid-template-columns:repeat(2,1fr)
}
  .product-grid { grid-template-columns:repeat(3,1fr)
}
  .promo { grid-template-columns:1fr
}
  .promo>div:first-child { padding:36px 28px
}
  .promo-art { min-height:185px
}
  .gallery-layout { grid-template-columns:1fr
}
  .gallery-intro { border:0
}
  .footer-grid { grid-template-columns:repeat(2,1fr)
}
  .footer-grid>section:nth-child(3) { border-left:0;
    padding-left:0
}
  .product-detail { grid-template-columns:1fr
}
  .catalog-grid { grid-template-columns:repeat(3,1fr)
}
}

@media(max-width:480px) { .container { width:min(calc(100% - 32px),var(--max))
}
  .nav { display:none
}
  .hero h1 { font-size:44px
}
  .category-grid { grid-template-columns:1fr
}
  .category-card { height:265px
}
  .product-grid,.catalog-grid { grid-template-columns:repeat(2,1fr);
    gap:10px
}
  .product-image { font-size:20px
}
  .gallery-grid { grid-template-columns:repeat(3,1fr)
}
  .footer-grid { grid-template-columns:1fr
}
  .footer-grid>section { border-left:0;
    padding-left:0;
    border-top:1px solid var(--border);
    padding-top:18px
}
  .footer-grid>section:first-child { border:0
}
  .specs div { grid-template-columns:86px 1fr
}
}

.hero { display:block;
  position:relative;
  isolation:isolate;
  background:var(--cream) url('../assets/images/hero-rose-gift-box.png') center center/cover no-repeat;
  min-height:440px
}

.hero:before { display:none
}

.hero-copy { position:relative;
  z-index:1;
  min-height:440px;
  margin-left:max(24px,calc((100vw - var(--max))/2));
  padding-top:82px;
  padding-bottom:50px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center
}

.hero-art { display:none
}

@media(max-width:800px) { .hero { min-height:570px;
    background-position:72% bottom
}
  .hero-copy { min-height:300px;
    margin:auto;
    width:min(calc(100% - 48px),var(--max));
    padding:50px 0 35px;
    justify-content:flex-start
}
}

#site-header,.site-header { background:#f8f3ed
}

.site-header .header-right { position:absolute;
  z-index:13;
  right:0;
  top:50%;
  transform:translateY(-50%);
  gap:14px
}

.site-header .header-right .icon-button { padding:4px
}

.site-header .header-right .icon-button svg { width:42px;
  height:42px
}

.site-header .brand { position:static;
  z-index:12;
  width:145px;
  height:95px;
  display:block;
  letter-spacing:0;
  justify-self:center
}

.site-header .brand img { display:block;
  width:100%;
  height:auto
}

.footer-logo { display:flex;
  align-items:center;
  justify-content:center;
  height:116px;
  min-height:0;
  overflow:hidden
}
.footer-logo a { display:block;
  width:auto;
  height:100%;
  max-width:100%
}
.footer-logo img { display:block;
  width:auto;
  height:100%;
  max-width:100%;
  object-fit:contain
}

body[data-page="home"] .site-header .brand { position:absolute;
  left:50%;
  top:-5px;
  transform:translateX(-50%);
  width:360px;
  height:250px
}

.category-card { border:0;
  font-family:inherit
}

.collection-carousel { display:flex;
  gap:13px;
  overflow-x:auto;
  padding:3px 2px 16px;
  scroll-snap-type:x proximity
}
.collection-carousel .product-card { flex:0 0 min(190px,42vw);
  scroll-snap-align:start
}

@media(max-width:800px) { .site-header .brand { width:115px;
    height:76px
}
  .site-header .header-right .icon-button svg { width:30px;
    height:30px
}
  body[data-page="home"] .site-header .brand { width:220px;
    height:150px;
    top:-8px
}
  .collection-carousel .product-card { flex-basis:150px
}
  .footer-logo { height:109px
}
  .footer-logo a { width:auto
}
}

.promo { display:block;
  background:transparent url('../assets/images/new-collection-banner.png') center/cover no-repeat
}
.promo>div:first-child { padding:38px 0 38px 66px
}
.promo-art { display:none
}
.collections-slider { position:relative
}
.collections-carousel { display:flex;
  gap:16px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  padding:3px 4px 18px;
  scrollbar-width:none
}
.collections-carousel::-webkit-scrollbar { display:none
}
.collections-carousel .category-card { flex:0 0 calc((100% - 48px)/4);
  scroll-snap-align:start
}
.category-card { border:0;
  font-family:inherit
}
.carousel-arrow { position:absolute;
  z-index:2;
  top:50%;
  width:42px;
  height:42px;
  border:1px solid var(--border);
  background:var(--bg);
  color:var(--text);
  font-size:24px;
  line-height:1;
  transform:translateY(-50%);
  transition:var(--transition)
}
.carousel-arrow:hover,.carousel-arrow:focus-visible { background:var(--dark);
  color:var(--white)
}
.carousel-prev { left:-21px
}
.carousel-next { right:-21px
}

.collections-carousel .category-card { background:transparent!important
}
.category-image { position:absolute;
  z-index:-2;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center
}
.category-image-love-teddies,.category-image-flowers,.category-image-skulls { object-position:center 58%
}
.admin-page { padding:70px 0
}
.admin-page h1 { font:600 clamp(42px,5vw,65px)/.95;
  margin:10px 0
}
.admin-category-grid { display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
  margin-top:35px
}
.admin-category-card { border:1px solid var(--border);
  background:#fff
}
.admin-category-card>img { display:block;
  width:100%;
  aspect-ratio:1.25;
  object-fit:cover
}
.admin-category-card>div { padding:16px
}
.admin-category-card h2 { font:600 27px/1 var(--serif);
  margin:0 0 5px
}
.admin-category-card p { font-size:11px;
  color:var(--muted);
  margin:0 0 13px
}
.file-button { position:relative;
  overflow:hidden;
  cursor:pointer
}
.file-button input { position:absolute;
  inset:0;
  opacity:0;
  cursor:pointer
}
.admin-reset { display:block;
  margin-top:9px;
  border:0;
  background:transparent;
  padding:0;
  font-size:10px;
  text-decoration:underline
}

@media(max-width:800px) { .collections-carousel .category-card { flex-basis:calc((100% - 16px)/2)
}
  .carousel-prev { left:-12px
}
  .carousel-next { right:-12px
}
}

@media(max-width:800px) { .admin-category-grid { grid-template-columns:repeat(2,1fr)
}
}

@media(max-width:800px) { .promo { min-height:320px;
    background-position:62% center
}
  .promo>div:first-child { padding:40px 28px
}
}

@media(max-width:480px) { .collections-carousel .category-card { flex-basis:86%
}
  .carousel-arrow { width:36px;
    height:36px
}
  .carousel-prev { left:-9px
}
  .carousel-next { right:-9px
}
}

@media(max-width:480px) { .admin-category-grid { grid-template-columns:1fr
}
}

.page-hero { background:transparent url('../assets/images/catalog-hero-background.png') center/cover no-repeat;
  padding:36px 0
}

body[data-page="catalog"] .section { padding-top:18px
}

.product-body { display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:8px
}
.product-details { min-width:0;
  display:grid;
  gap:2px
}
.product-name,.product-specs { line-height:1.45
}
.product-name { text-transform:uppercase;
  font-weight:700;
  letter-spacing:.015em
}
.product-specs { display:grid;
  grid-template-columns:max-content max-content;
  justify-content:start;
  gap:2px 16px;
  padding:0;
  font-size:10px;
  line-height:1.35;
  color:var(--muted)
}
.product-spec-item { min-width:0;
  white-space:nowrap
}
.product-spec-weight { grid-column:1/-1;
  margin-top:1px
}
.product-side { display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px
}
.product-body .price { margin:0;
  font-size:15px;
  line-height:1;
  font-weight:700;
  white-space:nowrap
}
.product-side .consult-icon { position:static;
  width:28px;
  height:28px
}
.product-side .consult-icon svg { display:block;
  width:15px;
  height:15px
}

/* En las tarjetas, las medidas ocupan primero todo el ancho y el precio
   queda debajo, evitando que se monte sobre "Ancho". */
.product-body { display:flex;
  flex:1;
  flex-direction:column;
  min-height:0
}
.product-details { width:100%;
  padding-right:0
}
.product-side { margin-top:auto;
  justify-content:flex-end
}
.product-body .price { margin:0 }
#colecciones { padding-bottom:22px
}
#colecciones+.section { padding-top:22px
}

#colecciones { width:100%;
  max-width:none
}

.social-icon { display:block;
  float:left;
  width:28px;
  height:28px;
  margin-right:10px
}
.social-icon svg { display:block;
  width:100%;
  height:100%
}
.product-details .product-name { padding-right:0
}

.hero h1,.promo h2 { white-space:pre-line
}

@media(prefers-reduced-motion:reduce) { *,html { scroll-behavior:auto!important;
    transition:none!important
}
}

/* Panel administrativo local */
body[data-page="admin"] { background:#f5f2ee }
.admin-auth { min-height:100vh; display:grid; place-items:center; padding:25px; background:#f5f2ee }
.admin-auth-card { width:min(410px,100%); padding:38px; background:#fff; border:1px solid var(--border); text-align:center }.admin-auth-card>img { width:125px; height:auto; margin:0 auto 25px; display:block; filter:brightness(0) invert(0) }.admin-auth-card h1 { margin:0 0 8px; font:600 42px/1 var(--serif) }.admin-auth-card>p:not(.eyebrow) { margin:0 auto 25px; color:var(--muted); font-size:11px }.admin-auth-card form { display:grid; gap:14px; text-align:left }.admin-auth-card label { display:grid; gap:6px; font-size:10px; font-weight:700 }.admin-auth-card input { width:100%; border:1px solid var(--border); padding:11px; background:#fff }.admin-auth-card .button { width:100%; margin-top:5px }.admin-auth-card .form-message { min-height:17px; margin:0; text-align:center }.admin-shell { display:none }
.password-field { display:flex; position:relative }.password-field input { padding-right:62px }.password-field button { position:absolute; right:1px; top:1px; bottom:1px; border:0; background:#fff; color:var(--muted); padding:0 10px; font-size:9px; font-weight:700; cursor:pointer }.password-field button:hover { color:var(--text) }
body.authenticated .admin-auth { display:none } body.authenticated .admin-shell { display:grid }
.admin-shell { min-height:100vh; grid-template-columns:235px 1fr }
.admin-sidebar { background:var(--dark); color:#fff; padding:28px 20px; display:flex; flex-direction:column; position:sticky; top:0; height:100vh; overflow:hidden }
.admin-brand { display:grid; gap:12px; padding:0 8px 30px; border-bottom:1px solid rgba(255,255,255,.16); color:#fff }
.admin-brand { justify-items:center; text-align:center; align-content:center; min-height:105px }
.admin-brand img { width:135px; height:auto; filter:brightness(0) invert(1); object-fit:contain; object-position:left }
.admin-brand img { display:block; margin:0 auto; object-position:center }
.admin-brand span { color:#f4eee6; font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.1em; line-height:1.2 }
.admin-nav { display:grid; gap:2px; padding-top:14px }
.admin-nav-item { width:100%; border:1px solid transparent; border-radius:3px; background:transparent; color:#cfc6bd; text-align:left; padding:9px 13px; font-size:11px; line-height:1.25; cursor:pointer; transition:background var(--transition),color var(--transition),border-color var(--transition) }
.admin-nav-item:before { content:'◇'; margin-right:11px; color:#a9937e }
.admin-nav-item.is-active,.admin-nav-item:hover { background:#332f2b; border-color:#4b443e; color:#fff }
.admin-site-link { display:block; margin-top:auto; padding:11px 12px; color:#cfc6bd; border:1px solid rgba(255,255,255,.22); border-radius:3px; font-size:10px; text-align:center; transition:background var(--transition),color var(--transition) }.admin-site-link:hover { background:#fff; color:var(--dark) }
.admin-main { width:min(100%,1250px); padding:40px clamp(24px,5vw,70px) 70px }
.admin-topbar,.admin-toolbar,.admin-panel-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:20px }
.admin-topbar { align-items:center; margin-bottom:35px }
.admin-topbar h1,.admin-toolbar h2 { margin:0; font:600 clamp(35px,4vw,52px)/.9 var(--serif) }
.admin-toolbar { align-items:center; margin-bottom:25px }
.admin-toolbar h2 { font-size:38px }
.local-badge { background:#e6eee7; color:#41694b; border-radius:30px; padding:8px 13px; font-size:10px }
.admin-view { display:none }.admin-view.is-visible { display:block }
.admin-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:22px }
.admin-stat,.admin-panel,.admin-welcome { background:#fff; border:1px solid var(--border) }
.admin-stat { padding:18px 20px; display:grid; gap:9px }.admin-stat span { color:var(--muted); font-size:10px; text-transform:uppercase; letter-spacing:.08em }.admin-stat strong { font:600 33px/1 var(--serif) }
.admin-welcome { background:var(--cream); padding:30px; display:flex; justify-content:space-between; align-items:center; gap:25px; margin-bottom:25px }.admin-welcome h2,.admin-panel h2 { font:600 30px/1 var(--serif); margin:0 0 10px }.admin-welcome p:not(.eyebrow) { max-width:560px; margin:0; color:var(--muted); font-size:11px }.welcome-actions { display:flex; gap:9px; flex-shrink:0 }.button-light { background:transparent; color:var(--dark) }.button-light:hover,.button-light:focus-visible { background:var(--dark); color:#fff }
.admin-panel { padding:25px }.admin-panel-heading { align-items:center; margin-bottom:17px }.admin-panel-heading h2 { font-size:26px; margin:0 }
.text-button,.category-card-actions button,.table-actions button { border:0; background:transparent; cursor:pointer; color:var(--muted); font-size:10px; text-decoration:underline; padding:5px }.text-button:hover,.table-actions button:hover { color:var(--text) }
.admin-filters { display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:10px; margin-bottom:18px }.admin-filters input,.admin-filters select,.admin-form-grid input,.admin-form-grid select,.admin-form-grid textarea,.admin-dialog>form>label input { width:100%; border:1px solid var(--border); background:#fff; padding:11px; color:var(--text) }
.admin-table-wrap { overflow-x:auto }.admin-table { width:100%; border-collapse:collapse; font-size:11px }.admin-table th { text-align:left; color:var(--muted); text-transform:uppercase; font-size:9px; letter-spacing:.07em; font-weight:600; padding:10px; border-bottom:1px solid var(--border) }.admin-table td { padding:11px 10px; border-bottom:1px solid #eee8e2; white-space:nowrap }.table-product { display:flex; align-items:center; gap:10px }.table-thumb { width:38px; height:38px; display:grid; place-items:center; overflow:hidden; background:var(--beige); color:#fff; font:20px var(--serif) }.table-thumb img { width:100%; height:100%; object-fit:cover }.status-pill { background:#f0e9e4; color:var(--muted); padding:4px 8px; font-size:9px }.status-pill.is-active { background:#e6eee7; color:#41694b }.table-actions { text-align:right }.admin-empty { padding:30px; text-align:center; color:var(--muted); background:var(--cream) }
.admin-category-grid { grid-template-columns:repeat(3,1fr); margin-top:0 }.admin-category-card { min-width:0 }.admin-category-visual { height:205px; background:var(--beige); display:grid; place-items:center; color:#fff; font:50px var(--serif); overflow:hidden }.admin-category-visual img { width:100%; height:100%; object-fit:cover }.admin-category-card h2 { font-size:24px }.category-card-actions { display:flex; gap:7px; margin-top:12px }
.product-image img,.product-main-image img { width:100%; height:100%; object-fit:cover }
.image-lightbox { position:fixed; inset:0; z-index:1000; display:grid; place-items:center; padding:30px; background:rgba(20,16,13,.92); }
.image-lightbox[hidden] { display:none; }
.image-lightbox-content { display:block; max-width:94vw; max-height:92vh; width:auto; height:auto; object-fit:contain; }
.image-lightbox-close { position:absolute; top:18px; right:24px; border:0; background:transparent; color:#fff; font-size:42px; line-height:1; cursor:pointer; }
.lightbox-open { overflow:hidden; }
.admin-dialog { border:0; padding:0; width:min(680px,calc(100% - 30px)); background:var(--bg); color:var(--text); box-shadow:0 18px 70px rgba(30,20,10,.25) }.admin-dialog::backdrop { background:rgba(25,20,16,.48) }.admin-dialog>form { padding:28px }.admin-dialog-small { width:min(460px,calc(100% - 30px)) }.dialog-heading { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:23px }.dialog-heading h2 { margin:0; font:600 35px/1 var(--serif) }.dialog-close { border:0; background:transparent; font-size:27px; line-height:1; cursor:pointer }.admin-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:15px }.admin-form-grid label,.admin-dialog>form>label { display:grid; gap:6px; font-size:10px; font-weight:700 }.admin-form-grid input,.admin-form-grid select,.admin-form-grid textarea,.admin-dialog>form>label input { margin-top:0 }.form-full { grid-column:1/-1 }.admin-form-grid small,.admin-dialog small { color:var(--muted); font-size:9px; font-weight:400 }.check-field { display:flex!important; align-items:center; grid-template-columns:auto 1fr; font-weight:500!important }.check-field input { width:auto!important; accent-color:var(--dark) }.dialog-actions { display:flex; justify-content:flex-end; gap:17px; align-items:center; margin-top:25px }.product-image-preview,.category-image-preview { display:flex; gap:8px; flex-wrap:wrap; min-height:45px; color:var(--muted); font-size:10px }.product-image-preview>div { width:72px; height:72px; position:relative }.product-image-preview img,.category-image-preview img { width:100%; height:100%; object-fit:cover }.product-image-preview button { position:absolute; right:2px; top:2px; border:0; background:#fff; cursor:pointer }.category-image-preview { height:120px }.category-image-preview img { width:120px }
@media(max-width:800px) { .admin-shell { grid-template-columns:1fr }.admin-sidebar { padding:15px 20px; display:block }.admin-brand { display:flex; align-items:center; justify-content:space-between; padding:0 0 13px }.admin-brand img { width:115px }.admin-nav { display:flex; padding:10px 0 0; overflow:auto }.admin-nav-item { white-space:nowrap }.admin-site-link { display:none }.admin-main { padding:27px 18px 50px }.admin-stats { grid-template-columns:repeat(2,1fr) }.admin-welcome { display:block }.admin-welcome .button { margin-top:20px }.admin-category-grid { grid-template-columns:repeat(2,1fr) } }
@media(max-width:480px) { .admin-topbar,.admin-toolbar { align-items:flex-start; flex-direction:column }.admin-filters { grid-template-columns:1fr }.admin-form-grid { grid-template-columns:1fr }.form-full { grid-column:auto }.admin-category-grid { grid-template-columns:1fr }.admin-panel { padding:15px }.admin-table th:nth-child(2),.admin-table td:nth-child(2) { display:none } }

/* Ajuste compacto del panel */
body[data-page="admin"] { font-size:12px }
.admin-shell { grid-template-columns:205px 1fr }
.admin-sidebar { padding:22px 16px }
.admin-brand { padding-bottom:12px }
.admin-brand img { width:116px }
.admin-nav { padding-top:18px }
.admin-nav-item { padding:9px 10px; font-size:10px }
.admin-main { max-width:1180px; padding:30px 42px 55px }
.admin-topbar { margin-bottom:26px }
.admin-topbar h1 { font-size:38px }
.admin-toolbar h2 { font-size:32px }
.admin-stats { gap:10px; margin-bottom:16px }
.admin-stat { padding:13px 16px; gap:5px }.admin-stat strong { font-size:27px }.admin-stat span { font-size:9px }
.admin-welcome { padding:22px 24px; margin-bottom:17px }.admin-welcome h2 { font-size:25px; margin-bottom:7px }
.admin-panel { padding:18px 20px }.admin-panel h2 { font-size:23px }.admin-panel-heading { margin-bottom:10px }
.admin-toolbar { margin-bottom:18px }
.admin-category-grid { gap:14px }
.admin-category-visual { height:155px }
.admin-category-card>div { padding:13px }
.admin-category-card h2 { font-size:21px; margin-bottom:3px }
.admin-category-card p { margin-bottom:7px }
.admin-table th { padding:8px 10px }.admin-table td { padding:8px 10px }
.table-thumb { width:32px; height:32px }
.admin-table { table-layout:fixed; font-size:13px }
.admin-table th,.admin-table td { padding-left:6px; padding-right:6px }
.admin-table th:nth-child(1),.admin-table td:nth-child(1) { width:38% }
.admin-table th:nth-child(2),.admin-table td:nth-child(2) { width:25% }
.admin-table th:nth-child(3),.admin-table td:nth-child(3) { width:11% }
.admin-table th:nth-child(4),.admin-table td:nth-child(4) { width:11% }
.admin-table th:nth-child(5),.admin-table td:nth-child(5) { width:15% }
.admin-table th { font-size:10px }
.table-product { gap:8px }
.table-actions { white-space:nowrap }
.admin-dialog>form { padding:23px }.dialog-heading { margin-bottom:18px }.dialog-heading h2 { font-size:30px }
.admin-form-grid { gap:11px }

/* Flechas del carrusel siempre dentro del área visible */
.collections-slider { padding:0 38px; overflow:visible }
.carousel-arrow { top:50%; width:48px; height:48px; display:flex; align-items:center; justify-content:center; padding:0; border:1px solid #c9c0b7; border-radius:50%; background:#fff; color:var(--dark); box-shadow:0 3px 12px rgba(35,25,15,.18); font-family:Arial,sans-serif; font-size:30px; line-height:1; transform:translateY(-50%) }
.carousel-prev { left:3px }.carousel-next { right:3px }
.carousel-arrow:hover,.carousel-arrow:focus-visible { background:var(--dark); border-color:var(--dark); color:#fff }

@media(max-width:800px) {
  .collections-slider { padding:0 32px }
  .carousel-arrow { width:44px; height:44px; top:50%; font-size:27px }
  .carousel-prev { left:1px }.carousel-next { right:1px }
}

@media(max-width:480px) {
  .collections-slider { padding:0 30px }
}

/* Header horizontal con navegación desplegable */
.site-header { height:112px }
.site-header .desktop-nav { display:none }
.site-header .menu-toggle { display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px; padding:0; font-size:27px; line-height:1 }
.site-header .brand { display:block; width:min(370px,55vw); font-size:0 }
.site-header .brand img { display:block; width:100%; height:auto; max-height:58px; object-fit:contain }
.site-header .mobile-nav { display:flex; position:fixed; z-index:30; inset:0 auto 0 0; width:min(320px,86vw); height:100vh; padding:112px 30px 30px; background:var(--bg); transform:translateX(-105%); transition:transform var(--transition); flex-direction:column; gap:22px; font-size:12px; text-transform:uppercase; letter-spacing:.08em; box-shadow:8px 0 28px rgba(25,20,15,.12) }
.site-header .mobile-nav.open { transform:translateX(0) }
.site-header .mobile-nav a { padding:9px 0; border-bottom:1px solid var(--border) }
.site-header:has(.mobile-nav.open):after { content:""; position:fixed; z-index:20; inset:0; background:rgba(20,18,15,.35); pointer-events:none }
body.menu-open { overflow:hidden }

/* El wordmark ocupa el 85% de la altura del header */
.site-header .brand { width:auto; height:85%; display:flex; align-items:center; justify-content:center }
.site-header .brand { width:min(620px,58vw); height:88%; padding:0; overflow:visible; background:transparent; align-items:center }
.site-header .brand img { width:100%; height:100%; max-width:none; max-height:none; object-fit:contain; object-position:center; transform:none }
body[data-page="home"] .site-header .brand { position:static; top:auto; left:auto; transform:none; width:min(620px,58vw); height:88%; }

@media(max-width:800px) {
  .site-header { height:76px }
  .site-header .brand { width:min(380px,58vw); height:78%; padding:3px 9px }
  .site-header .brand img { width:100%; height:100%; max-width:none; max-height:none; object-fit:contain; transform:none }
  body[data-page="home"] .site-header .brand { position:static; top:auto; left:auto; transform:none; width:min(380px,58vw); height:78%; }
}

@media(max-width:800px) {
  .admin-sidebar { position:static; height:auto; overflow:visible }
  .admin-brand { min-height:0; justify-items:stretch; text-align:left; align-content:normal }
  .admin-nav-item { width:auto; min-width:105px; text-align:center }
}

@media (max-width:1400px) and (min-width:801px) {
  .admin-shell { grid-template-columns:175px 1fr }
  .admin-sidebar { padding:18px 12px }
  .admin-brand { padding:0 5px 12px; gap:8px; min-height:92px }
  .admin-brand img { width:96px }
  .admin-brand span { font-size:10px }
  .admin-nav { padding-top:9px; gap:1px }
  .admin-nav-item { padding:7px; font-size:9px }
  .admin-nav-item:before { margin-right:7px }
  .admin-main { max-width:none; padding:22px 25px 38px }
  .admin-topbar { margin-bottom:18px }
  .admin-topbar h1 { font-size:32px }
  .admin-toolbar h2 { font-size:28px }
  .admin-stats { gap:8px; margin-bottom:12px }
  .admin-stat { padding:10px 13px }
  .admin-stat strong { font-size:23px }
  .admin-stat span { font-size:8px }
  .admin-welcome { padding:17px 20px; margin-bottom:12px }
  .welcome-actions { flex-wrap:wrap }
  .admin-welcome h2 { font-size:22px }
  .admin-welcome p:not(.eyebrow) { font-size:10px }
  .admin-panel { padding:15px 17px }
  .admin-panel h2 { font-size:21px }
  .admin-category-grid { gap:10px }
  .admin-category-visual { height:125px }
}
/* Galería editable de fotos del producto */
.product-image-item { width:88px; height:98px; position:relative; display:grid; grid-template-rows:72px 26px; background:var(--cream) }
.product-image-item span { padding:5px 4px; font-size:9px; text-align:center; overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
.product-image-preview button { width:20px; height:20px; line-height:16px; padding:0 }

/* Todas las miniaturas y portadas conservan un formato cuadrado. */
.product-image { width:100%; aspect-ratio:1 / 1; min-height:0; overflow:hidden; }
.product-image img { display:block; width:100%; height:100%; min-width:0; min-height:0; object-fit:cover; }
.product-image-item { width:88px; height:auto; display:block; }
.product-image-item img { display:block; width:88px; height:88px; aspect-ratio:1 / 1; object-fit:cover; }
.product-image-preview .product-image-item { width:88px; height:114px; min-height:114px; flex:0 0 88px; display:block; position:relative; }
.product-image-preview .product-image-item img { width:88px; height:88px; }
.product-image-preview { align-items:flex-start; }

/* Hero móvil: el mensaje y la fotografía viven en bloques separados para
   mantener la lectura limpia y no tapar los productos. */
@media (max-width:800px) {
  .hero {
    display:flex;
    flex-direction:column;
    min-height:0;
    background:var(--cream);
  }

  .hero-copy {
    order:1;
    width:100%;
    min-height:0;
    margin:0;
    padding:clamp(38px,10vw,58px) max(24px,calc((100% - 520px) / 2)) 18px;
    background:var(--cream);
  }

  .hero .eyebrow {
    margin-bottom:14px;
    font-size:10px;
  }

  .hero h1 {
    max-width:390px;
    margin-bottom:18px;
    font-size:clamp(42px,11vw,58px);
    line-height:.9;
  }

  .hero .lead {
    max-width:430px;
    margin-bottom:25px;
    color:var(--muted);
    font-size:13px;
    line-height:1.65;
  }

  .hero .button {
    min-height:50px;
    padding:0 25px;
  }

  .hero-art {
    display:block;
    order:2;
    width:100%;
    min-height:clamp(300px,86vw,430px);
    background-image:url('../assets/images/hero-rose-gift-box.png');
    background-size:cover;
    background-position:72% center;
  }
}

@media (max-width:480px) {
  .hero-copy {
    padding-right:20px;
    padding-left:20px;
  }

  .hero-art {
    min-height:325px;
    background-position:70% center;
  }
}

.admin-form-grid select[multiple] {
  min-height:110px;
  padding:7px;
}

.admin-form-grid select[multiple] option {
  padding:5px 7px;
}

/* En pantallas pequeñas el encabezado reserva una columna propia para los
   accesos sociales, evitando que se superpongan al logotipo. */
@media (max-width:800px) {
  .site-header {
    display:grid;
    grid-template-columns:42px minmax(0,1fr) auto;
    column-gap:6px;
  }

  .site-header .header-left {
    grid-column:1;
    min-width:0;
  }

  .site-header .brand,
  body[data-page="home"] .site-header .brand {
    grid-column:2;
    grid-row:1;
    width:100%;
    min-width:0;
    max-width:none;
    padding:3px 2px;
  }

  .site-header .header-right {
    position:static;
    top:auto;
    right:auto;
    transform:none;
    grid-column:3;
    grid-row:1;
    justify-self:end;
    align-self:center;
    gap:3px;
    width:auto;
  }

  .site-header .header-right .icon-button {
    padding:3px;
  }

  .site-header .header-right .icon-button svg {
    width:28px;
    height:28px;
  }
}
