/* ============================================================
   TELA — marca textil demostrativa (aislada)
   Plantilla page-tela • clase de cuerpo .tela-frame
   ============================================================ */
@font-face { font-family:'DM Serif Display'; font-style:normal; font-weight:400;
	src:url('fonts/tela/dmserif/dmserif-display.woff2') format('woff2'); font-display:swap; }
@font-face { font-family:'Karla'; font-style:normal; font-weight:400 700;
	src:url('fonts/tela/karla/karla.woff2') format('woff2'); font-display:swap; }

.tela-frame {
	--tela-peel:#F4EFE6;  --tela-bone:#EFE6D7; --tela-sand:#E1D3BE;
	--tela-ink:#2B241C;   --tela-brn:#5B4A39;  --tela-clay:#AF7B57; --tela-clay-dark:#8a4f2c; --tela-clay-ink:#6e3f24;
	--tela-line:#DACBB5;  --tela-soft:#C9B999;
	--tela-font-display:'DM Serif Display', Georgia, serif;
	--tela-font-body:'Karla','Helvetica Neue',Arial,sans-serif;
	--tela-gut:clamp(1.1rem,4vw,3rem);
	--tela-red:24px;
}
.tela-frame, .tela-frame body { background:var(--tela-peel); color:var(--tela-ink); }
.tela-frame body { font-family:var(--tela-font-body); font-weight:400; line-height:1.62; font-size:1rem; -webkit-font-smoothing:antialiased; }
@media (prefers-reduced-motion:reduce){ .tela-frame *, .tela-frame *::before, .tela-frame *::after{ animation:none!important; transition:none!important; scroll-behavior:auto!important; } }

/* ---------- Tipografía básica ---------- */
.tela-frame h1,.tela-frame h2,.tela-frame h3,.tela-frame h4,
.tela-frame .is-layout-flex h1,.tela-frame .is-layout-flex h2,
.tela-frame .is-layout-flex h3{ font-family:var(--tela-font-display); font-weight:400; color:var(--tela-ink); }
.tela-frame h1{ font-size:clamp(2.6rem,7vw,5.4rem); line-height:.98; letter-spacing:-.01em; }
.tela-frame h2{ font-size:clamp(1.9rem,4vw,3rem); line-height:1.02; letter-spacing:-.01em; }
.tela-frame h3{ font-size:1.35rem; line-height:1.15; }
.tela-frame p{ margin-block:1rem; }
.tela-frame a{ color:inherit; text-decoration-thickness:1px; text-underline-offset:3px; transition:color .2s; }
.tela-frame a:hover{ color:var(--tela-clay); }
/* ---------- Foco visible ---------- */
.tela-frame a:focus-visible,
.tela-frame button:focus-visible,
.tela-frame .wp-block-button__link:focus-visible,
.tela-frame input:focus-visible,
.tela-frame textarea:focus-visible,
.tela-frame select:focus-visible{ outline:2px solid var(--tela-clay-ink); outline-offset:2px; }
.tela-frame .tela-nav-toggle:focus-visible,
.tela-frame .tela-nav-toggle:focus{ outline:2px solid var(--tela-clay-ink); outline-offset:2px; }
.tela-frame .tela-label{ font-family:var(--tela-font-body); font-size:.72rem; font-weight:700;
	letter-spacing:.22em; text-transform:uppercase; color:var(--tela-brn); }
.tela-frame .tela-kicker{ font-family:var(--tela-font-body); font-size:.74rem; font-weight:700;
	letter-spacing:.24em; text-transform:uppercase; color:var(--tela-clay-ink); margin:0 0 1rem; }

/* ---------- Contenedores ---------- */
.tela-main .wp-block-group{ max-width:none; }
.tela-main .alignwide{ margin-inline:auto; }
.tela-frame .tela-shell{ max-width:1200px; margin-inline:auto; padding-inline:var(--tela-gut); }

/* ---------- Animación de aparición ---------- */
.tela-frame .tela-reveal{ }
@media (min-width:641px){
	.tela-frame .js .tela-reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease; }
	.tela-frame .js .tela-reveal.is-in{ opacity:1; transform:none; }
}
@media (prefers-reduced-motion:reduce){ .tela-frame .js .tela-reveal{ opacity:1!important; transform:none!important; } }

/* ---------- Header ---------- */
.tela-frame .tela-header{ background:var(--tela-peel); border-bottom:1px solid var(--tela-line); padding:0; z-index:50; }
.tela-frame .tela-header-inner{ max-width:1240px; margin-inline:auto; padding:.85rem var(--tela-gut);
	display:flex; align-items:center; justify-content:space-between; gap:1.5rem; }
.tela-frame .tela-brand{ display:flex; align-items:center; gap:.85rem; flex-wrap:nowrap; }
.tela-frame .tela-logo{ font-family:var(--tela-font-display); font-size:1.6rem; margin:0; line-height:1; }
.tela-frame .tela-logo a{ text-decoration:none; color:var(--tela-ink); }
.tela-frame .tela-logo a:hover{ color:var(--tela-clay-ink); }
.tela-frame .tela-backlink{ margin:0; }
.tela-frame .tela-backlink a{ display:inline-flex; align-items:center; gap:.35rem; text-decoration:none;
	font-family:var(--tela-font-body); font-size:.68rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
	color:var(--tela-brn); border:1px solid transparent; border-radius:999px; padding:.34rem .7rem; line-height:1;
	transition:background .2s,color .2s,border-color .2s; }
.tela-frame .tela-backlink a:hover{ color:var(--tela-clay-ink); border-color:var(--tela-line); background:var(--tela-bone); }
/* Navegación (grupo propio, sin core/navigation) */
.tela-frame .tela-nav{ display:flex; align-items:center; gap:.2rem; margin-inline:auto; }
.tela-frame .tela-nav .tela-navlink{ margin:0; }
.tela-frame .tela-navlink a{ font-family:var(--tela-font-body); font-size:.82rem; font-weight:600;
	letter-spacing:.05em; text-transform:uppercase; color:var(--tela-ink); text-decoration:none;
	padding:.5rem .6rem; display:inline-block; }
.tela-frame .tela-navlink a:hover{ color:var(--tela-clay-ink); }
/* Contacto y "Volver a Diseños" dentro del menú: se muestran solo en el dropdown móvil */
.tela-frame .tela-nav .tela-navcontact,
.tela-frame .tela-nav .tela-navback{ display:none; margin:0; }
/* Acciones */
.tela-frame .tela-acciones{ margin-left:0; }
.tela-frame .tela-acciones .wp-block-button__link{ font-family:var(--tela-font-body); font-size:.8rem; font-weight:700;
	letter-spacing:.08em; text-transform:uppercase; text-decoration:none; cursor:pointer; }
.tela-frame .tela-contacto-btn .wp-block-button__link{ background:transparent; color:var(--tela-ink); border:1px solid var(--tela-brn); padding:.5rem .95rem; border-radius:999px; }
.tela-frame .tela-contacto-btn .wp-block-button__link:hover{ border-color:var(--tela-clay-ink); color:var(--tela-clay-ink); }
.tela-frame .tela-cart-link .wp-block-button__link{ background:var(--tela-ink); color:var(--tela-peel); padding:.5rem .8rem; border-radius:999px; display:inline-flex; align-items:center; justify-content:center; gap:.45rem; min-height:44px; }
.tela-frame .tela-cart-link .wp-block-button__link:hover{ background:var(--tela-clay-ink); color:var(--tela-peel); }
.tela-frame .tela-cart-icon{ display:inline-flex; line-height:0; color:var(--tela-peel); }
.tela-frame .tela-cart-count{ min-width:1rem; text-align:center; font-family:var(--tela-font-body); font-size:.72rem; font-weight:700; line-height:1; }
.tela-frame .tela-cart-link .screen-reader-text{ position:absolute !important; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.tela-frame .tela-cart-link.has-items .tela-cart-count{ color:#E8C3A2; }
.tela-frame .tela-cart-link.is-pop{ animation:tela-pop .4s ease; }
@keyframes tela-pop{ 0%{transform:scale(1);} 40%{transform:scale(1.28);} 100%{transform:scale(1);} }
.tela-frame .tela-nav-toggle{ display:none; }
.tela-frame .tela-nav-toggle .wp-block-button__link{ background:transparent; color:var(--tela-ink); border:1px solid var(--tela-brn);
	padding:.5rem .9rem; border-radius:999px; min-height:44px; display:inline-flex; align-items:center; }

/* ---------- Menú móvil (<=860px) ---------- */
@media (max-width:860px){
	.tela-frame .tela-header-inner{ gap:.55rem; }
	.tela-frame .tela-brand{ gap:.5rem; }
	.tela-frame .tela-logo{ font-size:1.4rem; }
	.tela-frame .tela-backlink a{ font-size:.62rem; padding:.3rem .55rem; }
	.tela-frame .tela-contacto-btn{ display:none; } /* Contacto se sirve dentro del menú */
	.tela-frame .tela-nav-toggle{ display:inline-block; }
	.tela-frame .tela-acciones{ align-items:center; }
	.tela-frame .tela-nav-toggle .wp-block-button__link,
	.tela-frame .tela-cart-link .wp-block-button__link{ height:44px; }
	.tela-frame .tela-nav-toggle .wp-block-button__link{ padding:0 .78rem; min-height:0; line-height:1; font-size:.62rem; letter-spacing:.05em; }
	.tela-frame .tela-nav{ position:absolute; top:100%; left:0; right:0; margin:0;
		display:none; flex-direction:column; align-items:stretch; gap:0;
		background:var(--tela-peel); border-bottom:1px solid var(--tela-line);
		padding:.6rem 0 1rem; box-shadow:0 18px 30px rgba(43,36,28,.12); }
	.tela-frame .tela-header.tela-nav-open .tela-nav{ display:flex; }
	.tela-frame .tela-nav .tela-navlink a{ display:block; padding:.8rem var(--tela-gut); font-size:.98rem; font-weight:600; }
	.tela-frame .tela-nav .tela-navcontact,
	.tela-frame .tela-nav .tela-navback{ display:block; border-top:1px solid var(--tela-line); margin-top:.5rem; }
	.tela-frame .tela-nav .tela-navcontact a,
	.tela-frame .tela-nav .tela-navback a{ display:block; padding:.85rem var(--tela-gut);
		font-family:var(--tela-font-body); font-size:.82rem; font-weight:700; letter-spacing:.1em;
		text-transform:uppercase; color:var(--tela-brn); text-decoration:none; }
	.tela-frame .tela-nav .tela-navback a{ color:var(--tela-clay-ink); }
	.tela-frame .tela-nav .tela-navcontact a:hover,
	.tela-frame .tela-nav .tela-navback a:hover{ color:var(--tela-ink); }
}

/* ---------- Footer ---------- */
.tela-frame .tela-footer{ background:var(--tela-ink); color:var(--tela-peel); margin-top:4rem; padding:3.5rem var(--tela-gut) 2.5rem; }
.tela-frame .tela-footer a{ color:var(--tela-peel); }
.tela-frame .tela-footer a:hover{ color:var(--tela-clay); }
.tela-frame .tela-footer-grid{ max-width:1180px; margin-inline:auto; display:flex; gap:2.5rem; flex-wrap:wrap; }
.tela-frame .tela-footer-brand{ max-width:24rem; }
.tela-frame .tela-footer-logo{ font-family:var(--tela-font-display); font-size:2.2rem; margin:0 0 .4rem; color:var(--tela-peel); }
.tela-frame .tela-footer-tag{ color:#CFC2AC; font-size:.98rem; }
.tela-frame .tela-footer-back{ margin:1rem 0 0; }
.tela-frame .tela-footer-back a{ display:inline-block; text-decoration:none; font-family:var(--tela-font-body);
	font-size:.78rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#EFE6D7; padding:.4rem 0; }
.tela-frame .tela-footer-back a:hover{ color:#E8C3A2; }
.tela-frame .tela-footer-col{ min-width:8rem; }
.tela-frame .tela-footer-title{ font-family:var(--tela-font-body); font-size:.72rem; font-weight:700;
	letter-spacing:.22em; text-transform:uppercase; color:var(--tela-soft); margin:0 0 1rem; }
.tela-frame .tela-footer-col p{ margin:.35rem 0; }
.tela-frame .tela-footer-col a{ text-decoration:none; color:#E8DFCE; }
.tela-frame .tela-footer-col a:hover{ color:var(--tela-clay); }
.tela-frame .tela-footer .wp-block-separator{ max-width:1180px; margin-inline:auto; border-color:rgba(255,255,255,.14); margin-block:2.2rem; }
.tela-frame .tela-footer-note{ max-width:1180px; margin:0 auto; font-size:.82rem; color:#BFB09A; line-height:1.55; }
.tela-frame .tela-footer-note strong{ color:#E8DFCE; }

/* ---------- Botones base ---------- */
.tela-frame .tela-btn{ font-family:var(--tela-font-body); display:inline-block; font-size:.82rem; font-weight:700;
	letter-spacing:.09em; text-transform:uppercase; text-decoration:none; line-height:1;
	padding:1rem 1.5rem; border-radius:2px; cursor:pointer; border:0; transition:background .2s,color .2s,border-color .2s; }
.tela-frame .tela-btn.tela-btn-solid{ background:var(--tela-ink); color:var(--tela-peel); }
.tela-frame .tela-btn.tela-btn-solid:hover{ background:var(--tela-clay); color:var(--tela-peel); }
.tela-frame .tela-btn.tela-btn-ghost{ background:transparent; color:var(--tela-ink); border:1px solid currentColor; }
.tela-frame .tela-btn.tela-btn-ghost:hover{ border-color:var(--tela-clay); color:var(--tela-clay); }
.tela-frame .tela-btn[disabled]{ opacity:.5; cursor:not-allowed; }
a.tela-btn{ color:var(--tela-peel); }
a.tela-btn.tela-btn-ghost{ color:var(--tela-ink); }

/* ---------- Espaciado de secciones ---------- */
.tela-frame .tela-sect{ padding:clamp(3.5rem,9vw,7rem) var(--tela-gut); }
.tela-frame .tela-shell-narrow{ max-width:820px; margin-inline:auto; }
.tela-frame .tela-sect-head{ max-width:1240px; margin:0 auto 2.4rem; display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; flex-wrap:wrap; }

/* ---------- Hero (inicio) ---------- */
.tela-frame .tela-home-hero{ max-width:100%; padding:0; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);
	gap:0; min-height:clamp(22rem,80vh,40rem); }
.tela-frame .tela-hero-copy{ display:flex; flex-direction:column; justify-content:center;
	padding:clamp(2.5rem,6vw,5rem) var(--tela-gut) clamp(2.5rem,6vw,5rem) calc(var(--tela-gut) + max(0px,calc((100vw - 1240px)/2))) ;
	max-width:56ch; }
.tela-frame .tela-hero-copy .tela-hero-display{ font-family:var(--tela-font-display); font-weight:400;
	font-size:clamp(2.9rem,6.6vw,5.2rem); line-height:.98; margin:0 0 1.4rem; letter-spacing:-.01em; }
.tela-frame .tela-hero-copy p.intro{ font-size:1.12rem; color:var(--tela-brn); max-width:42ch; margin:0 0 2rem; }
.tela-frame .tela-hero-media{ position:relative; min-height:22rem; }
.tela-frame .tela-hero-media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.tela-frame .tela-hero-cta{ display:flex; gap:1rem; flex-wrap:wrap; }

/* ---------- Filosofía ---------- */
.tela-frame .tela-philosophy{ background:var(--tela-bone); }
.tela-frame .tela-philosophy-inner{ max-width:1240px; margin-inline:auto; display:grid; gap:2.4rem;
	grid-template-columns:1fr 2fr; align-items:start; }
.tela-frame .tela-philosophy-copy h2{ font-size:clamp(1.9rem,3.6vw,2.7rem); margin:0 0 1.4rem; }
.tela-frame .tela-philosophy-copy p{ color:var(--tela-brn); font-size:1.08rem; max-width:60ch; }

/* ---------- Colecciones ---------- */
.tela-frame .tela-collection-grid{ max-width:1240px; margin-inline:auto; display:grid; gap:1.4rem;
	grid-template-columns:repeat(3,1fr); }
.tela-frame .tela-collection-card{ display:flex; flex-direction:column; text-decoration:none; color:var(--tela-ink); }
.tela-frame .tela-collection-thumb{ position:relative; aspect-ratio:3/4; overflow:hidden; background:var(--tela-sand); }
.tela-frame .tela-collection-thumb img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .7s ease; }
.tela-frame .tela-collection-card:hover .tela-collection-thumb img{ transform:scale(1.05); }
.tela-frame .tela-collection-card h3{ font-family:var(--tela-font-display); font-weight:400; font-size:1.7rem; margin:.9rem 0 .2rem; }
.tela-frame .tela-collection-card .tela-collection-meta{ font-family:var(--tela-font-body); font-size:.74rem; font-weight:700;
	letter-spacing:.18em; text-transform:uppercase; color:var(--tela-brn); }
.tela-frame .tela-collection-card p.desc{ color:var(--tela-brn); font-size:.95rem; margin:.4rem 0;
	list-style:none; }
.tela-frame .tela-collection-card .tela-ver{ font-size:.8rem; font-weight:700; letter-spacing:.06em; color:var(--tela-clay-ink); margin-top:.4rem; }
.tela-frame .tela-collection-card:hover .tela-ver{ text-decoration:underline; }

/* ---------- Tarjeta de producto ---------- */
.tela-frame .tela-product-grid{ max-width:1240px; margin-inline:auto; display:grid; gap:1.4rem 1.3rem;
	grid-template-columns:repeat(4,1fr); }
.tela-frame .tela-product-card{ display:flex; flex-direction:column; text-decoration:none; color:var(--tela-ink); }
.tela-frame .tela-product-grid > .tela-product-card,
.tela-frame .tela-catalog-grid > .tela-product-card{ margin-top:0; }
.tela-frame .tela-product-thumb{ position:relative; aspect-ratio:3/4; overflow:hidden; background:var(--tela-sand); }
.tela-frame .tela-product-thumb img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .7s ease; }
.tela-frame .tela-product-card:hover .tela-product-thumb img{ transform:scale(1.05); }
.tela-frame .tela-product-meta{ margin-top:.85rem; }
.tela-frame .tela-card-cat{ font-family:var(--tela-font-body); font-size:.68rem; font-weight:700;
	letter-spacing:.18em; text-transform:uppercase; color:var(--tela-brn); }
.tela-frame .tela-card-name{ font-family:var(--tela-font-display); font-weight:400; font-size:1.28rem; line-height:1.15; margin:.2rem 0 .15rem; }
.tela-frame .tela-card-price{ font-family:var(--tela-font-body); font-size:.95rem; font-weight:700; color:var(--tela-ink); }
.tela-frame .tela-card-price small{ font-weight:400; color:var(--tela-brn); }
.tela-frame .tela-badge{ position:absolute; top:.75rem; left:.75rem; background:var(--tela-peel); color:var(--tela-ink);
	font-family:var(--tela-font-body); font-size:.66rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
	padding:.35rem .6rem; border-radius:2px; }

/* ---------- Catálogo: cabecera, filtros, orden ---------- */
.tela-frame .tela-catalog-head{ max-width:1240px; margin:0 auto 2rem; }
.tela-frame .tela-catalog-title{ font-size:clamp(2.2rem,4.4vw,3.3rem); margin:.2rem 0 .4rem; }
.tela-frame .tela-toolbar{ margin:1.6rem 0; display:flex; flex-direction:column; gap:1.1rem; }
.tela-frame .tela-filter-group{ display:flex; align-items:center; gap:.6rem; flex-wrap:wrap; }
.tela-frame .tela-filter-label{ font-family:var(--tela-font-body); font-size:.72rem; font-weight:700;
	letter-spacing:.16em; text-transform:uppercase; color:var(--tela-brn); min-width:7.5rem; }
.tela-frame .tela-chip-row{ display:flex; flex-wrap:wrap; gap:.5rem; }
.tela-frame .tela-chip .wp-block-button__link{ background:#FBF7EE; color:var(--tela-ink); border:1px solid var(--tela-soft);
	font-family:var(--tela-font-body); font-size:.78rem; font-weight:500; padding:.45rem .8rem; border-radius:999px;
	text-transform:none; letter-spacing:.01em; cursor:pointer; text-decoration:none; }
.tela-frame .tela-chip .wp-block-button__link:hover{ border-color:var(--tela-clay); color:var(--tela-clay); }
.tela-frame .tela-chip.is-active .wp-block-button__link{ background:var(--tela-ink); border-color:var(--tela-ink); color:var(--tela-peel); }
.tela-frame .tela-sort .tela-chip .wp-block-button__link{ background:transparent; border-color:transparent; }
.tela-frame .tela-sort .tela-chip.is-active .wp-block-button__link{ background:transparent; color:var(--tela-clay); text-decoration:underline; text-underline-offset:4px; }
.tela-frame .tela-count{ font-family:var(--tela-font-body); font-size:.78rem; color:var(--tela-brn); }
.tela-frame .tela-catalog-grid{ padding-block:1.5rem 1rem; }

/* ---------- Estado vacío del catálogo ---------- */
.tela-frame .tela-catalog-empty{ display:none; max-width:1240px; margin:2.5rem auto; text-align:center;
	border:1px solid var(--tela-line); background:var(--tela-bone); padding:3rem 1.5rem; }
.tela-frame .tela-catalog-empty.is-shown{ display:block; }
.tela-frame .tela-catalog-empty h3{ font-family:var(--tela-font-display); font-size:1.7rem; font-weight:400; margin:0 0 .5rem; }
.tela-frame .tela-catalog-empty p{ color:var(--tela-brn); margin:0 0 1.4rem; }
.tela-frame .is-hidden{ display:none !important; }

/* ---------- Ficha de producto ---------- */
.tela-frame .tela-crumb{ font-family:var(--tela-font-body); font-size:.74rem; letter-spacing:.14em;
	text-transform:uppercase; color:var(--tela-brn); margin:0 0 1.2rem; }
.tela-frame .tela-crumb a{ text-decoration:none; color:var(--tela-brn); }
.tela-frame .tela-crumb a:hover{ color:var(--tela-clay); }
.tela-frame .tela-ficha{ max-width:1240px; margin:0 auto; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:clamp(2rem,5vw,3.6rem); }
.tela-frame .tela-ficha .tela-ficha-media{ }
.tela-frame .tela-ficha .tela-ficha-info{ }

/* ---------- Galería ---------- */
.tela-frame .tela-gallery{ position:relative; }
.tela-frame .tela-ficha .tela-ficha-media{ min-width:0; }
.tela-frame .tela-ficha .tela-ficha-media, .tela-frame .tela-ficha .tela-gallery{ width:100%; }
.tela-frame .tela-gallery .tela-gallery-stage{ position:relative; width:100%; aspect-ratio:4/5; overflow:hidden; background:var(--tela-sand); border-radius:var(--tela-red); }
.tela-frame .tela-gallery .tela-gallery-main{ position:absolute; inset:0; display:block; }
.tela-frame .tela-gallery .tela-gallery-main img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:opacity .3s; display:block; }
.tela-frame .tela-gallery .tela-gallery-thumbs{ display:flex; gap:.7rem; margin-top:.8rem; }
.tela-frame .tela-gallery .tela-gal-thumb{ flex:0 0 auto; width:74px; height:90px; object-fit:cover; cursor:pointer;
	opacity:.62; border:1px solid transparent; border-radius:6px; transition:opacity .2s,border-color .2s; }
.tela-frame .tela-gallery .tela-gal-thumb:hover{ opacity:1; }
.tela-frame .tela-gallery .tela-gal-thumb.is-active{ opacity:1; border-color:var(--tela-ink); }
.tela-frame .tela-gallery .tela-gal-arrow{ position:absolute; top:50%; transform:translateY(-50%); z-index:3;
	background:var(--tela-peel); color:var(--tela-ink); border:1px solid var(--tela-line); width:2.4rem; height:2.4rem;
	border-radius:50%; font-size:1rem; line-height:1; cursor:pointer; text-align:center; padding:0; }
.tela-frame .tela-gallery .tela-gal-arrow:hover{ background:var(--tela-ink); color:var(--tela-peel); }
.tela-frame .tela-gallery .tela-gal-arrow.tela-gal-prev{ left:.7rem; }
.tela-frame .tela-gallery .tela-gal-arrow.tela-gal-next{ right:.7rem; }

/* ---------- Información ---------- */
.tela-frame .tela-ficha-cat{ font-family:var(--tela-font-body); font-size:.72rem; font-weight:700; letter-spacing:.18em;
	text-transform:uppercase; color:var(--tela-clay-ink); margin:0 0 .6rem; }
.tela-frame .tela-ficha-name{ font-size:clamp(2rem,3.4vw,2.7rem); margin:0 0 .6rem; }
.tela-frame .tela-ficha-price{ font-family:var(--tela-font-body); font-size:1.35rem; font-weight:700; margin:0 0 1.4rem; }
.tela-frame .tela-ficha-price small{ font-size:.85rem; font-weight:400; color:var(--tela-brn); }
.tela-frame .tela-ficha-desc{ color:var(--tela-brn); margin:0 0 1.8rem; }

/* ---------- Selector de variante ---------- */
.tela-frame .tela-field-label{ font-family:var(--tela-font-body); font-size:.72rem; font-weight:700; letter-spacing:.16em;
	text-transform:uppercase; color:var(--tela-brn); margin:0 0 .6rem; display:flex; justify-content:space-between; }
.tela-frame .tela-field-label .tela-required{ color:var(--tela-clay-ink); font-weight:400; letter-spacing:0; text-transform:none; }
.tela-frame .tela-variant-row{ display:grid; grid-template-columns:repeat(auto-fit,minmax(3.6rem,1fr)); gap:.6rem; }
.tela-frame .tela-variant .wp-block-button__link{ background:#FBF7EE; color:var(--tela-ink); border:1px solid var(--tela-soft);
	font-family:var(--tela-font-body); font-size:.84rem; font-weight:600; padding:.72rem .6rem; border-radius:8px;
	cursor:pointer; text-decoration:none; text-align:center; width:100%; min-width:0;
	transition:border-color .18s ease,background .18s ease,color .18s ease; }
.tela-frame .tela-variant .wp-block-button__link:hover{ border-color:var(--tela-clay); }
.tela-frame .tela-variant .wp-block-button__link:focus-visible{ outline:2px solid var(--tela-clay); outline-offset:2px; }
.tela-frame .tela-variant.is-active .wp-block-button__link{ background:var(--tela-ink); border-color:var(--tela-ink); color:var(--tela-peel); }
.tela-frame .tela-variant.is-disabled .wp-block-button__link{ opacity:.35; cursor:not-allowed; }

/* ---------- Cantidad + añadir ---------- */
.tela-frame .tela-buyrow{ display:flex; flex-direction:column; align-items:stretch; gap:.85rem; margin-top:1.5rem; }
.tela-frame .tela-qty{ display:flex; align-items:center; align-self:flex-start; border:1px solid var(--tela-line); border-radius:8px; background:#FBF7EE; overflow:hidden; }
.tela-frame .tela-qty .tela-qty-btn,.tela-frame .tela-qty .wp-block-button__link{ background:transparent; border:0; color:var(--tela-ink); width:2.7rem; height:3rem;
	font-size:1.1rem; cursor:pointer; font-family:var(--tela-font-body); padding:0; text-decoration:none; border-radius:0; }
.tela-frame .tela-qty .tela-qty-btn:hover,.tela-frame .tela-qty .wp-block-button__link:hover{ background:var(--tela-bone); }
.tela-frame .tela-qty .tela-qty-num{ width:3rem; text-align:center; font-weight:700; margin:0; font-family:var(--tela-font-body); }
.tela-frame .tela-add .wp-block-button__link{ background:var(--tela-ink); color:var(--tela-peel); border-radius:8px;
	font-family:var(--tela-font-body); font-size:.86rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
	padding:1.05rem 1.6rem; cursor:pointer; text-decoration:none; display:block; width:100%; text-align:center; transition:background .18s ease; }
.tela-frame .tela-add .wp-block-button__link:hover{ background:var(--tela-clay); }
.tela-frame .tela-msg{ display:none; margin-top:1rem; font-size:.85rem; }
.tela-frame .tela-msg.is-shown{ display:block; }
.tela-frame .tela-msg-ok{ color:var(--tela-brn); }
.tela-frame .tela-msg-err{ color:#A33; }

/* ---------- Datos & especificaciones ---------- */
.tela-frame .tela-ficha-tabs{ margin-top:2.6rem; }
.tela-frame .tela-ficha-tab{ font-family:var(--tela-font-body); font-size:.78rem; font-weight:700; letter-spacing:.14em;
	text-transform:uppercase; color:var(--tela-brn); border:0; background:transparent; padding:.5rem 0; margin-right:1.4rem;
	cursor:pointer; border-bottom:2px solid transparent; }
.tela-frame .tela-ficha-tab.is-active{ color:var(--tela-ink); border-bottom-color:var(--tela-ink); }
.tela-frame .tela-ficha-tab:hover{ color:var(--tela-clay); }
.tela-frame .tela-ficha-panel{ display:none; padding:1.6rem 0; color:var(--tela-brn); border-top:1px solid var(--tela-line); }
.tela-frame .tela-ficha-panel.is-active{ display:block; }
.tela-frame .tela-specs{ display:block; border:1px solid var(--tela-line); border-radius:10px; overflow:hidden; background:var(--tela-bone); }
.tela-frame .tela-specs .tela-spec{ display:flex; justify-content:space-between; align-items:baseline; gap:1rem; padding:.85rem 1.15rem; }
.tela-frame .tela-specs .tela-spec + .tela-spec{ border-top:1px solid var(--tela-line); margin-top:0; }
.tela-frame .tela-spec p{ margin:0; }
.tela-frame .tela-spec .tela-spec-k{ font-family:var(--tela-font-body); font-size:.68rem; font-weight:700; letter-spacing:.14em;
	text-transform:uppercase; color:var(--tela-brn); }
.tela-frame .tela-spec .tela-spec-v{ font-size:.98rem; text-align:right; }
.tela-frame .tela-ficha-panel ul{ padding-left:1.1rem; }
.tela-frame .tela-ficha-panel li{ margin:.45rem 0; }

/* ---------- Datos & cuidados (columna inferior) ---------- */
.tela-frame .tela-ficha-extra{ padding-top:2.8rem; }
.tela-frame .tela-ficha-extra .tela-kicker{ margin:2.4rem 0 1.1rem; }
.tela-frame .tela-ficha-extra > .tela-kicker:first-child{ margin-top:0; }
.tela-frame .tela-ficha-extra ul{ list-style:none; margin:0; padding:0; }
.tela-frame .tela-ficha-extra ul li{ margin:0; padding:.55rem 0 .55rem 1.5rem; position:relative; color:var(--tela-brn); }
.tela-frame .tela-ficha-extra ul li::before{ content:""; position:absolute; left:.15rem; top:1.05rem; width:.7rem; height:1px; background:var(--tela-clay); }
.tela-frame .tela-ficha-extra .tela-demo-note{ font-size:.8rem; color:var(--tela-brn); opacity:.8; margin-top:1.9rem; }

/* ---------- Relacionados ---------- */
.tela-frame .tela-related{ margin-top:4rem; }
.tela-frame .tela-related .tela-sect-head{ margin-bottom:1.6rem; }
.tela-frame .tela-related .tela-product-grid{ grid-template-columns:repeat(3,1fr); }

/* ---------- Página Colecciones ---------- */
.tela-frame .tela-collpage{ max-width:1240px; margin-inline:auto; display:flex; flex-direction:column; gap:3.4rem; }
.tela-frame .tela-coll-block{ display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(2rem,5vw,4rem);
	align-items:center; padding-bottom:3.4rem; border-bottom:1px solid var(--tela-line); }
.tela-frame .tela-coll-block:last-child{ border-bottom:0; padding-bottom:0; }
.tela-frame .tela-coll-block:nth-child(even){ direction:rtl; }
.tela-frame .tela-coll-block > *{ direction:ltr; }
.tela-frame .tela-coll-image{ position:relative; aspect-ratio:4/3; overflow:hidden; border-radius:var(--tela-red); }
.tela-frame .tela-coll-image img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.tela-frame .tela-coll-copy h2{ font-size:clamp(1.9rem,3.4vw,2.6rem); margin:0 0 .8rem; }
.tela-frame .tela-coll-copy .tela-coll-intro{ color:var(--tela-brn); max-width:46ch; }
.tela-frame .tela-coll-mini{ display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:1.6rem; }
.tela-frame .tela-coll-mini-item{ text-decoration:none; color:var(--tela-ink); }
.tela-frame .tela-coll-mini-thumb{ position:relative; aspect-ratio:3/4; overflow:hidden; border-radius:6px; background:var(--tela-sand); }
.tela-frame .tela-coll-mini-thumb img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.tela-frame .tela-coll-mini-item .tela-card-name{ font-size:1rem; margin-top:.5rem; }
.tela-frame .tela-coll-mini-item .tela-card-price{ font-size:.85rem; }

/* ---------- Materiales ---------- */
.tela-frame .tela-fibers{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-top:2rem; }
.tela-frame .tela-fiber{ position:relative; aspect-ratio:1/1; overflow:hidden; border-radius:var(--tela-red); }
.tela-frame .tela-fiber img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.tela-frame .tela-fiber figcaption{ position:absolute; left:0; right:0; bottom:0; padding:2rem 1rem .9rem;
	background:linear-gradient(transparent,rgba(43,36,28,.72)); color:var(--tela-peel); font-size:.9rem; }
.tela-frame .tela-process{ display:grid; grid-template-columns:1fr 1fr; gap:2.2rem; align-items:start; margin-top:2.6rem; }
.tela-frame .tela-process-ol{ counter-reset:step; list-style:none; padding:0; margin:0; }
.tela-frame .tela-process-ol li{ counter-increment:step; border-top:1px solid var(--tela-line); padding:1.1rem 0;
	display:grid; grid-template-columns:2.4rem 1fr; gap:1rem; }
.tela-frame .tela-process-ol li::before{ content:"0" counter(step); font-family:var(--tela-font-display); color:var(--tela-clay); font-size:1.1rem; }
.tela-frame .tela-process-ol li strong{ font-family:var(--tela-font-display); font-weight:400; font-size:1.2rem; }
.tela-frame .tela-process-ol li p{ margin:.25rem 0 0; color:var(--tela-brn); font-size:.94rem; }
.tela-frame .tela-care-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; margin-top:2rem; }
.tela-frame .tela-care-tile{ border:1px solid var(--tela-line); border-radius:var(--tela-red); padding:1.3rem 1.2rem; background:var(--tela-bone); }
.tela-frame .tela-care-tile h4{ font-family:var(--tela-font-display); font-weight:400; margin:0 0 .4rem; font-size:1.1rem; }
.tela-frame .tela-care-tile p{ margin:0; color:var(--tela-brn); font-size:.9rem; }

/* ---------- Nosotros ---------- */
.tela-frame .tela-about-grid{ max-width:1240px; margin-inline:auto; display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
	gap:clamp(2rem,5vw,4rem); align-items:center; }
.tela-frame .tela-about-image{ position:relative; aspect-ratio:4/5; overflow:hidden; border-radius:var(--tela-red); }
.tela-frame .tela-about-image img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.tela-frame .tela-principles{ max-width:100%; display:grid; gap:1px; background:var(--tela-line); border-top:0; margin-top:3rem; }
.tela-frame .tela-principle{ background:var(--tela-bone); padding:1.8rem 1.6rem; }
.tela-frame .tela-principle h3{ font-family:var(--tela-font-display); font-weight:400; font-size:1.4rem; margin:0 0 .5rem; }
.tela-frame .tela-principle p{ margin:0; color:var(--tela-brn); }

/* ---------- Editorial & CTA ---------- */
.tela-frame .tela-editorial-band{ position:relative; }
.tela-frame .tela-editorial-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.tela-frame .tela-cta-band{ background:var(--tela-clay); color:var(--tela-peel); text-align:center; padding:clamp(3rem,8vw,6rem) var(--tela-gut); }
.tela-frame .tela-cta-band h2{ color:var(--tela-peel); font-size:clamp(1.9rem,4vw,3rem); margin:0 0 1.2rem; }
.tela-frame .tela-cta-band p{ color:rgba(255,255,255,.85); max-width:44ch; margin:0 auto 1.8rem; }

/* ---------- Nota demo ---------- */
.tela-frame .tela-demo-note{ max-width:1240px; margin:0 auto 2rem; border:1px solid var(--tela-soft); background:var(--tela-bone);
	padding:1rem 1.2rem; font-size:.85rem; color:var(--tela-brn); border-left:3px solid var(--tela-clay); }
.tela-frame .tela-demo-note strong{ color:var(--tela-ink); }
.tela-frame .tela-demo-note{ display:flex; align-items:center; gap:.6rem; }
.tela-frame .tela-demo-note:before{ content:'i'; font-family:var(--tela-font-display); background:var(--tela-clay); color:#fff;
	width:1.4rem; height:1.4rem; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font-size:.85rem; flex:0 0 auto; }

/* ---------- Contacto (Jetpack Forms) ---------- */
.tela-frame .tela-contact-shell{ max-width:1120px; margin-inline:auto; display:grid; grid-template-columns:1fr 1.15fr; gap:clamp(2rem,5vw,4rem); align-items:start; }
.tela-frame .tela-contact-side h2{ font-size:clamp(1.9rem,3.6vw,2.7rem); margin:.4rem 0 1rem; }
.tela-frame .tela-contact-side p{ color:var(--tela-brn); }
.tela-frame .tela-contact-form{ background:var(--tela-bone); border:1px solid var(--tela-line); border-radius:var(--tela-red); padding:clamp(1.6rem,4vw,2.6rem); }
.tela-frame .wp-block-jetpack-contact-form{ font-family:var(--tela-font-body); }
.tela-frame .wp-block-jetpack-contact-form label{ font-family:var(--tela-font-body); font-size:.74rem; font-weight:700;
	letter-spacing:.12em; text-transform:uppercase; color:var(--tela-brn); margin-bottom:.4rem; }
.tela-frame .wp-block-jetpack-contact-form input[type=text],
.tela-frame .wp-block-jetpack-contact-form input[type=email],
.tela-frame .wp-block-jetpack-contact-form input[type=tel],
.tela-frame .wp-block-jetpack-contact-form textarea{ width:100%; box-sizing:border-box; border:1px solid var(--tela-soft);
	background:#FBF7EE; color:var(--tela-ink); border-radius:6px; padding:.8rem .9rem; font-family:var(--tela-font-body); font-size:.96rem; }
.tela-frame .wp-block-jetpack-contact-form input:focus,.wp-jetpack-contact-form textarea:focus{ outline:2px solid var(--tela-clay); outline-offset:1px; }
.tela-frame .wp-block-jetpack-contact-form .wp-block-jetpack-button .wp-block-button__link{ background:var(--tela-ink); color:var(--tela-peel);
	border-radius:6px; padding:1rem 1.7rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.tela-frame .wp-block-jetpack-contact-form .wp-block-jetpack-button .wp-block-button__link:hover{ background:var(--tela-clay); }
.tela-frame .tela-contact-note{ margin-top:2.4rem; }

/* ---------- Carrito ---------- */
.tela-frame .tela-cart-shell{ max-width:1060px; margin-inline:auto; }
.tela-frame .tela-cart-title{ font-size:clamp(2rem,4vw,2.9rem); margin:.2rem 0 1.6rem; }
.tela-frame .tela-cart-table{ width:100%; border-collapse:collapse; }
.tela-frame .tela-cart-head{ border-bottom:1px solid var(--tela-line); }
.tela-frame .tela-cart-head th{ font-family:var(--tela-font-body); font-size:.68rem; font-weight:700; letter-spacing:.16em;
	text-transform:uppercase; color:var(--tela-brn); text-align:left; padding:.6rem .6rem .9rem; }
.tela-frame .tela-cart-row{ border-bottom:1px solid var(--tela-line); }
.tela-frame .tela-cart-row td{ padding:.9rem .6rem; vertical-align:middle; }
.tela-frame .tela-cart-item{ display:flex; gap:.9rem; align-items:center; }
.tela-frame .tela-cart-thumb{ width:64px; height:80px; object-fit:cover; border-radius:6px; flex:0 0 auto; }
.tela-frame .tela-cart-name{ font-family:var(--tela-font-display); font-weight:400; font-size:1.05rem; margin:0 0 .15rem; }
.tela-frame .tela-cart-variant{ font-size:.8rem; color:var(--tela-brn); margin:0; }
.tela-frame .tela-cart-item a{ text-decoration:none; }
.tela-frame .tela-cart-qty{ display:flex; align-items:center; gap:0; border:1px solid var(--tela-soft); border-radius:6px; width:max-content; }
.tela-frame .tela-cart-qty button{ background:#FBF7EE; border:0; width:2rem; height:2.2rem; font-size:.95rem; cursor:pointer; color:var(--tela-ink); }
.tela-frame .tela-cart-qty button:hover{ background:var(--tela-bone); }
.tela-frame .tela-cart-qty .tela-cart-qnum{ width:2rem; text-align:center; font-weight:700; font-size:.9rem; margin:0; }
.tela-frame .tela-cart-price{ font-weight:700; font-size:.95rem; white-space:nowrap; }
.tela-frame .tela-cart-remove{ background:transparent; border:0; color:var(--tela-brn); cursor:pointer; font-size:.9rem; text-decoration:underline; }
.tela-frame .tela-cart-remove:hover{ color:#A33; }
.tela-frame .tela-cart-foot{ display:flex; justify-content:space-between; align-items:center; margin-top:1.6rem; gap:1rem; flex-wrap:wrap; }
.tela-frame .tela-cart-total{ font-size:1.4rem; font-weight:700; font-family:var(--tela-font-body); }
.tela-frame .tela-cart-total small{ font-size:.85rem; font-weight:400; color:var(--tela-brn); }
.tela-frame .tela-cart-actions{ display:flex; gap:1rem; flex-wrap:wrap; }
.tela-frame .tela-cart-empty{ text-align:center; border:1px dashed var(--tela-soft); padding:3.5rem 1.5rem; background:var(--tela-bone); }
.tela-frame .tela-cart-empty h3{ font-family:var(--tela-font-display); font-weight:400; font-size:1.6rem; margin:0 0 .5rem; }
.tela-frame .tela-cart-empty p{ color:var(--tela-brn); margin:0 0 1.4rem; }

/* ---------- Compra (checkout simulado) ---------- */
.tela-frame .tela-checkout-grid{ max-width:1120px; margin-inline:auto; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:clamp(2rem,5vw,3.5rem); align-items:start; }
.tela-frame .tela-checkout-title{ font-size:clamp(2rem,4vw,2.9rem); margin:.2rem 0 1.4rem; }
.tela-frame .tela-checkout-form{ display:flex; flex-direction:column; gap:1.2rem; }
.tela-frame .tela-row2{ display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; }
.tela-frame .tela-field{ display:flex; flex-direction:column; gap:.35rem; }
.tela-frame .tela-field label{ font-family:var(--tela-font-body); font-size:.74rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--tela-brn); }
.tela-frame .tela-field label .tela-req{ color:var(--tela-clay); }
.tela-frame .tela-field input:focus-visible,.tela-frame .tela-field select:focus-visible,.tela-frame .tela-field textarea:focus-visible{ outline:3px solid var(--tela-clay); outline-offset:2px; box-shadow:0 0 0 1px var(--tela-clay) inset; }
.tela-frame .tela-field input,.tela-frame .tela-field select,.tela-frame .tela-field textarea{ border:1px solid var(--tela-soft); background:#FBF7EE;
	color:var(--tela-ink); border-radius:6px; padding:.85rem .95rem; font-family:var(--tela-font-body); font-size:.96rem; width:100%; box-sizing:border-box; }
.tela-frame .tela-field .tela-errmsg{ display:none; font-size:.8rem; color:#A33; }
.tela-frame .tela-field.err input,.tela-frame .tela-field.err select,.tela-frame .tela-field.err textarea{ border-color:#C06666; }
.tela-frame .tela-field.err .tela-errmsg{ display:block; }
.tela-frame .tela-cart-summary{ background:var(--tela-bone); border:1px solid var(--tela-line); border-radius:var(--tela-red); padding:clamp(1.4rem,3vw,2rem); }
.tela-frame .tela-cart-summary h3{ font-family:var(--tela-font-display); font-weight:400; font-size:1.4rem; margin:0 0 1rem; }
.tela-frame .tela-orderline{ display:flex; justify-content:space-between; gap:1rem; padding:.4rem 0; font-size:.92rem; border-bottom:1px dashed var(--tela-soft); }
.tela-frame .tela-orderline .l{ color:var(--tela-brn); }
.tela-frame .tela-orderline .r{ font-weight:500; }
.tela-frame .tela-total-line{ display:flex; justify-content:space-between; padding:1rem 0 0; margin-top:.4rem; font-weight:700; font-size:1.15rem; border-top:1px solid var(--tela-ink); }
.tela-frame .tela-sim-note{ margin-top:1.4rem; font-size:.8rem; color:var(--tela-brn); border-left:3px solid var(--tela-clay); padding-left:.8rem; }
.tela-frame .tela-btn-block{ width:100%; text-align:center; }
.tela-frame .tela-final{ display:none; max-width:1120px; margin-inline:auto; }
.tela-frame .tela-final.is-shown{ display:block; }
.tela-frame .tela-final-card{ background:var(--tela-bone); border:1px solid var(--tela-line); border-radius:var(--tela-red);
	padding:clamp(2rem,5vw,3.4rem); text-align:center; }
.tela-frame .tela-final-card .tela-tick{ margin:0 auto; font-family:var(--tela-font-display); color:var(--tela-clay); font-size:3rem; }
.tela-frame .tela-final-card h2{ margin:.4rem 0 1rem; }
.tela-frame .tela-final-lines{ max-width:40rem; margin:1.4rem auto 0; text-align:left; }
.tela-frame .tela-final-line{ display:flex; justify-content:space-between; padding:.5rem 0; border-bottom:1px dashed var(--tela-soft); font-size:.95rem; }
.tela-frame .tela-final-note{ margin-top:1.6rem; font-size:.84rem; color:var(--tela-brn); }

/* ---------- Responsive ---------- */
.tela-frame body{ overflow-x:hidden; }

@media (max-width:1160px){
	.tela-frame .tela-product-grid{ grid-template-columns:repeat(3,1fr); }
}

@media (max-width:980px){
	.tela-frame .tela-home-hero{ grid-template-columns:1fr; }
	.tela-frame .tela-hero-copy{ padding-inline:var(--tela-gut); order:2; max-width:none; padding-top:clamp(2rem,6vw,3.5rem); }
	.tela-frame .tela-hero-media{ order:1; aspect-ratio:4/3; min-height:0; }
	.tela-frame .tela-philosophy-inner{ grid-template-columns:1fr; }
	.tela-frame .tela-ficha{ grid-template-columns:1fr; }
	.tela-frame .tela-checkout-grid{ grid-template-columns:1fr; }
	.tela-frame .tela-contact-shell{ grid-template-columns:1fr; }
	.tela-frame .tela-about-grid{ grid-template-columns:1fr; }
	.tela-frame .tela-process{ grid-template-columns:1fr; }
}

@media (max-width:820px){
	.tela-frame .tela-collection-grid{ grid-template-columns:repeat(2,1fr); }
	.tela-frame .tela-coll-block{ grid-template-columns:1fr; }
	.tela-frame .tela-coll-block:nth-child(even){ direction:ltr; }
	.tela-frame .tela-coll-mini{ grid-template-columns:repeat(3,1fr); }
	.tela-frame .tela-fibers{ grid-template-columns:repeat(2,1fr); }
	.tela-frame .tela-care-grid{ grid-template-columns:repeat(2,1fr); }
}

@media (max-width:640px){
	.tela-frame .tela-product-grid{ grid-template-columns:repeat(2,1fr); gap:1rem; }
	.tela-frame .tela-product-grid .tela-card-name{ font-size:1.05rem; }
	.tela-frame .tela-collection-grid{ grid-template-columns:1fr; }
	.tela-frame .tela-fibers{ grid-template-columns:1fr; }
	.tela-frame .tela-care-grid{ grid-template-columns:1fr; }
	.tela-frame .tela-coll-mini{ grid-template-columns:repeat(2,1fr); }
	.tela-frame .tela-specs{ grid-template-columns:1fr; }
	.tela-frame .tela-row2{ grid-template-columns:1fr; }
	.tela-frame .tela-cart-table{ display:block; }
	.tela-frame .tela-cart-table .tela-cart-head{ display:none; }
	.tela-frame .tela-cart-row{ display:grid; grid-template-columns:1fr; gap:.6rem; padding:1rem 0; }
	.tela-frame .tela-cart-row td{ padding:.2rem .6rem; }
	.tela-frame .tela-cart-thumb{ width:52px; height:64px; }
	.tela-frame .tela-gallery .tela-gal-arrow{ display:none; }
	.tela-frame .tela-filter-label{ min-width:0; width:100%; }
}

/* === TELA: estilos de apoyo (páginas editoriales, checkout dinámico, colecciones) === */
.tela-frame .tela-page-fill{ max-width:62rem; margin-inline:auto; padding-block:3.5rem 5rem; }
.tela-frame .tela-page-fill > .wp-block-group{ padding:0; }
.tela-frame .tela-page-title{ font-family:var(--tela-display); font-size:clamp(2.2rem,4.4vw,3.2rem); line-height:1.05; color:var(--tela-ink); margin:0 0 .3rem; }
.tela-frame .tela-page-title a{ color:inherit; }
.tela-frame .tela-img{ border-radius:14px; overflow:hidden; }
.tela-frame .tela-img img{ width:100%; height:auto; display:block; border-radius:14px; }
.tela-frame .tela-page-fill h2{ font-family:var(--tela-display); font-size:1.7rem; color:var(--tela-ink); margin:2rem 0 .6rem; }
.tela-frame .tela-page-fill h3{ font-family:var(--tela-display); font-size:1.15rem; color:var(--tela-clay); margin:1.5rem 0 .3rem; }
.tela-frame .tela-page-fill > p, .tela-frame .tela-page-fill li{ font-size:1.02rem; }
.tela-frame .tela-page-fill ul{ padding-left:1.2rem; margin:1rem 0; }
.tela-frame .tela-page-fill .wp-block-button__link{ background:var(--tela-clay); border-color:var(--tela-clay); color:var(--tela-peel);
	font-family:var(--tela-font-body); font-size:.8rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; text-decoration:none; }
.tela-frame .tela-page-fill .wp-block-button__link:hover{ background:var(--tela-clay-dark, #9c5c3a); border-color:var(--tela-clay-dark, #9c5c3a); }
.tela-frame .tela-quote{ background:var(--tela-sand-2); border-left:3px solid var(--tela-clay); padding:1.2rem 1.4rem; border-radius:0 12px 12px 0; margin:2rem 0; }
.tela-frame .tela-quote p{ font-family:var(--tela-display); font-size:1.3rem; color:var(--tela-ink); margin:0; line-height:1.35; }

/* colecciones índice */
.tela-frame .tela-colls-grid{ display:grid; gap:1.5rem; margin-top:2rem; }
@media(min-width:720px){ .tela-frame .tela-colls-grid{ grid-template-columns:repeat(3,1fr);} }
.tela-frame .tela-coll-card{ background:var(--tela-bone); border:1px solid var(--tela-sand-2); border-radius:14px; overflow:hidden; display:flex; flex-direction:column; }
.tela-frame .tela-coll-card .tela-img{ margin:0; border-radius:0; }
.tela-frame .tela-coll-card .tela-img img{ border-radius:0; }
.tela-frame .tela-coll-card h2{ margin:1.1rem 1.2rem .4rem; font-size:1.35rem; }
.tela-frame .tela-coll-card p{ margin:0 1.2rem 1.3rem; font-size:.98rem; }

/* hero home */
.tela-frame .tela-hero-cover{ min-height:min(78vh,44rem); align-items:center; }
.tela-frame .tela-hero-text{ max-width:40rem; color:var(--tela-bone); }
.tela-frame .tela-hero-text .tela-kicker{ color:var(--tela-sand); }
.tela-frame .tela-hero-title{ font-family:var(--tela-display); font-size:clamp(2.1rem,5vw,3.4rem); line-height:1.04; color:var(--tela-bone); margin:.4rem 0 1rem; }
.tela-frame .tela-hero-sub{ font-size:1.1rem; color:var(--tela-bone-soft, #efe6da); max-width:32rem; }
.tela-frame .tela-btn .wp-block-button__link{ background:var(--tela-clay); border-color:var(--tela-clay); color:var(--tela-bone); }
.tela-frame .tela-btn .wp-block-button__link:hover{ background:var(--tela-clay-dark, #9c5c3a); }

/* checkout dinámico */
.tela-frame .tela-checkout-mount{ margin-top:1.5rem; }
.tela-frame .tela-checkout-layout{ display:grid; gap:1.5rem; }
@media(min-width:820px){ .tela-frame .tela-checkout-layout{ grid-template-columns:1.4fr 1fr; } }
.tela-frame .tela-checkout-form{ background:var(--tela-bone); border:1px solid var(--tela-sand-2); border-radius:14px; padding:1.4rem; }
.tela-frame .tela-checkout-form h3{ margin-top:0; }
.tela-frame .tela-cart-summary{ background:var(--tela-bone); border:1px solid var(--tela-sand-2); border-radius:14px; padding:1.4rem; align-self:start; }
.tela-frame .tela-total-line{ display:flex; justify-content:space-between; font-weight:600; border-top:1px solid var(--tela-sand-2); margin-top:.6rem; padding-top:.6rem; }
.tela-frame .tela-checkout-actions{ display:flex; flex-wrap:wrap; gap:.8rem; margin-top:1.4rem; }
.tela-frame .tela-btn-checkout .wp-block-button__link,
.tela-frame .tela-btn-checkout{ background:var(--tela-clay); border-color:var(--tela-clay); color:var(--tela-bone); }
.tela-frame .tela-checkout-msg{ color:var(--tela-clay); font-weight:600; margin:1rem 0 0; }
.tela-frame .tela-checkout-msg:empty{ display:none; }

/* Jetpack form */
.tela-frame .tela-cform .wp-block-jetpack-contact-form{ gap:.9rem; }
.tela-frame .tela-cform .jetpack-contact-form label{ font-weight:600; color:var(--tela-ink); margin-bottom:.25rem; }
.tela-frame .tela-cform input[type=text], .tela-frame .tela-cform input[type=email], .tela-frame .tela-cform textarea{
	background:var(--tela-bone); border:1px solid var(--tela-sand-2); border-radius:9px; padding:.7rem .8rem; color:var(--tela-ink); width:100%; }
.tela-frame .tela-cform .wp-block-button__link, .tela-frame .tela-cform button[type=submit]{ background:var(--tela-clay); color:var(--tela-bone); }

/* final card (compra) */
.tela-frame .tela-final{ display:none; background:var(--tela-bone); border:1px solid var(--tela-sand-2); border-radius:14px; padding:2rem; margin-top:1.5rem; }
.tela-frame .tela-final.is-shown{ display:block; }
.tela-frame .tela-final h2{ margin-top:0; }
.tela-frame .tela-final-total{ font-family:var(--tela-display); font-size:1.7rem; color:var(--tela-clay); font-weight:700; }
.tela-frame .tela-final-line{ display:flex; justify-content:space-between; padding:.3rem 0; }

/* === Corrección de tokens (el bloque anterior usó nombres de var equivocados) === */
.tela-frame .tela-page-title{ font-family:var(--tela-font-display); }
.tela-frame .tela-page-fill h2, .tela-frame .tela-page-fill h3,
.tela-frame .tela-quote p, .tela-frame .tela-coll-card h2,
.tela-frame .tela-final-total{ font-family:var(--tela-font-display); }
.tela-frame .tela-hero-title{ font-family:var(--tela-font-display); }

/* ---- Rejilla del catálogo (tienda): tarjetas en columnas ---- */
.tela-frame .tela-catalog-grid{ display:grid; gap:1.4rem 1.3rem; grid-template-columns:repeat(2,1fr); }
@media(min-width:720px){ .tela-frame .tela-catalog-grid{ grid-template-columns:repeat(3,1fr); } }
@media(min-width:1080px){ .tela-frame .tela-catalog-grid{ grid-template-columns:repeat(4,1fr); } }
.tela-frame .tela-product-card .tela-product-thumb{ aspect-ratio:3/4; }

/* ---- Fondo/bordes neutros usados en páginas editoriales ---- */
.tela-frame .tela-coll-card{ border-color:var(--tela-soft); }
.tela-frame .tela-quote{ background:var(--tela-soft); border-left-color:var(--tela-clay); }
.tela-frame .tela-checkout-form{ border-color:var(--tela-soft); }
.tela-frame .tela-cart-summary{ border-color:var(--tela-soft); }
.tela-frame .tela-final{ border-color:var(--tela-soft); }
.tela-frame .tela-cform input, .tela-frame .tela-cform textarea{ border-color:var(--tela-soft); }
.tela-frame .tela-hero-sub{ color:var(--tela-soft); }
.tela-frame .tela-btn .wp-block-button__link:hover{ background:var(--tela-clay-dark, #9c5c3a); }
.tela-frame .tela-btn-checkout .wp-block-button__link:hover{ background:var(--tela-clay-dark, #9c5c3a); }

/* ---- Secciones de la home ---- */
.tela-frame .tela-sect{ max-width:1240px; margin-inline:auto; padding-inline:var(--tela-gut); }
.tela-frame .tela-home-philo, .tela-frame .tela-home-colls, .tela-frame .tela-home-mat, .tela-frame .tela-home-cta{ padding-block:3rem; }
.tela-frame .tela-home-h2{ font-family:var(--tela-font-display); font-size:clamp(1.7rem,3.2vw,2.3rem); line-height:1.08; color:var(--tela-ink); margin:.2rem 0 1rem; }
.tela-frame .tela-home-philo, .tela-frame .tela-home-cta{ max-width:46rem; text-align:center; }
.tela-frame .tela-home-philo .wp-block-buttons, .tela-frame .tela-home-cta .wp-block-buttons{ justify-content:center; }
.tela-frame .tela-home-mat .tela-img{ margin-bottom:1.4rem; }
.tela-frame .tela-card-title a{ color:inherit; text-decoration:none; }
.tela-frame .tela-card-title a:hover{ color:var(--tela-clay); }

/* ---- Pantallas de carga ----
   Cargador inicial a pantalla completa (JS lo inserta y lo retira al cargar
   o tras un tope, y se respeta prefers-reduced-motion) + shimmer de imágenes. */
.tela-loader{ position:fixed; inset:0; z-index:2000;
	background:rgba(244,239,230,.55); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
	display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1.1rem;
	transition:opacity .5s ease, visibility .5s; }
.tela-loader[hidden]{ display:none; }
.tela-loader.is-leaving{ opacity:0; visibility:hidden; pointer-events:none; }
.tela-loader .tela-loader-mark{ font-family:var(--tela-font-display); font-size:2.1rem; letter-spacing:.05em; color:var(--tela-ink); }
.tela-loader .tela-loader-spinner{ width:26px; height:26px; border-radius:50%;
	border:2px solid rgba(91,74,57,.35); border-top-color:var(--tela-clay); animation:tela-spin .8s linear infinite; }
.tela-loader .tela-loader-msg{ font-family:var(--tela-font-display); font-size:1rem; color:var(--tela-clay-ink);
	text-align:center; max-width:20rem; opacity:.9; line-height:1.35; min-height:1.35em; }
@keyframes tela-spin{ to{ transform:rotate(360deg); } }
.tela-frame .tela-product-thumb,
.tela-frame .tela-gallery-main{
	background:linear-gradient(100deg, #EFE6D7 40%, #F4EFE6 50%, #EFE6D7 60%);
	background-size:200% 100%; animation:tela-shimmer 1.4s ease-in-out infinite; }
.tela-frame .tela-product-thumb img,
.tela-frame .tela-gallery-main img{ position:relative; }
@keyframes tela-shimmer{ 0%{background-position:200% 0;} 100%{background-position:-200% 0;} }


/* ==========================================================================
   TELA — REWORK "TEJIDO": hilos que avanzan en los botones, telón que cae en
   imágenes y tarjetas, título por palabras y formulario demostrativo.
   Movimiento solo bajo prefers-reduced-motion: no-preference.
   ========================================================================== */

/* ---- Botones: sin elevación; trama de hilos al pasar el ratón ---- */
.tela-frame .wp-block-button__link, .tela-frame .tela-btn, .tela-frame .tela-dform-submit {
	min-height: 46px;
	transform: none !important;
	background-repeat: repeat;
	transition: background-color .35s ease, color .35s ease, border-color .35s ease, translate .2s ease !important;
}
.tela-frame .wp-block-button__link:hover, .tela-frame .tela-btn:hover, .tela-frame .tela-dform-submit:hover,
.tela-frame .wp-block-button__link:focus-visible, .tela-frame .tela-dform-submit:focus-visible {
	transform: none !important;
	background-image: repeating-linear-gradient(135deg, rgba(255,255,255,.2) 0 1px, transparent 1px 7px);
}
.tela-frame .tela-chip .wp-block-button__link:hover, .tela-frame .tela-chip.is-active .wp-block-button__link:hover {
	background-image: repeating-linear-gradient(135deg, rgba(175,123,87,.22) 0 1px, transparent 1px 7px);
}
.tela-frame .wp-block-button__link:active, .tela-frame .tela-btn:active, .tela-frame .tela-dform-submit:active { translate: 0 1px; }
.tela-frame .tela-backlink a { min-height: 32px; box-sizing: border-box; }

/* ---- Formulario de contacto demostrativo ---- */
.tela-demo-form { display: grid; gap: 1.2rem; max-width: 640px; margin-block: 1.4rem; }
.tela-dfield { display: grid; gap: .4rem; }
.tela-dfield label { font-size: .72rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--tela-brn); }
.tela-dfield input, .tela-dfield textarea {
	font: inherit; color: var(--tela-ink); background: #FBF7EE; border: 1px solid var(--tela-line);
	border-radius: 12px; padding: .8rem 1rem; min-height: 46px; width: 100%;
	transition: border-color .3s ease, box-shadow .4s ease;
}
.tela-dfield textarea { min-height: 140px; resize: vertical; }
.tela-dfield input:focus, .tela-dfield textarea:focus { outline: none; border-color: var(--tela-clay-ink); box-shadow: 0 0 0 3px rgba(138,79,44,.18); }
.tela-dfield [aria-invalid="true"] { border-color: #B3372B; box-shadow: 0 0 0 3px rgba(179,55,43,.16); }
.tela-dform-err { margin: 0; color: #B3372B; font-size: .92rem; }
.tela-dform-ok { margin: 0; padding: 1rem 1.2rem; background: var(--tela-bone); border: 1px solid var(--tela-line); border-radius: 12px; font-size: .95rem; }
.tela-demo-form [hidden] { display: none; }
.tela-dform-submit {
	justify-self: start; cursor: pointer; font: 700 .82rem/1 var(--tela-font-body); letter-spacing: .08em;
	background: var(--tela-ink); color: var(--tela-peel); border: 1px solid var(--tela-ink); border-radius: 999px; padding: .95rem 1.7rem;
}
.tela-dform-submit:hover, .tela-dform-submit:focus-visible { background-color: var(--tela-clay-dark); border-color: var(--tela-clay-dark); }

/* ---- Móvil ---- */
@media (max-width: 640px) {
	.tela-frame .tela-hero-cover { min-height: min(82svh, 40rem); }
	.tela-frame .tela-hero-cover .wp-block-cover__image-background { object-position: 40% 50%; }
}

/* ---- Movimiento de telón ---- */
@media (prefers-reduced-motion: no-preference) {
	.tela-frame .tela-hero-cover { overflow: hidden; }
	html.tl-m .tela-hero-cover .wp-block-cover__image-background {
		animation: tl-zoom 20s cubic-bezier(.22,.61,.36,1) both;
		translate: 0 var(--tl-py, 0px);
	}
	@keyframes tl-zoom { from { scale: 1.12; } to { scale: 1.02; } }
	.tl-w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .14em; margin-bottom: -.14em; }
	html.tl-m .tl-wi { display: inline-block; transform: translateY(110%); transition: transform 1.1s cubic-bezier(.22,.61,.36,1); transition-delay: calc(var(--i,0) * 90ms + 140ms); }
	html.tl-m.tl-in .tl-wi { transform: none; }
	html.tl-m .tela-hero-sub, html.tl-m .tela-hero-text .tela-kicker, html.tl-m .tela-hero-text .wp-block-buttons {
		opacity: 0; translate: 0 16px; transition: opacity 1s ease, translate 1.1s cubic-bezier(.22,.61,.36,1);
	}
	html.tl-m.tl-in .tela-hero-sub { opacity: 1; translate: 0 0; transition-delay: .7s; }
	html.tl-m.tl-in .tela-hero-text .tela-kicker { opacity: 1; translate: 0 0; transition-delay: .1s; }
	html.tl-m.tl-in .tela-hero-text .wp-block-buttons { opacity: 1; translate: 0 0; transition-delay: .9s; }

	/* telón: imágenes y tarjetas caen desde arriba */
	html.tl-m .tl-r { opacity: 0; translate: 0 22px; transition: opacity .9s ease, translate 1.1s cubic-bezier(.22,.61,.36,1); transition-delay: calc(var(--i,0) * 110ms); }
	html.tl-m .tl-r.is-in { opacity: 1; translate: 0 0; }
	html.tl-m figure.tl-r { clip-path: inset(0 0 calc(100% - .3px) 0); translate: 0 0; transition: clip-path 1.3s cubic-bezier(.22,.61,.36,1), opacity .6s ease; transition-delay: calc(var(--i,0) * 110ms); }
	html.tl-m figure.tl-r.is-in { clip-path: inset(0); }
	html.tl-m .tl-r.is-in img { animation: tl-settle 1.8s cubic-bezier(.22,.61,.36,1) both; }
	@keyframes tl-settle { from { scale: 1.1; } to { scale: 1; } }

	@media (hover: hover) and (pointer: fine) {
		.tela-frame .tela-product-card:hover .tela-product-thumb img, .tela-frame .tela-coll-card:hover .tela-img img { transition: transform 1.2s cubic-bezier(.22,.61,.36,1); }
	}
}

.tela-frame .tela-gallery .tela-gal-arrow { width: 2.75rem; height: 2.75rem; }

.tela-frame .tela-navlink a { display: inline-flex; align-items: center; min-height: 40px; }

/* Portada a ancho completo y cabecera sin quiebres de texto */
.tela-frame .tela-hero-cover.wp-block-cover { max-width: none !important; width: 100% !important; margin-inline: 0 !important; }
.tela-frame .tela-hero-cover > .wp-block-cover__inner-container { width: 100%; max-width: 1240px; margin-inline: auto; padding-inline: var(--tela-gut); }
.tela-frame .tela-hero-text { margin-inline: 0 !important; max-width: 40rem; }
.tela-frame .tela-hero-text > * { margin-left: 0 !important; }
.tela-frame .tela-contacto-btn .wp-block-button__link, .tela-frame .tela-nav-toggle .wp-block-button__link { white-space: nowrap; }
.tela-frame .tela-backlink a { white-space: nowrap; }
.tela-frame .tela-hero-cover.wp-block-cover {
	width: auto !important;
	margin-left: calc(-1 * var(--wp--style--root--padding-left, 0px)) !important;
	margin-right: calc(-1 * var(--wp--style--root--padding-right, 0px)) !important;
}
.tela-frame .tela-hero-cover .wp-block-cover__background { opacity: .7 !important; }
.tela-frame .tela-hero-text, .tela-frame .tela-hero-text > * { text-align: left; }
.tela-frame .tela-hero-sub { margin-left: 0 !important; padding-left: 0 !important; color: #f4ede0; }
.tela-frame .tela-backlink a { white-space: normal; }
@media (min-width: 1181px) { .tela-frame .tela-backlink a { white-space: nowrap; } }
.tela-frame .tela-hero-cover .wp-block-cover__background { background: linear-gradient(90deg, rgba(36,29,21,.82) 0%, rgba(36,29,21,.55) 55%, rgba(36,29,21,.2) 100%) !important; opacity: 1 !important; }
@media (max-width: 640px) { .tela-frame .tela-hero-cover .wp-block-cover__background { background: linear-gradient(180deg, rgba(36,29,21,.55), rgba(36,29,21,.8)) !important; } }
/* Fase 3 — objetivos táctiles: enlaces de cabecera, navegación, pie y títulos de tarjeta (mín. 36–44 px) */
body.page-template-page-tela header a, body.page-template-page-tela footer a, body.page-template-page-tela .wp-block-navigation-item__content { display: inline-flex; align-items: center; min-height: 36px; }
body.page-template-page-tela header .wp-block-navigation-item__content, body.page-template-page-tela header nav a { min-height: 44px; }
body.page-template-page-tela .wp-block-navigation__responsive-container-open, body.page-template-page-tela .wp-block-navigation__responsive-container-close { min-width: 44px; min-height: 44px; }
body.page-template-page-tela [class*="-card-name"] a, body.page-template-page-tela [class*="-card-title"] a, body.page-template-page-tela [class*="-card"] h3 a { display: inline-block; padding-block: .4rem; }
body.page-template-page-tela .tela-crumb a { display: inline-block; padding-block: .5rem; }

body.page-template-page-tela { --cfx-ink:#2B241C;--cfx-paper:#F4EFE6;--cfx-accent:#AF7B57;--cfx-r:14px;--cfx-display:"DM Serif Display",serif; }

/* ==========================================================================
   CATÁLOGO — MOVIMIENTO DE PRODUCTO (TELA): inclinación con brillo, botón y visor de
   vista rápida, vuelo a la cesta y estados de enfoque. Solo bajo no-preference salvo lo estructural.
   ========================================================================== */
body.page-template-page-tela .cfx-media { position: relative; overflow: hidden; border-radius: var(--cfx-r, 12px); transform: perspective(900px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); transform-style: preserve-3d; transition: transform .5s cubic-bezier(.22,.61,.36,1), box-shadow .5s ease; will-change: transform; }
body.page-template-page-tela .cfx-media::after { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0; background: radial-gradient(circle at var(--gx, 50%) var(--gy, 50%), rgba(255,255,255,.28), transparent 55%); transition: opacity .4s ease; mix-blend-mode: soft-light; }
@media (hover: hover) and (pointer: fine) {
	body.page-template-page-tela .tela-product-card:hover .cfx-media { box-shadow: 0 30px 50px -28px rgba(0,0,0,.45); }
	body.page-template-page-tela .tela-product-card:hover .cfx-media::after { opacity: 1; }
}
body.page-template-page-tela .cfx-qv-btn { position: absolute; z-index: 3; left: 50%; bottom: .8rem; translate: -50% 0; display: inline-flex; align-items: center; min-height: 44px; padding: 0 1.2rem; border: 0; border-radius: 999px; background: rgba(255,255,255,.94); color: var(--cfx-ink, #1b1b1b); font: 600 .74rem/1 inherit; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; opacity: 0; translate: -50% 12px; transition: opacity .35s ease, translate .5s cubic-bezier(.22,.61,.36,1), background-color .3s ease, color .3s ease; box-shadow: 0 10px 26px -10px rgba(0,0,0,.5); }
body.page-template-page-tela .tela-product-card:hover .cfx-qv-btn, body.page-template-page-tela .tela-product-card:focus-within .cfx-qv-btn, body.page-template-page-tela .cfx-qv-btn:focus-visible { opacity: 1; translate: -50% 0; }
body.page-template-page-tela .cfx-qv-btn:hover { background: var(--cfx-ink, #1b1b1b); color: #fff; }
body.page-template-page-tela .cfx-qv-btn:focus-visible { outline: 2px solid var(--cfx-accent, #b8793e); outline-offset: 3px; }
@media (hover: none) { body.page-template-page-tela .cfx-qv-btn { opacity: 1; translate: -50% 0; min-height: 40px; padding: 0 1rem; } }
html.cfx-lock { overflow: hidden; }
.cfx-qv { position: fixed; inset: 0; z-index: 300; display: grid; place-items: center; padding: clamp(.8rem, 3vw, 2rem); background: rgba(14,12,10,.7); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); opacity: 0; transition: opacity .45s ease; }
.cfx-qv[hidden] { display: none; } .cfx-qv.is-open { opacity: 1; }
.cfx-qv-box { position: relative; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); width: min(980px, 100%); max-height: calc(100svh - 2rem); overflow: auto; border-radius: calc(var(--cfx-r, 12px) * 2); background: var(--cfx-paper, #fff); color: var(--cfx-ink, #1b1b1b); box-shadow: 0 50px 100px -30px rgba(0,0,0,.7); }
.cfx-qv-img { min-height: 320px; background: #ddd; overflow: hidden; } .cfx-qv-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cfx-qv-info { display: flex; flex-direction: column; justify-content: center; gap: .6rem; padding: clamp(1.4rem, 4vw, 3rem); }
.cfx-qv-cat { margin: 0; font: 600 .7rem/1 inherit; letter-spacing: .18em; text-transform: uppercase; color: var(--cfx-accent, #b8793e); }
.cfx-qv-t { margin: 0; font: 500 clamp(1.7rem, 3.4vw, 2.6rem)/1.08 var(--cfx-display, inherit); letter-spacing: -.01em; color: inherit; }
.cfx-qv-p { margin: 0 0 1rem; font-size: 1.3rem; font-variant-numeric: tabular-nums; }
.cfx-qv-go { align-self: flex-start; display: inline-flex; align-items: center; gap: .9rem; min-height: 52px; padding: 0 .5rem 0 1.5rem; border-radius: 999px; background: var(--cfx-ink, #1b1b1b); color: #fff !important; text-decoration: none !important; font: 600 .82rem/1 inherit; letter-spacing: .04em; transition: box-shadow .4s ease; }
.cfx-qv-go i { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: #fff; color: var(--cfx-ink, #1b1b1b); font-style: normal; transition: translate .4s cubic-bezier(.22,.61,.36,1); }
.cfx-qv-go:hover { box-shadow: 0 0 0 5px rgba(0,0,0,.12); } .cfx-qv-go:hover i { translate: 4px 0; }
.cfx-qv-x { position: absolute; z-index: 2; top: .8rem; right: .8rem; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(255,255,255,.92); color: #1b1b1b; font-size: 1.5rem; line-height: 1; cursor: pointer; box-shadow: 0 8px 22px -8px rgba(0,0,0,.5); }
.cfx-qv-x:hover { background: #1b1b1b; color: #fff; } .cfx-qv a:focus-visible, .cfx-qv button:focus-visible { outline: 2px solid var(--cfx-accent, #b8793e); outline-offset: 3px; }
@media (max-width: 720px) { .cfx-qv-box { grid-template-columns: minmax(0, 1fr); } .cfx-qv-img { min-height: 240px; max-height: 38svh; } }
.cfx-fly { position: fixed; z-index: 400; pointer-events: none; border-radius: 50%; background-size: cover; background-position: center; box-shadow: 0 20px 40px -10px rgba(0,0,0,.5); border: 3px solid #fff; }
@media (prefers-reduced-motion: reduce) { body.page-template-page-tela .cfx-media { transform: none !important; transition: none; } .cfx-qv { transition: none; } }

/* ==========================================================================
   TELA — HERO "MUESTRARIO": cuatro retales cuelgan de una barra, con el borde
   dentado de las tijeras de peinar; al acercarse caen un poco más y descubren su
   colección. Original de TELA.
   ========================================================================== */
.tx-wrap { padding: 0 !important; margin-block: 0 !important; }
.tx, .tx * { box-sizing: border-box; }
.tx { background: var(--tela-peel, #F4EFE6); color: var(--tela-ink, #2B241C); overflow: hidden; }
.tx-in { max-width: 1240px; margin-inline: auto; padding: clamp(2rem, 5vw, 4.4rem) var(--tela-gut, 2rem) clamp(2.4rem, 5vw, 4rem); display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.1fr); gap: clamp(1.6rem, 5vw, 4rem); align-items: start; }
.tx-copy { padding-top: clamp(0rem, 4vw, 3rem); }
.tx-k { margin: 0 0 1.1rem; font: 700 .74rem/1 var(--tela-font-body, sans-serif); letter-spacing: .24em; text-transform: uppercase; color: var(--tela-clay-ink, #6e3f24); }
.tx-title { margin: 0 0 1.2rem; font: 400 clamp(2.6rem, 6vw, 5.2rem)/.98 var(--tela-font-display, serif); letter-spacing: -.012em; color: var(--tela-ink, #2B241C); text-wrap: balance; }
.tx-sub { margin: 0 0 1.7rem; max-width: 30rem; font-size: 1.12rem; line-height: 1.6; color: var(--tela-brn, #5B4A39); }
.tx-cta { display: flex; align-items: center; flex-wrap: wrap; gap: .6rem 1.5rem; }
.tx .tx-btn { position: relative; display: inline-flex; align-items: center; gap: .9rem; min-height: 52px; padding: 0 .5rem 0 1.5rem; border-radius: 999px; background: var(--tela-ink, #2B241C); color: var(--tela-peel, #F4EFE6); text-decoration: none; font: 700 .84rem/1 var(--tela-font-body, sans-serif); letter-spacing: .06em; overflow: hidden; isolation: isolate; transition: color .5s ease; }
.tx-btn i { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--tela-peel, #F4EFE6); color: var(--tela-ink, #2B241C); font-style: normal; transition: translate .4s cubic-bezier(.22,.61,.36,1); }
.tx-btn::before { content: ""; position: absolute; inset: 0; z-index: -1; background: repeating-linear-gradient(135deg, var(--tela-clay, #AF7B57) 0 2px, #9c6a49 2px 7px); transform: translateX(-101%); transition: transform .6s cubic-bezier(.22,.61,.36,1); }
.tx .tx-btn:hover { color: #fff; } .tx-btn:hover::before, .tx-btn:focus-visible::before { transform: none; } .tx-btn:hover i { translate: 3px 0; }
.tx .tx-link { display: inline-flex; align-items: center; min-height: 44px; color: inherit; font: 700 .84rem/1 var(--tela-font-body, sans-serif); letter-spacing: .04em; text-decoration: none; background: linear-gradient(90deg, currentColor 50%, transparent 50%) 0 100% / 8px 1px repeat-x; padding-bottom: 3px; }
.tx a:focus-visible { outline: 2px solid var(--tela-clay-ink, #6e3f24); outline-offset: 4px; }
.tx-rail { position: relative; display: flex; justify-content: space-between; gap: clamp(.5rem, 1.4vw, 1.1rem); padding-top: 2.4rem; min-height: 28rem; }
.tx-rod { position: absolute; left: -.6rem; right: -.6rem; top: 1.3rem; height: 7px; border-radius: 7px; background: linear-gradient(180deg, #8d6a4c, #5b4330); box-shadow: 0 6px 12px -6px rgba(43,36,28,.5); }
.tx-sw { position: relative; flex: 1 1 0; min-width: 0; display: block; text-decoration: none; color: inherit; transform-origin: 50% 0; }
.tx-clip { position: absolute; z-index: 3; left: 50%; top: -1.35rem; width: 14px; height: 30px; translate: -50% 0; border-radius: 5px; background: linear-gradient(90deg, #c9b99a, #a89572); box-shadow: 0 3px 6px -2px rgba(43,36,28,.45); }
.tx-cloth { position: relative; display: block; height: var(--h, 18rem); overflow: hidden; background: #d8c9b0; clip-path: polygon(0 0, 100% 0, 100% calc(100% - 12px), 91% 100%, 82% calc(100% - 12px), 73% 100%, 64% calc(100% - 12px), 55% 100%, 46% calc(100% - 12px), 37% 100%, 28% calc(100% - 12px), 19% 100%, 10% calc(100% - 12px), 0 100%); filter: drop-shadow(0 14px 14px rgba(43,36,28,.25)); transition: height .9s cubic-bezier(.22,.61,.36,1); }
.tx-cloth img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; transition: scale 1.2s cubic-bezier(.22,.61,.36,1); scale: 1.04; }
.tx-cloth::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(43,36,28,.7), transparent 55%); opacity: .85; }
.tx-lab { position: absolute; z-index: 2; left: .8rem; right: .6rem; bottom: 1.3rem; display: grid; gap: .15rem; color: #fff; }
.tx-lab b { font: 700 .66rem/1 var(--tela-font-body, sans-serif); letter-spacing: .2em; opacity: .85; }
.tx-n { font: 400 clamp(1.1rem, 1.9vw, 1.55rem)/1.05 var(--tela-font-display, serif); }
.tx-lab small { font-size: .78rem; line-height: 1.35; max-height: 0; opacity: 0; overflow: hidden; transition: max-height .7s cubic-bezier(.22,.61,.36,1), opacity .5s ease; }
@media (hover: hover) and (pointer: fine) {
	.tx-sw:hover .tx-cloth, .tx-sw:focus-visible .tx-cloth { height: calc(var(--h, 18rem) + 3.2rem); }
	.tx-sw:hover .tx-cloth img { scale: 1.12; }
	.tx-sw:hover .tx-lab small, .tx-sw:focus-visible .tx-lab small { max-height: 4rem; opacity: .95; }
}
@media (hover: none) { .tx-lab small { max-height: 4rem; opacity: .95; } }
@media (max-width: 900px) {
	.tx-in { grid-template-columns: minmax(0, 1fr); }
	.tx-copy { padding-top: 0; }
	.tx-rail { overflow-x: auto; scroll-snap-type: x mandatory; padding-inline: .6rem; padding-bottom: 1rem; gap: .8rem; -webkit-overflow-scrolling: touch; }
	.tx-sw { flex: 0 0 min(44vw, 190px); scroll-snap-align: start; }
	.tx-rod { left: 0; right: 0; width: max(100%, 780px); }
}
@media (prefers-reduced-motion: no-preference) {
	.tx-sw { animation: tx-sway 6s ease-in-out infinite; animation-delay: calc(var(--i, 0) * -1.3s); }
	@keyframes tx-sway { 0%, 100% { rotate: -.9deg; } 50% { rotate: 1deg; } }
	.tx-sw:hover, .tx-sw:focus-visible { animation-play-state: paused; }
	.tx-w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .1em; margin-bottom: -.1em; }
	html.tx-m .tx-wi { display: inline-block; transform: translateY(108%); transition: transform 1.1s cubic-bezier(.22,.61,.36,1); transition-delay: calc(var(--i, 0) * 70ms + 120ms); }
	html.tx-m.tx-ready .tx-wi { transform: none; }
	html.tx-m .tx-k, html.tx-m .tx-sub, html.tx-m .tx-cta { opacity: 0; translate: 0 16px; transition: opacity 1s ease, translate 1.1s cubic-bezier(.22,.61,.36,1); }
	html.tx-m.tx-ready .tx-k { opacity: 1; translate: 0 0; transition-delay: .05s; } html.tx-m.tx-ready .tx-sub { opacity: 1; translate: 0 0; transition-delay: .8s; } html.tx-m.tx-ready .tx-cta { opacity: 1; translate: 0 0; transition-delay: 1s; }
	html.tx-m .tx-sw { opacity: 0; translate: 0 -60px; transition: opacity .8s ease, translate 1.4s cubic-bezier(.34,1.3,.64,1); transition-delay: calc(var(--i, 0) * 140ms + 500ms); }
	html.tx-m.tx-ready .tx-sw { opacity: 1; translate: 0 0; }
}

/* ==========================================================================
   MÓVIL — DOCK INFERIOR, PROGRESO DE LECTURA Y FOCO TÁCTIL (TELA)
   Pensado para el pulgar: navegación a una mano, indicador que se desliza entre
   páginas y tarjetas que se "encienden" al centrarse en pantalla (el equivalente
   táctil del hover). Solo se activa en pantallas estrechas.
   ========================================================================== */
.tlm-dock, .tlm-prog { display: none; }
@media (max-width: 820px) {
	body.tlm-has-dock { padding-bottom: calc(86px + env(safe-area-inset-bottom, 0px)); }
	.tlm-prog { display: block; position: fixed; z-index: 90; top: 0; left: 0; right: 0; height: 3px; background: transparent; pointer-events: none; }
	.tlm-prog i { display: block; height: 100%; background: #8a4f2c; transform: scaleX(0); transform-origin: left; }
	.tlm-dock {
		display: flex; position: fixed; z-index: 90; left: 10px; right: 10px; bottom: calc(10px + env(safe-area-inset-bottom, 0px));
		margin: 0; padding: 6px; gap: 2px; background: #FBF6EC; border: 1px solid #E1D3BE; border-radius: 26px;
		box-shadow: 0 14px 34px -10px rgba(0,0,0,.45), 0 2px 6px rgba(0,0,0,.18);
		font-family: var(--tela-font-body, sans-serif); -webkit-tap-highlight-color: transparent; isolation: isolate;
		transition: transform .45s cubic-bezier(.22,.61,.36,1), opacity .3s ease;
	}
	.tlm-dock.is-away { transform: translateY(calc(100% + 24px)); opacity: 0; pointer-events: none; }
	.tlm-dock a {
		position: relative; z-index: 1; flex: 1 1 0; min-width: 0; min-height: 52px; display: grid; justify-items: center; align-content: center; gap: 3px;
		padding: 4px 2px; border-radius: calc(26px - 6px); color: #6e5a45; text-decoration: none; font-size: .64rem; font-weight: 600; letter-spacing: .02em; line-height: 1.1;
		text-transform: none; background: none; border: 0; transition: color .25s ease, scale .2s ease;
	}
	.tlm-dock a:active { scale: .92; }
	.tlm-dock a svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; transition: transform .35s cubic-bezier(.34,1.56,.64,1); }
	.tlm-dock a span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
	.tlm-dock a.is-on { color: #F4EFE6; }
	.tlm-dock a.is-on svg { transform: translateY(-1px) scale(1.12); }
	.tlm-dock a.is-cta { background: #8a4f2c; color: #ffffff; flex: 1.15 1 0; border-radius: calc(26px - 6px); }
	.tlm-dock a.is-cta.is-on { color: #ffffff; box-shadow: inset 0 0 0 2px rgba(255,255,255,.55); }
	.tlm-ind { position: absolute; z-index: 0; top: 6px; bottom: 6px; left: 0; width: 0; border-radius: calc(26px - 6px); background: #2B241C; opacity: 0; pointer-events: none; }
	.tlm-ind.is-go { opacity: 1; transition: transform .5s cubic-bezier(.34,1.3,.64,1), width .5s cubic-bezier(.34,1.3,.64,1); }
	.tlm-dock a:focus-visible { outline: 2px solid #F4EFE6; outline-offset: -2px; }
	/* Foco táctil: la tarjeta más cercana al centro de la pantalla se enciende. */
	.tela-product-card { transition: translate .6s cubic-bezier(.22,.61,.36,1), box-shadow .6s ease; }
	.tela-product-card.tlm-live { translate: 0 -4px; box-shadow: 0 18px 30px -18px rgba(0,0,0,.45); }
	.tela-product-card img { transition: scale 1.2s cubic-bezier(.22,.61,.36,1); }
	.tela-product-card.tlm-live img { scale: 1.06; }
	@media (prefers-reduced-motion: reduce) { .tlm-dock, .tlm-ind.is-go, .tlm-dock a, .tlm-dock a svg { transition: none; } }
}
@media (hover: none) { .wp-element-button:active, [class*="-btn"]:active, [class*="-cta"]:active { scale: .97; } }


/* ==========================================================================
   ENTRADA — pantalla de carga propia de TELA (motivo: fabric)
   ========================================================================== */
html.tlm-intro-on { overflow: hidden; }
.tlm-intro { position: fixed; inset: 0; z-index: 10000; display: grid; place-items: center; background: #EFE6D7; color: #2B241C; font-family: var(--tela-font-body, sans-serif); overflow: hidden; }
.tlm-intro-in { position: relative; z-index: 2; display: grid; justify-items: center; gap: .9rem; padding: 2rem; text-align: center; transition: opacity .4s ease, transform .7s cubic-bezier(.76,0,.24,1); }
.tlm-intro-g { width: clamp(150px, 42vw, 260px); height: auto; color: #AF7B57; overflow: visible; }
.tlm-intro-g path, .tlm-intro-g circle[pathLength] { stroke-dasharray: 1; stroke-dashoffset: 1; animation: tlm-draw 1s cubic-bezier(.65,0,.35,1) .1s forwards; }
.tlm-intro-g path[stroke-dasharray="6 8"] { stroke-dasharray: 6 8; stroke-dashoffset: 0; animation: none; clip-path: inset(0 100% 0 0); animation: tlm-wipe 1s ease .1s forwards; }
@keyframes tlm-draw { to { stroke-dashoffset: 0; } }
@keyframes tlm-wipe { to { clip-path: inset(0 0 0 0); } }
@keyframes tlm-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
.tlm-intro-name { display: block; font-family: var(--tela-font-display, serif); font-size: clamp(2.6rem, 13vw, 5rem); line-height: 1; letter-spacing: -.02em; opacity: 0; animation: tlm-in .8s ease .25s forwards; }
.tlm-intro-tag { display: block; font-size: .72rem; letter-spacing: .22em; text-transform: uppercase; opacity: 0; color: #2B241C; animation: tlm-in .8s ease .45s forwards; }
.tlm-intro-tag { opacity: 0; }
.tlm-intro-by { display: block; margin-top: 1.4rem; font-size: .62rem; letter-spacing: .2em; text-transform: uppercase; opacity: 0; animation: tlm-in .8s ease .65s forwards; }
.tlm-intro.is-out .tlm-intro-in { opacity: 0; transform: translateY(-10px); }
@media (prefers-reduced-motion: reduce) { .tlm-intro { display: none; } html.tlm-intro-on { overflow: auto; } }

.tlm-intro { -webkit-mask: linear-gradient(#000 0 0) top / 100% calc(100% - 16px) no-repeat, conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) bottom / 32px 16px repeat-x; mask: linear-gradient(#000 0 0) top / 100% calc(100% - 16px) no-repeat, conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) bottom / 32px 16px repeat-x; transition: transform .95s cubic-bezier(.76,0,.24,1); }
.tlm-intro.is-out { transform: translateY(-104%); }

