Tienda

Saltar al contenido

La tienda Geishas

Explora.
Elige.
Disfruta.

Miles de formas de disfrutar, reunidas en un catálogo pensado para que encuentres lo que buscas sin perderte entre miles de productos.





  • Compra discreta
  • Catálogo enorme
  • Tienda física en Tenerife Sur

DiscreciónUna compra íntima puede ser una compra normal.

Variedad de verdadMás de una opción para cada curiosidad, experiencia y presupuesto.

También físicamenteGeishas está en Los Cristianos, Tenerife.

El escaparate está vivo

Productos que merece la pena mirar

Este bloque se alimenta del catálogo real de WooCommerce. Nada de productos colocados a mano que se quedan obsoletos.

Ver todo el catálogo






Selección de productos para parejas de Geishas al atardecer

No todo empieza con el nombre de un producto

A veces empieza con una idea

“Quiero sorprender a mi pareja”. “Busco algo para empezar”. “Quiero algo discreto para viajar”. “Necesito un lubricante, pero no sé cuál”. Son búsquedas mucho más útiles que memorizar nombres técnicos.

Por eso esta tienda no está pensada solo como una estantería infinita. Queremos que puedas pasar de una intención a una categoría y, de ahí, a una selección de productos que tenga sentido.

¿No sabes por dónde empezar?

Cuatro caminos sencillos

No hace falta convertir la compra en un examen. Empieza por una de estas cuatro preguntas.

01

¿Es para ti?

Piensa qué tipo de sensación buscas, si prefieres estimulación externa o interna y cuánta intensidad te apetece.

Explorar juguetes

02

¿Es para compartir?

Hay productos pensados para seguir formando parte del juego cuando estáis juntos, no para sustituir a nadie.

Ver opciones para parejas

03

¿Es tu primera vez?

Empieza por algo manejable, con controles sencillos, buen material y funciones que realmente vayas a utilizar.

Empezar a mirar

04

¿Buscas completar la experiencia?

Lubricantes, masaje, lencería, preservativos y accesorios pueden cambiar mucho más de lo que parece.

Ver bienestar sexual

Antes de comprar

Preguntas frecuentes

Lo útil es elegir con información suficiente, no convertir una compra de placer en algo complicado.

¿Cómo encuentro un producto si no sé cómo se llama?

Empieza por la categoría o por el tipo de experiencia que buscas. También puedes utilizar el buscador de esta página con palabras sencillas como “pareja”, “vibrador”, “lubricante” o “masturbador”.

¿Puedo visitar la tienda física antes de comprar?

Sí. Geishas tiene tienda física en avenida de Chayofita, 2, Edificio Simón B116, Los Cristianos, Tenerife. Puedes venir a mirar, preguntar y comparar opciones.

¿Qué diferencia hay entre vibrador, succionador y masturbador?

Son familias de producto diferentes y dentro de cada una hay muchos formatos. Si no tienes claro cuál encaja mejor contigo, utiliza las categorías para comparar o consulta al equipo de Geishas.

¿Cómo sé qué lubricante necesito?

Depende del uso y de los materiales con los que vaya a entrar en contacto. Revisa siempre la compatibilidad indicada por el fabricante del juguete y del lubricante.

¿Hay productos para parejas?

Sí. Hay juguetes diseñados específicamente para utilizar durante momentos compartidos, además de controles remotos, accesorios, juegos y otras propuestas para parejas.

El catálogo es grande. La decisión puede ser sencilla.

Encuentra algo que
te apetezca de verdad.

Explora por categorías o entra directamente en el catálogo completo.

#gti-store,
#gti-store * { box-sizing: border-box; }

#gti-store {
–gti-ink: #24171e;
–gti-deep: #35111f;
–gti-plum: #58172e;
–gti-wine: #861438;
–gti-rasp: #d71956;
–gti-coral: #ff617b;
–gti-rose: #ffe7ed;
–gti-peach: #fff0e8;
–gti-sand: #f4e7dc;
–gti-cream: #fffaf7;
–gti-paper: #ffffff;
–gti-muted: #725f68;
–gti-line: rgba(73, 38, 52, .13);
–gti-shadow: 0 22px 70px rgba(61, 25, 39, .12);
width: 100vw;
max-width: none;
position: relative;
left: 50%;
margin-left: -50vw;
overflow: hidden;
color: var(–gti-ink);
background: var(–gti-cream);
font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, «Segoe UI», sans-serif;
font-size: 16px;
line-height: 1.65;
}

.geishas-tienda-page .entry-header,
.geishas-tienda-page .page-header { display: none !important; }

.geishas-tienda-page .site-content,
.geishas-tienda-page .content-area,
.geishas-tienda-page .site-main,
.geishas-tienda-page .entry-content {
margin-top: 0 !important;
padding-top: 0 !important;
}

.geishas-tienda-page .entry-content { margin-bottom: 0 !important; }

#gti-store h1,
#gti-store h2,
#gti-store h3,
#gti-store p { margin-top: 0; }

#gti-store h1,
#gti-store h2 {
font-family: Georgia, «Times New Roman», serif;
letter-spacing: -.04em;
}

#gti-store h1 {
max-width: 640px;
margin-bottom: 22px;
color: #fff;
font-size: clamp(55px, 7vw, 102px);
line-height: .88;
font-weight: 500;
}

#gti-store h1 em,
#gti-store h2 em {
color: #ffb5c6;
font-weight: 400;
}

#gti-store h2 {
margin-bottom: 18px;
color: var(–gti-ink);
font-size: clamp(36px, 4.5vw, 62px);
line-height: 1.02;
font-weight: 500;
}

#gti-store h3 {
margin-bottom: 10px;
color: var(–gti-ink);
font-size: 21px;
line-height: 1.25;
}

#gti-store svg {
width: 1em;
height: 1em;
fill: currentColor;
}

#gti-store a { text-underline-offset: 3px; }

.gti-shell {
width: min(1220px, calc(100% – 42px));
margin-inline: auto;
}

.gti-section {
padding: clamp(78px, 9vw, 128px) 0;
}

.gti-skip {
position: fixed;
z-index: 99999;
top: 12px;
left: 12px;
padding: 11px 15px;
border-radius: 7px;
background: #fff;
color: #111;
transform: translateY(-160%);
}

.gti-skip:focus { transform: translateY(0); }
.gti-sr-only {
position: absolute !important;
width: 1px !important;
height: 1px !important;
padding: 0 !important;
margin: -1px !important;
overflow: hidden !important;
clip: rect(0,0,0,0) !important;
white-space: nowrap !important;
border: 0 !important;
}

/* HERO */
.gti-hero {
position: relative;
min-height: min(820px, 88vh);
display: grid;
align-items: center;
overflow: hidden;
background: var(–gti-deep);
isolation: isolate;
}

.gti-hero__image,
.gti-hero__shade {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
}

.gti-hero__image {
z-index: -2;
object-fit: cover;
object-position: 65% center;
}

.gti-hero__shade {
z-index: -1;
background:
linear-gradient(90deg,
rgba(28, 8, 17, .96) 0%,
rgba(42, 12, 27, .90) 31%,
rgba(45, 14, 28, .58) 51%,
rgba(26, 8, 17, .12) 78%,
rgba(26, 8, 17, .02) 100%);
}

.gti-hero__inner { padding: 100px 0 92px; }
.gti-hero__copy { width: min(680px, 59%); }

.gti-kicker,
.gti-eyebrow {
margin-bottom: 18px !important;
color: var(–gti-rasp);
font-size: 12px;
font-weight: 850;
letter-spacing: .15em;
text-transform: uppercase;
}

.gti-kicker {
display: flex;
align-items: center;
gap: 10px;
color: #ffd8e1;
}

.gti-kicker span {
width: 36px;
height: 2px;
background: var(–gti-coral);
}

.gti-hero__lead {
max-width: 610px;
margin-bottom: 27px !important;
color: rgba(255,255,255,.86);
font-size: clamp(17px, 1.65vw, 21px);
line-height: 1.55;
}

.gti-hero__lead strong { color: #fff; }

.gti-search {
max-width: 590px;
display: grid;
grid-template-columns: 1fr auto;
padding: 6px;
border: 1px solid rgba(255,255,255,.24);
border-radius: 999px;
background: rgba(255,255,255,.13);
box-shadow: 0 18px 50px rgba(0,0,0,.18);
backdrop-filter: blur(13px);
}

.gti-search input {
width: 100%;
min-width: 0;
height: 48px;
padding: 0 18px;
border: 0 !important;
outline: 0;
background: transparent !important;
color: #fff !important;
font: inherit;
box-shadow: none !important;
}

.gti-search input::placeholder { color: rgba(255,255,255,.67); }

.gti-search button {
height: 48px;
display: inline-flex;
align-items: center;
gap: 8px;
padding: 0 19px;
border: 0;
border-radius: 999px;
background: #fff;
color: var(–gti-wine);
font: inherit;
font-size: 14px;
font-weight: 850;
cursor: pointer;
}

.gti-search button svg { width: 17px; height: 17px; }

.gti-hero__proof {
display: flex;
flex-wrap: wrap;
gap: 10px 20px;
margin: 28px 0 0;
padding: 0;
list-style: none;
color: rgba(255,255,255,.82);
font-size: 13px;
font-weight: 700;
}

.gti-hero__proof li {
display: flex;
align-items: center;
gap: 6px;
}

.gti-hero__proof svg { color: #ffadc0; }

/* TRUST */
.gti-trust-wrap {
position: relative;
z-index: 3;
margin-top: -42px;
}

.gti-trust {
display: grid;
grid-template-columns: repeat(3, 1fr);
border: 1px solid rgba(92,32,56,.09);
border-radius: 22px;
background: #fff;
box-shadow: var(–gti-shadow);
overflow: hidden;
}

.gti-trust article {
min-height: 124px;
display: flex;
align-items: center;
gap: 15px;
padding: 25px 27px;
}

.gti-trust article + article { border-left: 1px solid var(–gti-line); }

.gti-icon {
flex: 0 0 46px;
width: 46px;
height: 46px;
display: grid;
place-items: center;
border-radius: 50%;
background: var(–gti-rose);
color: var(–gti-wine);
}

.gti-icon svg { width: 22px; height: 22px; }
.gti-trust strong,
.gti-trust small { display: block; }
.gti-trust strong { margin-bottom: 3px; font-size: 14px; }
.gti-trust small { color: var(–gti-muted); font-size: 12.5px; line-height: 1.45; }

/* HEADINGS */
.gti-heading {
max-width: 790px;
margin: 0 auto 48px;
text-align: center;
}

.gti-heading–left {
margin-inline: 0;
text-align: left;
}

.gti-heading > p:last-child {
margin-bottom: 0;
color: var(–gti-muted);
font-size: 17px;
}

/* CATEGORIES */
.gti-categories { background: var(–gti-cream); }

.gti-catgrid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 17px;
}

.gti-cat {
position: relative;
min-height: 230px;
display: grid;
grid-template-columns: auto 1fr auto;
align-items: center;
gap: 22px;
padding: 32px;
border: 1px solid transparent;
border-radius: 24px;
color: var(–gti-ink) !important;
text-decoration: none !important;
overflow: hidden;
transition: transform .25s ease, box-shadow .25s ease;
}

.gti-cat:hover {
transform: translateY(-5px);
box-shadow: var(–gti-shadow);
}

.gti-cat–hero {
grid-column: 1 / -1;
min-height: 270px;
background: linear-gradient(135deg, #681733, #b9194d);
color: #fff !important;
}

.gti-cat–rose { background: #fde5ed; }
.gti-cat–ink { background: #24171e; color: #fff !important; }
.gti-cat–sand { background: #f2e5da; }
.gti-cat–cream { background: #fff5de; }
.gti-cat–peach { background: #ffebe1; }

.gti-cat__number {
position: absolute;
top: 19px;
right: 22px;
color: currentColor;
opacity: .35;
font-family: Georgia, serif;
font-size: 14px;
}

.gti-cat__icon {
width: 74px;
height: 74px;
display: grid;
place-items: center;
border-radius: 50%;
background: rgba(255,255,255,.5);
}

.gti-cat–hero .gti-cat__icon,
.gti-cat–ink .gti-cat__icon { background: rgba(255,255,255,.12); }

.gti-cat__icon svg {
width: 47px;
height: 47px;
fill: none !important;
stroke: currentColor;
stroke-width: 2.2;
stroke-linecap: round;
stroke-linejoin: round;
}

.gti-cat__copy strong,
.gti-cat__copy small { display: block; }

.gti-cat__copy strong {
margin-bottom: 6px;
font-family: Georgia, «Times New Roman», serif;
font-size: clamp(25px, 2.2vw, 34px);
line-height: 1.05;
font-weight: 500;
}

.gti-cat__copy small {
max-width: 570px;
color: currentColor;
opacity: .72;
font-size: 14px;
line-height: 1.5;
}

.gti-cat__arrow {
align-self: end;
font-size: 26px;
transition: transform .2s ease;
}

.gti-cat:hover .gti-cat__arrow { transform: translate(3px,-3px); }

.gti-smallcats {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 10px;
margin-top: 20px;
}

.gti-smallcats a {
display: flex;
justify-content: space-between;
align-items: center;
min-height: 64px;
padding: 14px 19px;
border: 1px solid var(–gti-line);
border-radius: 14px;
background: #fff;
color: var(–gti-ink) !important;
font-size: 14px;
font-weight: 800;
text-decoration: none !important;
transition: border-color .2s ease, transform .2s ease;
}

.gti-smallcats a:hover {
border-color: rgba(134,20,56,.35);
transform: translateY(-2px);
}

.gti-smallcats span { color: var(–gti-rasp); }

/* PRODUCTS */
.gti-products { background: #fbf2ee; }

.gti-products__head {
display: flex;
justify-content: space-between;
align-items: end;
gap: 30px;
margin-bottom: 28px;
}

.gti-products__head .gti-heading { margin-bottom: 0; }

.gti-link {
flex: 0 0 auto;
margin-bottom: 13px;
color: var(–gti-wine) !important;
font-size: 14px;
font-weight: 850;
text-decoration: none !important;
}

.gti-link span { display: inline-block; transition: transform .2s ease; }
.gti-link:hover span { transform: translateX(4px); }

.gti-tabs {
display: flex;
gap: 8px;
margin-bottom: 28px;
padding-bottom: 4px;
overflow-x: auto;
scrollbar-width: thin;
}

.gti-tabs button {
flex: 0 0 auto;
padding: 10px 17px;
border: 1px solid var(–gti-line);
border-radius: 999px;
background: #fff;
color: var(–gti-muted);
font: inherit;
font-size: 13px;
font-weight: 750;
cursor: pointer;
}

.gti-tabs button.is-active {
border-color: var(–gti-wine);
background: var(–gti-wine);
color: #fff;
}

.gti-productgrid {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 17px;
min-height: 390px;
}

.gti-product {
position: relative;
border: 1px solid rgba(77,43,55,.09);
border-radius: 18px;
background: #fff;
overflow: hidden;
transition: transform .25s ease, box-shadow .25s ease;
}

.gti-product:hover {
transform: translateY(-4px);
box-shadow: var(–gti-shadow);
}

.gti-product__image {
aspect-ratio: 1 / 1;
display: block;
background: #f7f2ef;
overflow: hidden;
}

.gti-product__image img {
width: 100%;
height: 100%;
object-fit: contain;
mix-blend-mode: multiply;
transition: transform .35s ease;
}

.gti-product:hover .gti-product__image img { transform: scale(1.035); }

.gti-product__body { padding: 18px; }

.gti-product__body h3 {
min-height: 48px;
margin: 0 0 10px;
font-family: inherit !important;
font-size: 15px !important;
line-height: 1.45 !important;
font-weight: 750 !important;
}

.gti-product__body h3 a {
color: var(–gti-ink) !important;
text-decoration: none !important;
}

.gti-price {
margin-bottom: 0 !important;
color: var(–gti-wine);
font-size: 17px;
font-weight: 850;
}

.gti-badge {
position: absolute;
z-index: 2;
top: 12px;
left: 12px;
padding: 6px 9px;
border-radius: 999px;
background: var(–gti-rasp);
color: #fff;
font-size: 10px;
font-weight: 900;
letter-spacing: .06em;
text-transform: uppercase;
}

.gti-skeleton {
min-height: 390px;
border-radius: 18px;
background: linear-gradient(100deg,#eee4df 25%,#faf7f5 45%,#eee4df 65%);
background-size: 200% 100%;
animation: gti-shimmer 1.25s infinite linear;
}

@keyframes gti-shimmer { to { background-position-x: -200%; } }

.gti-product-fallback {
padding: 38px;
border-radius: 18px;
background: #fff;
text-align: center;
}

/* EDITORIAL */
.gti-editorial {
display: grid;
grid-template-columns: 1.06fr .94fr;
background: var(–gti-ink);
color: #fff;
}

.gti-editorial__visual {
min-height: 720px;
overflow: hidden;
}

.gti-editorial__visual img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: 58% center;
}

.gti-editorial__copy {
align-self: center;
max-width: 680px;
padding: clamp(58px, 7vw, 105px);
}

.gti-editorial h2 { color: #fff !important; }

.gti-editorial__copy > p:not(.gti-eyebrow) {
color: rgba(255,255,255,.72);
font-size: 16px;
}

.gti-editorial__cards {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 10px;
margin-top: 30px;
}

.gti-editorial__cards a {
min-height: 105px;
padding: 18px;
border: 1px solid rgba(255,255,255,.14);
border-radius: 14px;
background: rgba(255,255,255,.06);
color: #fff !important;
text-decoration: none !important;
transition: background .2s ease, transform .2s ease;
}

.gti-editorial__cards a:hover {
background: rgba(255,255,255,.11);
transform: translateY(-2px);
}

.gti-editorial__cards strong,
.gti-editorial__cards span { display: block; }

.gti-editorial__cards strong {
margin-bottom: 7px;
font-family: Georgia, serif;
font-size: 20px;
font-weight: 500;
}

.gti-editorial__cards span {
color: #ffc3d0;
font-size: 12px;
font-weight: 750;
}

/* PATHS */
.gti-discover { background: #fff; }

.gti-paths {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 15px;
}

.gti-paths article {
min-height: 300px;
display: flex;
flex-direction: column;
padding: 27px 24px;
border-top: 2px solid var(–gti-rose);
background: var(–gti-cream);
}

.gti-paths article > span {
display: block;
margin-bottom: 42px;
color: var(–gti-rasp);
font-family: Georgia, serif;
font-size: 31px;
}

.gti-paths p {
margin-bottom: 22px !important;
color: var(–gti-muted);
font-size: 14px;
}

.gti-paths a {
margin-top: auto;
color: var(–gti-wine) !important;
font-size: 13px;
font-weight: 850;
text-decoration: none !important;
}

.gti-paths a b {
display: inline-block;
transition: transform .2s ease;
}

.gti-paths a:hover b { transform: translateX(4px); }

/* FAQ */
.gti-faq { background: #f4e7df; }

.gti-faq__grid {
display: grid;
grid-template-columns: .72fr 1.28fr;
gap: clamp(40px, 7vw, 100px);
align-items: start;
}

.gti-accordion details { border-bottom: 1px solid rgba(73,38,52,.17); }

.gti-accordion summary {
position: relative;
padding: 22px 46px 22px 0;
color: var(–gti-ink);
font-size: 17px;
font-weight: 800;
list-style: none;
cursor: pointer;
}

.gti-accordion summary::-webkit-details-marker { display: none; }

.gti-accordion summary span,
.gti-accordion summary span::after {
position: absolute;
top: 50%;
right: 4px;
width: 18px;
height: 2px;
background: var(–gti-wine);
content: «»;
transition: transform .2s ease;
}

.gti-accordion summary span::after {
top: 0;
right: 0;
transform: rotate(90deg);
}

.gti-accordion details[open] summary span::after { transform: rotate(0); }

.gti-accordion details p {
padding: 0 38px 22px 0;
color: var(–gti-muted);
font-size: 15px;
}

/* BUTTONS / CTA */
.gti-actions {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 12px;
}

.gti-actions–center { justify-content: center; }

.gti-btn {
min-height: 52px;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 9px;
padding: 13px 22px;
border: 1px solid transparent;
border-radius: 999px;
font-size: 14px;
line-height: 1.2;
font-weight: 800;
text-decoration: none !important;
transition: transform .2s ease, background .2s ease, box-shadow .2s ease, color .2s ease;
}

.gti-btn:hover { transform: translateY(-2px); }

.gti-btn–primary {
background: linear-gradient(135deg,var(–gti-wine),var(–gti-rasp));
color: #fff !important;
box-shadow: 0 12px 30px rgba(194,19,74,.3);
}

.gti-btn–light {
background: #fff;
color: var(–gti-wine) !important;
}

.gti-btn–line-light {
border-color: rgba(255,255,255,.48);
background: transparent;
color: #fff !important;
}

.gti-cta {
position: relative;
padding: clamp(88px,10vw,145px) 0;
background: linear-gradient(135deg,#6f1535,#c71952 60%,#ec3569);
color: #fff;
text-align: center;
overflow: hidden;
isolation: isolate;
}

.gti-cta__inner {
position: relative;
z-index: 2;
}

.gti-cta h2 {
color: #fff !important;
font-size: clamp(43px,5vw,72px) !important;
}

.gti-cta__inner > p:not(.gti-eyebrow) {
color: rgba(255,255,255,.82);
font-size: 18px;
}

.gti-cta .gti-eyebrow { color: #ffd0dc; }

.gti-cta__orb {
position: absolute;
z-index: 1;
border-radius: 50%;
opacity: .17;
background: #fff;
}

.gti-cta__orb–one {
width: 320px;
height: 320px;
left: -90px;
top: -140px;
}

.gti-cta__orb–two {
width: 440px;
height: 440px;
right: -170px;
bottom: -300px;
}

@media (max-width: 1024px) {
.gti-hero__copy { width: 66%; }

.gti-productgrid { grid-template-columns: repeat(3, 1fr); }
.gti-product:nth-child(n+7) { display: none; }

.gti-paths { grid-template-columns: repeat(2, 1fr); }

.gti-editorial__copy { padding: 58px 42px; }

.gti-smallcats { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 760px) {
.gti-shell { width: min(100% – 30px, 640px); }
.gti-section { padding: 74px 0; }

#gti-store h2 { font-size: clamp(35px,10vw,46px); }

.gti-hero {
min-height: auto;
padding-top: min(92vw, 480px);
align-items: end;
background: var(–gti-ink);
}

.gti-hero__image {
height: min(92vw, 480px);
object-position: 59% center;
}

.gti-hero__shade {
height: min(92vw, 480px);
background: linear-gradient(180deg,
rgba(36,23,30,.02) 25%,
rgba(36,23,30,.14) 56%,
rgba(36,23,30,.94) 91%,
var(–gti-ink) 100%);
}

.gti-hero__inner { padding: 18px 0 68px; }
.gti-hero__copy { width: 100%; }

#gti-store h1 {
font-size: clamp(52px,16vw,74px);
line-height: .9;
}

.gti-hero__lead { font-size: 17px; }

.gti-search {
grid-template-columns: 1fr auto;
border-radius: 18px;
}

.gti-search input { padding-inline: 13px; }
.gti-search button { padding-inline: 15px; }
.gti-search button svg { display: none; }

.gti-hero__proof {
display: grid;
grid-template-columns: 1fr;
gap: 7px;
}

.gti-trust-wrap { margin-top: -27px; }

.gti-trust { grid-template-columns: 1fr; }
.gti-trust article + article {
border-top: 1px solid var(–gti-line);
border-left: 0;
}

.gti-trust article {
min-height: 102px;
padding: 20px;
}

.gti-heading { margin-bottom: 34px; }

.gti-catgrid { grid-template-columns: 1fr; }

.gti-cat–hero { grid-column: auto; }

.gti-cat {
min-height: 174px;
grid-template-columns: auto 1fr;
gap: 16px;
padding: 23px;
}

.gti-cat__arrow { display: none; }
.gti-cat__icon { width: 57px; height: 57px; }
.gti-cat__icon svg { width: 37px; height: 37px; }
.gti-cat__copy strong { font-size: 25px; }
.gti-cat__number { top: 13px; right: 17px; }

.gti-smallcats { grid-template-columns: 1fr; }

.gti-products__head { display: block; }
.gti-products__head .gti-heading { margin-bottom: 16px; }

.gti-productgrid {
grid-template-columns: repeat(2,minmax(0,1fr));
gap: 11px;
}

.gti-product:nth-child(n+5) { display: none; }
.gti-product__body { padding: 14px; }
.gti-product__body h3 {
min-height: 61px;
font-size: 13px !important;
}

.gti-skeleton { min-height: 300px; }

.gti-editorial { grid-template-columns: 1fr; }
.gti-editorial__visual {
min-height: 67vw;
max-height: 500px;
}

.gti-editorial__visual img { object-position: 55% center; }

.gti-editorial__copy {
max-width: none;
padding: 60px 22px 72px;
}

.gti-editorial__cards { grid-template-columns: 1fr; }

.gti-paths { grid-template-columns: 1fr; }
.gti-paths article { min-height: 0; }
.gti-paths article > span { margin-bottom: 23px; }

.gti-faq__grid {
grid-template-columns: 1fr;
gap: 28px;
}

.gti-cta { padding: 80px 0; }
.gti-actions .gti-btn { flex: 1 1 220px; }
}

@media (max-width: 380px) {
.gti-shell { width: calc(100% – 24px); }
.gti-productgrid { grid-template-columns: 1fr; }
.gti-product:nth-child(n+4) { display: none; }
}

@media (prefers-reduced-motion: reduce) {
#gti-store *,
#gti-store *::before,
#gti-store *::after {
animation-duration: .01ms !important;
animation-iteration-count: 1 !important;
transition-duration: .01ms !important;
scroll-behavior: auto !important;
}
}

(function () {
«use strict»;

document.body.classList.add(«geishas-tienda-page»);

var root = document.getElementById(«gti-store»);
if (!root) return;

var grid = root.querySelector(«#gti-product-grid»);
var fallback = root.querySelector(«#gti-product-fallback»);
var tabs = Array.prototype.slice.call(root.querySelectorAll(«.gti-tabs button»));
var apiRoot = window.location.origin + «/wp-json/wc/store/v1»;
var categoryCache = null;
var productCache = {};

function escapeHTML(value) {
return String(value || «»).replace(/[&'»]/g, function (char) {
return {«&»:»&»,»»:»>»,»‘»:»'»,'»‘:»"»}[char];
});
}

function normalize(value) {
return String(value || «»)
.normalize(«NFD»)
.replace(/[\u0300-\u036f]/g, «»)
.toLowerCase()
.trim();
}

function getCategories() {
if (categoryCache) return Promise.resolve(categoryCache);

return Promise.all([
fetch(apiRoot + «/products/categories?per_page=100&page=1&hide_empty=true», {credentials:»same-origin»}),
fetch(apiRoot + «/products/categories?per_page=100&page=2&hide_empty=true», {credentials:»same-origin»}),
fetch(apiRoot + «/products/categories?per_page=100&page=3&hide_empty=true», {credentials:»same-origin»})
]).then(function (responses) {
return Promise.all(responses.map(function (response) {
if (!response.ok) return [];
return response.json();
}));
}).then(function (pages) {
categoryCache = pages.reduce(function (all, page) {
return all.concat(page);
}, []);
return categoryCache;
}).catch(function () {
categoryCache = [];
return categoryCache;
});
}

function findCategoryId(categories, wantedName) {
var wanted = normalize(wantedName);

var exact = categories.find(function (cat) {
return normalize(cat.name) === wanted;
});

if (exact) return exact.id;

var close = categories.find(function (cat) {
var current = normalize(cat.name);
return current.indexOf(wanted) !== -1 || wanted.indexOf(current) !== -1;
});

return close ? close.id : «»;
}

function formatPrice(product) {
if (!product.prices) return «Ver precio»;

var minor = Number(product.prices.currency_minor_unit || 2);
var amount = Number(product.prices.price || 0) / Math.pow(10, minor);

try {
return new Intl.NumberFormat(«es-ES», {
style: «currency»,
currency: product.prices.currency_code || «EUR»
}).format(amount);
} catch (e) {
return amount.toFixed(minor).replace(«.», «,») + » €»;
}
}

function renderProducts(products) {
if (!Array.isArray(products) || !products.length) {
throw new Error(«No products»);
}

grid.innerHTML = products.slice(0, 8).map(function (product) {
var image = product.images && product.images[0] ? product.images[0] : {};
var badge = product.on_sale ? ‘Oferta‘ : «»;

return ‘

‘;
}).join(«»);

grid.setAttribute(«aria-busy», «false»);
fallback.hidden = true;
}

function showFallback() {
grid.innerHTML = «»;
grid.setAttribute(«aria-busy», «false»);
fallback.hidden = false;
}

function skeleton() {
grid.setAttribute(«aria-busy», «true»);
fallback.hidden = true;
grid.innerHTML =

‘ +

‘ +

‘ +

‘;
}

function loadProducts(config) {
config = config || {mode:»popular»};

var categoryName = config.category || «»;
var mode = config.mode || «»;
var key = categoryName || mode || «popular»;

skeleton();

if (productCache[key]) {
renderProducts(productCache[key]);
return;
}

getCategories().then(function (categories) {
var params = new URLSearchParams({
per_page: «8»,
order: «desc»
});

if (categoryName) {
var categoryId = findCategoryId(categories, categoryName);
if (categoryId) params.set(«category», categoryId);
params.set(«orderby», «date»);
} else if (mode === «new») {
params.set(«orderby», «date»);
} else if (mode === «sale») {
params.set(«on_sale», «true»);
params.set(«orderby», «date»);
} else {
params.set(«orderby», «popularity»);
}

return fetch(apiRoot + «/products?» + params.toString(), {
credentials: «same-origin»
});
}).then(function (response) {
if (!response.ok) throw new Error(«Store API unavailable»);
return response.json();
}).then(function (products) {
productCache[key] = products;
renderProducts(products);
}).catch(showFallback);
}

tabs.forEach(function (tab) {
tab.addEventListener(«click», function () {
tabs.forEach(function (item) {
var active = item === tab;
item.classList.toggle(«is-active», active);
item.setAttribute(«aria-selected», active ? «true» : «false»);
});

loadProducts({
category: tab.getAttribute(«data-category») || «»,
mode: tab.getAttribute(«data-mode») || «»
});
});
});

loadProducts({mode:»popular»});

var details = Array.prototype.slice.call(root.querySelectorAll(«.gti-accordion details»));

details.forEach(function (item) {
item.addEventListener(«toggle», function () {
if (!item.open) return;

details.forEach(function (other) {
if (other !== item) other.open = false;
});
});
});

var schema = {
«@context»:»https://schema.org»,
«@graph»:[
{
«@type»:»CollectionPage»,
«@id»:window.location.href.split(«#»)[0] + «#webpage»,
«url»:window.location.href.split(«#»)[0],
«name»:»Tienda Geishas»,
«description»:»Catálogo de Geishas con juguetes sexuales, lencería, BDSM, bienestar sexual, juegos eróticos y preservativos.»,
«isPartOf»:{
«@type»:»WebSite»,
«@id»:window.location.origin + «/#website»,
«url»:window.location.origin + «/»,
«name»:»Geishas»
}
},
{
«@type»:»FAQPage»,
«mainEntity»:[
{
«@type»:»Question»,
«name»:»¿Cómo encuentro un producto si no sé cómo se llama?»,
«acceptedAnswer»:{
«@type»:»Answer»,
«text»:»Puedes empezar por una categoría o utilizar el buscador con palabras sencillas relacionadas con lo que buscas.»
}
},
{
«@type»:»Question»,
«name»:»¿Puedo visitar la tienda física antes de comprar?»,
«acceptedAnswer»:{
«@type»:»Answer»,
«text»:»Sí. Geishas tiene tienda física en avenida de Chayofita, 2, Edificio Simón B116, Los Cristianos, Tenerife.»
}
},
{
«@type»:»Question»,
«name»:»¿Hay productos para parejas?»,
«acceptedAnswer»:{
«@type»:»Answer»,
«text»:»Sí. Geishas dispone de juguetes para parejas, productos con control remoto, juegos y otros accesorios pensados para compartir.»
}
}
]
}
]
};

var schemaNode = document.createElement(«script»);
schemaNode.type = «application/ld+json»;
schemaNode.text = JSON.stringify(schema);
document.head.appendChild(schemaNode);
})();

Mostrando 1–24 de 303 resultados