{"id":196,"date":"2026-10-30T11:54:27","date_gmt":"2026-10-30T11:54:27","guid":{"rendered":"https:\/\/visitastech.com\/?page_id=196"},"modified":"2026-11-11T11:39:05","modified_gmt":"2026-11-11T11:39:05","slug":"196-2","status":"publish","type":"page","link":"https:\/\/visitastech.com\/","title":{"rendered":"VisitasTech"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"es\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n<title>VisitasTech \u00b7 Excursiones escolares en M\u00e1laga<\/title>\n<meta name=\"description\" content=\"Excursiones escolares tecnol\u00f3gicas y culturales en M\u00e1laga: rob\u00f3tica, programaci\u00f3n de videojuegos y visitas al Museo del Autom\u00f3vil y de la Moda.\">\n<link rel=\"icon\" href=\"https:\/\/imagecdn.123inventatuweb.com\/0d\/75\/0d752540-678a-4cbd-aa4e-b81956528b31.ico\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Rubik:wght@300;400;500;600;700&#038;display=swap\" rel=\"stylesheet\">\n\n<style>\n:root{\n  --red:#C70000;\n  --red-dark:#9a0000;\n  --red-soft:#fdecec;\n  --ink:#1b1b1f;\n  --muted:#5d5d66;\n  --line:#e6e6ea;\n  --bg:#fffafa;\n  --bg-alt:#fcefee;\n  --radius:14px;\n  --max:1180px;\n}\n*{box-sizing:border-box;margin:0;padding:0}\nhtml{scroll-behavior:smooth;scroll-padding-top:84px}\nbody{font-family:'Rubik',system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--ink);background:var(--bg);line-height:1.6;font-size:17px;-webkit-font-smoothing:antialiased}\nimg{max-width:100%;display:block}\na{color:inherit}\n.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}\n:focus-visible{outline:3px solid var(--red);outline-offset:3px;border-radius:4px}\n\n\/* Cabecera *\/\nheader{position:sticky;top:0;z-index:50;background:rgba(255,250,250,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}\n.bar{display:flex;align-items:center;justify-content:space-between;height:76px}\n.brand img{height:54px;width:auto}\nnav ul{display:flex;gap:6px;list-style:none;align-items:center}\nnav a{text-decoration:none;font-weight:500;font-size:15px;padding:10px 14px;border-radius:8px;color:var(--ink);transition:background .2s,color .2s}\nnav a:hover{background:var(--bg-alt);color:var(--red)}\nnav a.cta{background:var(--red);color:#fff;margin-left:8px}\nnav a.cta:hover{background:var(--red-dark);color:#fff}\n.burger{display:none;background:none;border:1px solid var(--line);border-radius:8px;width:44px;height:44px;cursor:pointer}\n.burger span{display:block;width:20px;height:2px;background:var(--ink);margin:4px auto;transition:transform .25s,opacity .2s}\n\n\/* Hero *\/\n.hero{padding:64px 0 72px;background:linear-gradient(180deg,var(--red-soft) 0,#fff 78%)}\n.hero-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:56px;align-items:center}\n.hero h1{font-size:clamp(34px,4.6vw,56px);line-height:1.08;font-weight:700;letter-spacing:-.02em}\n.hero h1 em{font-style:normal;color:var(--red)}\n.hero p.lead{margin:22px 0 32px;font-size:19px;color:var(--muted);max-width:30em}\n.btns{display:flex;flex-wrap:wrap;gap:12px}\n.btn{display:inline-block;text-decoration:none;font-weight:500;font-size:16px;padding:14px 26px;border-radius:10px;border:2px solid var(--red);transition:background .2s,color .2s,transform .2s;cursor:pointer;font-family:inherit}\n.btn-primary{background:var(--red);color:#fff}\n.btn-primary:hover{background:var(--red-dark);border-color:var(--red-dark)}\n.btn-ghost{background:transparent;color:var(--red)}\n.btn-ghost:hover{background:var(--red);color:#fff}\n\n\/* Slider *\/\n.slider{position:relative;border-radius:20px;overflow:hidden;box-shadow:0 24px 60px -24px rgba(120,0,0,.45);aspect-ratio:12\/5;background:#ddd}\n.slide{position:absolute;inset:0;opacity:0;transition:opacity .9s ease}\n.slide.on{opacity:1}\n.slide a{display:block;width:100%;height:100%}\n.slide:not(.on){pointer-events:none}\n.slide img{width:100%;height:100%;object-fit:cover}\n.s-btn{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:50%;border:none;background:rgba(255,255,255,.9);color:var(--ink);font-size:20px;cursor:pointer;display:grid;place-items:center;transition:background .2s,color .2s}\n.s-btn:hover{background:var(--red);color:#fff}\n.s-prev{left:14px}.s-next{right:14px}\n.dots{position:absolute;bottom:14px;left:0;right:0;display:flex;justify-content:center;gap:8px}\n.dots button{width:10px;height:10px;border-radius:50%;border:none;background:rgba(255,255,255,.6);cursor:pointer;padding:0}\n.dots button[aria-current=\"true\"]{background:var(--red);width:26px;border-radius:6px}\n\n\/* Datos clave *\/\n.facts{margin-top:-34px;position:relative;z-index:2}\n.facts-box{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 14px 40px -22px rgba(0,0,0,.25);display:grid;grid-template-columns:repeat(4,1fr)}\n.fact{padding:22px 24px;border-right:1px solid var(--line)}\n.fact:last-child{border-right:none}\n.fact b{display:block;font-size:19px;font-weight:600}\n.fact span{font-size:14px;color:var(--muted)}\n\n\/* Secciones *\/\nsection{padding:88px 0}\nbody{background-color:#fffafa;background-image:radial-gradient(900px 600px at 0 35%,rgba(199,0,0,.06),transparent 70%),radial-gradient(900px 600px at 100% 75%,rgba(199,0,0,.05),transparent 70%)}\nsection.alt{background:var(--bg-alt)}\n.head{max-width:640px;margin-bottom:44px}\n.head h2{font-size:clamp(28px,3.4vw,40px);line-height:1.15;font-weight:700;letter-spacing:-.015em}\n.head p{margin-top:12px;color:var(--muted)}\n.rule{width:56px;height:4px;background:var(--red);border-radius:2px;margin-bottom:18px}\n\n\/* Excursiones *\/\n.venues{display:grid;grid-template-columns:1fr 1fr;gap:24px}\n.venue{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:34px;display:flex;flex-direction:column;border-top:4px solid var(--red)}\n.venue h3{font-size:22px;font-weight:600;color:var(--red)}\n.price{margin:14px 0 4px;font-size:44px;font-weight:700;line-height:1}\n.price small{font-size:16px;font-weight:400;color:var(--muted)}\n.venue ul{list-style:none;margin-top:20px;border-top:1px solid var(--line)}\n.venue li{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);font-size:16px}\n.venue li span:first-child{color:var(--muted)}\n.venue li span:last-child{font-weight:500;text-align:right}\n.discount{margin-top:28px;display:grid;grid-template-columns:240px 1fr;gap:28px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px}\n.discount img{border-radius:10px;width:100%}\n.discount strong{font-size:19px;font-weight:600}\n.discount p{color:var(--muted);margin-top:6px}\n\n\/* Experiencias *\/\n.exp{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:center;margin-bottom:56px}\n.exp:last-child{margin-bottom:0}\n.exp.rev .exp-img{order:2}\n.exp-img{display:block;border-radius:18px;overflow:hidden;box-shadow:0 20px 50px -26px rgba(0,0,0,.5)}\n.exp-img img{width:100%;aspect-ratio:12\/5;object-fit:cover;transition:transform .5s}\n.exp-img:hover img{transform:scale(1.03)}\n.exp h3{font-size:26px;line-height:1.2;font-weight:600}\n.exp p{margin:14px 0 20px;color:var(--muted)}\n.tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}\n.tags span{background:var(--red-soft);color:var(--red-dark);font-size:14px;font-weight:500;padding:6px 14px;border-radius:99px}\n.link{color:var(--red);font-weight:500;text-decoration:none;border-bottom:2px solid transparent}\n.link:hover{border-color:var(--red)}\n\n\/* Reserva *\/\n.reserva{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:start}\n.reserva aside h2{font-size:clamp(28px,3.4vw,40px);line-height:1.15;font-weight:700}\n.reserva aside p{margin:14px 0 26px;color:var(--muted)}\n.contact-list{list-style:none;display:grid;gap:14px}\n.contact-list li{padding-left:16px;border-left:3px solid var(--red)}\n.contact-list b{display:block;font-weight:500;font-size:14px;color:var(--muted)}\nform{background:#fff;border:1px solid var(--line);border-radius:18px;padding:34px;box-shadow:0 20px 50px -30px rgba(0,0,0,.35)}\n.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}\n.field{display:flex;flex-direction:column;gap:6px;margin-bottom:18px}\n.field.full{grid-column:1\/-1}\nlabel{font-size:14px;font-weight:500}\ninput[type=text],input[type=email],input[type=tel],input[type=number],input[type=date],textarea,select{font:inherit;font-size:16px;padding:13px 14px;border:1.5px solid #d3d3da;border-radius:10px;background:#fff;color:var(--ink);transition:border-color .2s,box-shadow .2s;width:100%}\ntextarea{min-height:130px;resize:vertical}\nselect{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:44px;background:#fff url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='14' height='8' viewBox='0 0 14 8'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23C70000' stroke-width='2'\/%3E%3C\/svg%3E\") no-repeat right 16px center}\nselect:invalid{color:var(--muted)}\n.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}\nform.was-validated :is(input,select,textarea):invalid{border-color:var(--red);background-color:var(--red-soft)}\n.req{color:var(--red)}\n.hint{font-size:13px;color:var(--muted)}\ninput:focus,textarea:focus,select:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 4px rgba(199,0,0,.12)}\n.consent{display:flex;gap:12px;align-items:flex-start;font-size:14px;color:var(--muted);margin:4px 0 24px}\n.consent input{margin-top:4px;width:18px;height:18px;accent-color:var(--red);flex:none}\nform .btn{width:100%;font-size:17px}\n.status{margin-top:16px;font-size:15px;min-height:1.4em}\n.status.ok{color:#1c7a3a}.status.err{color:var(--red)}\n\n\/* Colaboradores *\/\n.logos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;max-width:900px;margin-inline:auto}\n.logo{background:#fff;border:1px solid var(--line);border-radius:var(--radius);height:150px;display:grid;place-items:center;padding:18px;transition:border-color .2s,box-shadow .2s}\n.logo:hover{border-color:var(--red);box-shadow:0 12px 30px -20px rgba(199,0,0,.6)}\n.logo img{max-height:110px;width:auto;object-fit:contain;filter:grayscale(1);opacity:.85;transition:filter .25s,opacity .25s}\n.logo:hover img{filter:none;opacity:1}\n\n\/* Pie *\/\nfooter{background:var(--ink);color:#d8d8de;padding:64px 0 28px}\n.f-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:36px}\nfooter h4{color:#fff;font-size:16px;font-weight:600;margin-bottom:14px;padding-bottom:10px;border-bottom:2px solid var(--red);display:inline-block}\nfooter p,footer a{font-size:15px;color:#c3c3cb;text-decoration:none;line-height:1.8}\nfooter a:hover{color:#fff}\n.soc{display:flex;gap:10px}\n.soc a{width:42px;height:42px;border-radius:50%;background:#2b2b31;display:grid;place-items:center;transition:background .2s}\n.soc a:hover{background:var(--red)}\n.soc svg{width:19px;height:19px;fill:#fff}\n.copy{margin-top:44px;padding-top:22px;border-top:1px solid #34343b;text-align:center;font-size:14px;color:#8d8d97}\n\n\/* Adaptaci\u00f3n *\/\n@media(max-width:960px){\n  .hero-grid,.reserva,.exp{grid-template-columns:1fr;gap:34px}\n  .exp.rev .exp-img{order:0}\n  .facts-box{grid-template-columns:1fr 1fr}\n  .fact:nth-child(2){border-right:none}\n  .fact:nth-child(-n+2){border-bottom:1px solid var(--line)}\n  .logos,.f-grid{grid-template-columns:1fr 1fr}\n  .venues{grid-template-columns:1fr}\n  .discount{grid-template-columns:1fr}\n  section{padding:68px 0}\n}\n@media(max-width:760px){\n  .burger{display:block}\n  nav{position:absolute;top:76px;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);display:none}\n  nav.open{display:block}\n  nav ul{flex-direction:column;align-items:stretch;padding:12px 24px 20px;gap:4px}\n  nav a{display:block}\n  nav a.cta{margin:8px 0 0;text-align:center}\n  .grid2{grid-template-columns:1fr;gap:0}\n  form{padding:24px}\n}\n@media(max-width:520px){\n  .logos,.f-grid,.facts-box{grid-template-columns:1fr}\n  .fact{border-right:none;border-bottom:1px solid var(--line)}\n  .fact:last-child{border-bottom:none}\n}\n@media(prefers-reduced-motion:reduce){\n  html{scroll-behavior:auto}\n  *{transition:none!important}\n}\n\n.exp-divider {\n  width: 100%;\n  height: 2px;\n  background-color: #e53935;\n  margin: 40px 0;\n}\n\n<\/style>\n<\/head>\n<body>\n\n<header>\n  <div class=\"wrap bar\">\n    <a class=\"brand\" href=\"#inicio\" aria-label=\"VisitasTech, inicio\">\n      <img decoding=\"async\" src=\"https:\/\/imagecdn.123inventatuweb.com\/33\/28\/3328c9c4-1a38-490b-a534-b5b3304d3946.png\" alt=\"VisitasTech\">\n    <\/a>\n\n    <button class=\"burger\" id=\"burger\" aria-label=\"Abrir men\u00fa\" aria-expanded=\"false\" aria-controls=\"menu\">\n      <span><\/span><span><\/span><span><\/span>\n    <\/button>\n\n    <nav id=\"menu\" aria-label=\"Principal\">\n      <ul>\n        <li><a href=\"#excursiones\">Informaci\u00f3n<\/a><\/li>\n        <li><a href=\"#experiencias\">Experiencias<\/a><\/li>\n        <li><a class=\"cta\" href=\"#reserva\">Reserva<\/a><\/li>\n      <\/ul>\n    <\/nav>\n  <\/div>\n<\/header>\n\n<main id=\"inicio\">\n\n  <!-- Portada -->\n  <div class=\"hero\">\n    <div class=\"wrap hero-grid\">\n      <div>\n        <h1>Excursiones escolares donde los alumnos <em>crean, programan y descubren<\/em><\/h1>\n        <p class=\"lead\">Jornadas de tecnolog\u00eda y cultura en M\u00e1laga para Infantil, Primaria y Secundaria. Rob\u00f3tica, videojuegos y visitas guiada al Museo del Autom\u00f3vil y de la Moda.<\/p>\n\n        <div class=\"btns\">\n          <a class=\"btn btn-primary\" href=\"#reserva\">Reservar excursi\u00f3n<\/a>\n          <a class=\"btn btn-ghost\" href=\"#experiencias\">Ver experiencias<\/a>\n        <\/div>\n      <\/div>\n\n      <div class=\"slider\" id=\"slider\" aria-roledescription=\"carrusel\" aria-label=\"Excursiones\">\n        <div class=\"slide on\">\n          <a href=\"https:\/\/visitastech.com\/?page_id=198\" aria-label=\"Ver Experiencia Tecnol\u00f3gica\">\n            <img decoding=\"async\" src=\"https:\/\/imagecdn.123inventatuweb.com\/22\/54\/2254e434-88a6-40db-8abb-e67d112f9350.jpg\" alt=\"Excursi\u00f3n tecnol\u00f3gica en el aulario IT Beworking\">\n          <\/a>\n        <\/div>\n        <div class=\"slide\">\n          <a href=\"https:\/\/visitastech.com\/?page_id=194\" aria-label=\"Ver Experiencia Tecnol\u00f3gica y Cultura\">\n            <img decoding=\"async\" src=\"https:\/\/imagecdn.123inventatuweb.com\/ec\/44\/ec449c58-79cc-4e5d-8bf1-3fb7eb5da319.jpg\" alt=\"Excursi\u00f3n al Museo del Autom\u00f3vil y de la Moda\" loading=\"lazy\">\n          <\/a>\n        <\/div>\n        <button class=\"s-btn s-prev\" aria-label=\"Anterior\">&#8249;<\/button>\n        <button class=\"s-btn s-next\" aria-label=\"Siguiente\">&#8250;<\/button>\n        <div class=\"dots\"><\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- Datos clave -->\n  <div class=\"facts\">\n    <div class=\"wrap\">\n      <div class=\"facts-box\">\n        <div class=\"fact\"><b>Lunes a viernes<\/b><span>De 10:00 a 13:00 h<\/span><\/div>\n        <div class=\"fact\"><b>Infantil, Primaria y Secundaria<\/b><span>Todas las etapas<\/span><\/div>\n        <div class=\"fact\"><b>Desde 11 \u20ac por estudiante<\/b><span>Seg\u00fan el lugar de la visita<\/span><\/div>\n        <div class=\"fact\"><b>Grupos de 20 a 60<\/b><span>M\u00e1ximo seg\u00fan la visita<\/span><\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- Excursiones e informaci\u00f3n -->\n  <section id=\"excursiones\">\n    <div class=\"wrap\">\n      <div class=\"head\">\n        <div class=\"rule\"><\/div>\n        <h2>Elige tu visita<\/h2>\n        <p>Dos lugares, mismo horario y la misma calidad educativa.<\/p>\n      <\/div>\n\n      <div class=\"venues\" id=\"informacion\">\n        <article class=\"venue\">\n          <a href=\"https:\/\/visitastech.com\/?page_id=194\">\n            <h3>Museo del Autom\u00f3vil y de la Moda<\/h3>\n          <\/a>\n          <div class=\"price\">12&nbsp;\u20ac <small>por estudiante<\/small><\/div>\n          <ul>\n            <li><span>D\u00edas<\/span><span>De lunes a viernes<\/span><\/li>\n            <li><span>Horario<\/span><span>10:00 a 13:00 h<\/span><\/li>\n            <li><span>Etapas<\/span><span>Infantil, Primaria y Secundaria<\/span><\/li>\n            <li><span>Grupo<\/span><span>M\u00ednimo 20 \/ M\u00e1ximo 50<\/span><\/li>\n          <\/ul>\n        <\/article>\n\n        <article class=\"venue\">\n          <a href=\"https:\/\/visitastech.com\/?page_id=198\">\n            <h3>Aulario IT Beworking<\/h3>\n          <\/a>\n          <div class=\"price\">11&nbsp;\u20ac <small>por estudiante<\/small><\/div>\n          <ul>\n            <li><span>D\u00edas<\/span><span>De lunes a viernes<\/span><\/li>\n            <li><span>Horario<\/span><span>10:00 a 13:00 h<\/span><\/li>\n            <li><span>Etapas<\/span><span>Infantil, Primaria y Secundaria<\/span><\/li>\n            <li><span>Grupo<\/span><span>M\u00ednimo 20 \/ M\u00e1ximo 60<\/span><\/li>\n          <\/ul>\n        <\/article>\n      <\/div>\n\n      \n    <\/div>\n  <\/section>\n\n  <!-- Experiencias -->\n  <section id=\"experiencias\" class=\"alt\">\n    <div class=\"wrap\">\n      <div class=\"head\">\n        <div class=\"rule\"><\/div>\n        <h2>Experiencias<\/h2>\n        <p>Elige el formato que mejor encaje con tu grupo.<\/p>\n      <\/div>\n\n      <!-- Enlace a Experiencia Tecnol\u00f3gica + Cultura -->\n      <div class=\"exp\">\n        <a class=\"exp-img\" href=\"https:\/\/visitastech.com\/?page_id=194\" aria-label=\"Ver Experiencia Tecnol\u00f3gica y Cultura\">\n          <img decoding=\"async\" src=\"https:\/\/imagecdn.123inventatuweb.com\/ec\/44\/ec449c58-79cc-4e5d-8bf1-3fb7eb5da319.jpg\" alt=\"Experiencia Tecnol\u00f3gica + Cultura\" loading=\"lazy\">\n        <\/a>\n\n        <div>\n          <h3>Experiencia Tecnol\u00f3gica + Visita Guiada<\/h3>\n          <p>Los alumnos participan en una actividad a elegir. La jornada se completa con una visita guiada al Museo del Autom\u00f3vil y de la Moda de M\u00e1laga, combinando tecnolog\u00eda creativa y cultura.<\/p>\n          <div class=\"tags\">\n            <span>Programaci\u00f3n de videojuegos<\/span>\n            <span>Rob\u00f3tica<\/span>\n            <span>Dibujo<\/span>\n          <\/div>\n          <a class=\"link\" href=\"https:\/\/visitastech.com\/?page_id=194\">Ver experiencia tecnol\u00f3gica + visita guiada \u2192<\/a>\n        <\/div>\n      <\/div>\n\n      <div class=\"exp-divider\"><\/div>\n\n      <!-- Enlace a Experiencia Tecnol\u00f3gica -->\n      <div class=\"exp rev\">\n        <a class=\"exp-img\" href=\"https:\/\/visitastech.com\/?page_id=198\" aria-label=\"Ver Experiencia Tecnol\u00f3gica\">\n          <img decoding=\"async\" src=\"https:\/\/imagecdn.123inventatuweb.com\/22\/54\/2254e434-88a6-40db-8abb-e67d112f9350.jpg\" alt=\"Experiencia Tecnol\u00f3gica\" loading=\"lazy\">\n        <\/a>\n\n        <div>\n          <h3>Experiencia Tecnol\u00f3gica<\/h3>\n          <p>Una jornada con dos actividades el mismo d\u00eda. Los grupos rotan para que todos disfruten de ambas experiencias.<\/p>\n          <div class=\"tags\">\n            <span>Rob\u00f3tica con LEGO \u00b7 1 h 15 min<\/span>\n            <span>Programaci\u00f3n de videojuegos \u00b7 1 h 15 min<\/span>\n            <span>Dibujo<\/span>\n          <\/div>\n          <a class=\"link\" href=\"https:\/\/visitastech.com\/?page_id=198\">Ver experiencia tecnol\u00f3gica \u2192<\/a>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- Reserva -->\n  <section id=\"reserva\">\n    <div class=\"wrap reserva\">\n      <aside>\n        <div class=\"rule\"><\/div>\n        <h2>Reserva tu excursi\u00f3n<\/h2>\n        <p>Rellena el formulario y nos pondremos en contacto contigo para cerrar fecha, actividad y n\u00famero de alumnos.<\/p>\n\n        <ul class=\"contact-list\">\n          <li><b>Tel\u00e9fono<\/b>695 592 211<\/li>\n          <li><b>Correo<\/b><a href=\"mailto:direccion@visitastech.com\">direccion@visitastech.com<\/a><\/li>\n          <li><b>Direcci\u00f3n<\/b>Avda. de los Guindos, 48 \u00b7 29004 M\u00e1laga<\/li>\n        <\/ul>\n      <\/aside>\n\n      <form id=\"reserva-form\" novalidate>\n        <div class=\"grid2\">\n          <div class=\"field\">\n            <label for=\"nombre\">Nombre <span class=\"req\">*<\/span><\/label>\n            <input type=\"text\" id=\"nombre\" name=\"nombre\" autocomplete=\"given-name\" required minlength=\"2\" maxlength=\"60\" data-msg=\"Escribe un nombre v\u00e1lido.\">\n          <\/div>\n          <div class=\"field\">\n            <label for=\"apellidos\">Apellidos <span class=\"req\">*<\/span><\/label>\n            <input type=\"text\" id=\"apellidos\" name=\"apellidos\" autocomplete=\"family-name\" required minlength=\"2\" maxlength=\"80\" data-msg=\"Escribe tus apellidos.\">\n          <\/div>\n          <div class=\"field\">\n            <label for=\"colegio\">Colegio o instituto <span class=\"req\">*<\/span><\/label>\n            <input type=\"text\" id=\"colegio\" name=\"colegio\" required minlength=\"3\" maxlength=\"120\" data-msg=\"Escribe el nombre del centro.\">\n          <\/div>\n          <div class=\"field\">\n            <label for=\"localidad\">Localidad <span class=\"req\">*<\/span><\/label>\n            <input type=\"text\" id=\"localidad\" name=\"localidad\" autocomplete=\"address-level2\" required minlength=\"2\" maxlength=\"80\" data-msg=\"Escribe la localidad.\">\n          <\/div>\n          <div class=\"field\">\n            <label for=\"telefono\">Tel\u00e9fono <span class=\"req\">*<\/span><\/label>\n            <input type=\"tel\" id=\"telefono\" name=\"telefono\" autocomplete=\"tel\" required inputmode=\"tel\" pattern=\"(\\+34|0034)?[\\s.\\-]?[6789]([\\s.\\-]?[0-9]){8}\" placeholder=\"600 000 000\" data-msg=\"Introduce un tel\u00e9fono espa\u00f1ol de 9 d\u00edgitos.\">\n          <\/div>\n          <div class=\"field\">\n            <label for=\"email\">Correo electr\u00f3nico <span class=\"req\">*<\/span><\/label>\n            <input type=\"email\" id=\"email\" name=\"email\" autocomplete=\"email\" required maxlength=\"100\" data-msg=\"Introduce un correo v\u00e1lido, por ejemplo nombre@colegio.es.\">\n          <\/div>\n          <div class=\"field full\">\n            <label for=\"experiencia\">Experiencia <span class=\"req\">*<\/span><\/label>\n            <select id=\"experiencia\" name=\"experiencia\" required>\n              <option value=\"\" selected disabled>Selecciona una experiencia<\/option>\n              <option value=\"museo\">Experiencia Tecnol\u00f3gica + Visita Guiada \u00b7 Museo (12 \u20ac)<\/option>\n              <option value=\"aulario\">Experiencia Tecnol\u00f3gica \u00b7 Aulario IT Beworking (11 \u20ac)<\/option>\n            <\/select>\n          <\/div>\n          <div class=\"field\">\n            <label for=\"etapa\">Nivel del grupo <span class=\"req\">*<\/span><\/label>\n            <select id=\"etapa\" name=\"etapa\" required>\n              <option value=\"\" selected disabled>Selecciona un nivel<\/option>\n              <option>1.\u00ba y 2.\u00ba Primaria<\/option>\n              <option>3.\u00ba y 4.\u00ba Primaria<\/option>\n              <option>5.\u00ba y 6.\u00ba Primaria<\/option>\n              <option>1.\u00ba y 2.\u00ba ESO<\/option>\n              <option>3.\u00ba y 4.\u00ba ESO<\/option>\n            <\/select>\n          <\/div>\n          <div class=\"field\">\n            <label for=\"alumnos\">N\u00famero de alumnos <span class=\"req\">*<\/span><\/label>\n            <input type=\"number\" id=\"alumnos\" name=\"alumnos\" required min=\"20\" max=\"60\" step=\"1\" inputmode=\"numeric\" placeholder=\"Entre 20 y 60\">\n          <\/div>\n          <div class=\"field full\">\n            <label for=\"fecha\">Fecha deseada <span class=\"req\">*<\/span><\/label>\n            <input type=\"date\" id=\"fecha\" name=\"fecha\" required>\n            <span class=\"hint\">De lunes a viernes. Nos pondremos en contacto para confirmarla.<\/span>\n          <\/div>\n          <div class=\"field full\">\n            <label for=\"mensaje\">Comentarios (opcional)<\/label>\n            <textarea id=\"mensaje\" name=\"mensaje\" maxlength=\"1500\" placeholder=\"Cu\u00e9ntanos cualquier detalle que debamos conocer\"><\/textarea>\n          <\/div>\n          <div class=\"hp\" aria-hidden=\"true\"><label>No rellenar<input type=\"text\" name=\"web\" tabindex=\"-1\" autocomplete=\"off\"><\/label><\/div>\n        <\/div>\n\n        <label class=\"consent\">\n          <input type=\"checkbox\" id=\"consent\" name=\"consentimiento\" value=\"1\" required>\n          <span>Doy mi consentimiento para que este sitio web almacene la informaci\u00f3n enviada para que puedan responder a mi consulta.<\/span>\n        <\/label>\n\n        <button class=\"btn btn-primary\" type=\"submit\">Enviar reserva<\/button>\n        <div class=\"status\" id=\"status\" role=\"status\" aria-live=\"polite\"><\/div>\n      <\/form>\n    <\/div>\n  <\/section>\n\n  <!-- Colaboradores -->\n  <section class=\"alt\">\n    <div class=\"wrap\">\n      <div class=\"head\">\n        <div class=\"rule\"><\/div>\n        <h2>Quienes lo hacemos posible<\/h2>\n      <\/div>\n\n      <div class=\"logos\">\n        <a class=\"logo\" href=\"https:\/\/educagamer.com\/\" target=\"_blank\" rel=\"noopener\" title=\"EducaGamer \u00b7 Cursos de programaci\u00f3n de videojuegos y arte digital\">\n          <img decoding=\"async\" src=\"https:\/\/imagecdn.123inventatuweb.com\/81\/35\/8135e357-d1ca-469b-a003-deb4402c7eff.jpg\" alt=\"EducaGamer\" loading=\"lazy\">\n        <\/a>\n        <div class=\"logo\">\n          <img decoding=\"async\" src=\"https:\/\/imagecdn.123inventatuweb.com\/32\/7d\/327d565f-7bc2-487f-ad54-3dd757720081.jpg\" alt=\"Entidad colaboradora\" loading=\"lazy\">\n        <\/div>\n        <div class=\"logo\">\n          <img decoding=\"async\" src=\"https:\/\/imagecdn.123inventatuweb.com\/36\/a9\/36a9060e-4f91-4af8-b4c3-733c9e79d85a.png\" alt=\"Entidad colaboradora\" loading=\"lazy\">\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n<\/main>\n\n<footer>\n  <div class=\"wrap\">\n    <div class=\"f-grid\">\n      <div>\n        <h4>Sobre nosotros<\/h4>\n        <p>Tel\u00e9fono de contacto<br>695 592 211<\/p>\n      <\/div>\n\n      <div>\n        <h4>Social<\/h4>\n        <div class=\"soc\">\n          <a href=\"https:\/\/www.facebook.com\/profile.php?id=61554758255307\" target=\"_blank\" rel=\"noopener\" aria-label=\"Facebook\">\n            <svg viewBox=\"0 0 24 24\"><path d=\"M13.5 22v-8.2h2.8l.5-3.3h-3.3V8.4c0-.9.4-1.7 1.8-1.7h1.6V3.8c-.3 0-1.3-.2-2.4-.2-2.5 0-4.1 1.5-4.1 4.2v2.7H7.6v3.3h2.8V22h3.1z\"\/><\/svg>\n          <\/a>\n          <a href=\"https:\/\/instagram.com\/visitastech\" target=\"_blank\" rel=\"noopener\" aria-label=\"Instagram\">\n            <svg viewBox=\"0 0 24 24\"><path d=\"M12 2.2c3.2 0 3.6 0 4.8.1 3.3.1 4.8 1.7 4.9 4.9.1 1.3.1 1.6.1 4.8s0 3.6-.1 4.8c-.1 3.2-1.7 4.8-4.9 4.9-1.3.1-1.6.1-4.8.1s-3.6 0-4.8-.1c-3.3-.1-4.8-1.7-4.9-4.9-.1-1.2-.1-1.6-.1-4.8s0-3.6.1-4.8C2.4 3.9 4 2.4 7.2 2.3c1.2-.1 1.6-.1 4.8-.1zm0 2c-3.1 0-3.5 0-4.7.1-2.1.1-3 1.1-3.1 3.1-.1 1.2-.1 1.6-.1 4.7s0 3.5.1 4.7c.1 2 1 3 3.1 3.1 1.2.1 1.6.1 4.7.1s3.5 0 4.7-.1c2.1-.1 3-1.1 3.1-3.1.1-1.2.1-1.6.1-4.7s0-3.5-.1-4.7c-.1-2-1-3-3.1-3.1-1.2-.1-1.6-.1-4.7-.1zm0 3.1a4.7 4.7 0 1 1 0 9.4 4.7 4.7 0 0 1 0-9.4zm0 1.9a2.8 2.8 0 1 0 0 5.6 2.8 2.8 0 0 0 0-5.6zm5-3.5a1.1 1.1 0 1 1 0 2.2 1.1 1.1 0 0 1 0-2.2z\"\/><\/svg>\n          <\/a>\n        <\/div>\n      <\/div>\n\n      <div>\n        <h4>Contacto<\/h4>\n        <p><a href=\"mailto:direccion@visitastech.com\">direccion@visitastech.com<\/a><\/p>\n      <\/div>\n\n      <div>\n        <h4>Direcci\u00f3n<\/h4>\n        <p>Avda. de los Guindos, 48<br>29004 M\u00e1laga, Espa\u00f1a<\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"copy\">\u00a9 Todos los derechos reservados \u00b7 VisitasTech<\/div>\n  <\/div>\n<\/footer>\n\n<script>\n\/* Men\u00fa m\u00f3vil *\/\nconst burger = document.getElementById('burger');\nconst menu = document.getElementById('menu');\n\nburger.addEventListener('click', () => {\n  const abierto = menu.classList.toggle('open');\n  burger.setAttribute('aria-expanded', abierto);\n});\n\nmenu.querySelectorAll('a').forEach(enlace => {\n  enlace.addEventListener('click', () => {\n    menu.classList.remove('open');\n    burger.setAttribute('aria-expanded', 'false');\n  });\n});\n\n\/* Carrusel *\/\n(function () {\n  const slider = document.getElementById('slider');\n  const slides = [...slider.querySelectorAll('.slide')];\n  const dots = slider.querySelector('.dots');\n  let indice = 0;\n  let temporizador;\n\n  slides.forEach((_, numero) => {\n    const boton = document.createElement('button');\n    boton.setAttribute('aria-label', 'Ir a la imagen ' + (numero + 1));\n    boton.onclick = () => {\n      mostrar(numero);\n      reiniciar();\n    };\n    dots.appendChild(boton);\n  });\n\n  function mostrar(numero) {\n    indice = (numero + slides.length) % slides.length;\n    slides.forEach((slide, i) => {\n      slide.classList.toggle('on', i === indice);\n    });\n    [...dots.children].forEach((boton, i) => {\n      boton.setAttribute('aria-current', i === indice ? 'true' : 'false');\n    });\n  }\n\n  function reiniciar() {\n    clearInterval(temporizador);\n    if (!matchMedia('(prefers-reduced-motion: reduce)').matches) {\n      temporizador = setInterval(() => mostrar(indice + 1), 5000);\n    }\n  }\n\n  slider.querySelector('.s-prev').onclick = () => {\n    mostrar(indice - 1);\n    reiniciar();\n  };\n\n  slider.querySelector('.s-next').onclick = () => {\n    mostrar(indice + 1);\n    reiniciar();\n  };\n\n  mostrar(0);\n  reiniciar();\n})();\n\n\/* Formulario de reserva (WordPress \u00b7 admin-ajax) *\/\nconst ENDPOINT = '\/wp-admin\/admin-ajax.php';\nconst form = document.getElementById('reserva-form');\nconst status = document.getElementById('status');\nconst expSel = document.getElementById('experiencia');\nconst alumnos = document.getElementById('alumnos');\nconst fecha = document.getElementById('fecha');\nconst boton = form.querySelector('button[type=submit]');\nconst MAX = { museo: 50, aulario: 60 };\n\nconst hoy = new Date();\nfecha.min = hoy.getFullYear() + '-' + String(hoy.getMonth() + 1).padStart(2, '0') + '-' + String(hoy.getDate()).padStart(2, '0');\n\nfunction ajustarAlumnos() {\n  const max = MAX[expSel.value] || 60;\n  alumnos.max = max;\n  alumnos.placeholder = 'Entre 20 y ' + max;\n}\nexpSel.addEventListener('change', ajustarAlumnos);\najustarAlumnos();\n\nfunction esFinde(valor) {\n  if (!valor) return false;\n  const d = new Date(valor + 'T00:00:00').getDay();\n  return d === 0 || d === 6;\n}\n\nform.addEventListener('invalid', e => {\n  const c = e.target;\n  if (c.validity.customError) return;\n  let msg = 'Revisa este campo.';\n  if (c.validity.valueMissing) msg = c.type === 'checkbox' ? 'Debes aceptar el consentimiento.' : 'Este campo es obligatorio.';\n  else if (c.validity.rangeUnderflow || c.validity.rangeOverflow) msg = 'El grupo debe ser de ' + c.min + ' a ' + c.max + ' alumnos.';\n  else if (c.validity.stepMismatch) msg = 'Introduce un n\u00famero entero.';\n  else if (c.dataset.msg) msg = c.dataset.msg;\n  else if (c.validity.rangeUnderflow) msg = 'Elige una fecha futura.';\n  c.setCustomValidity(msg);\n}, true);\n\nform.addEventListener('input', e => e.target.setCustomValidity(''));\nform.addEventListener('change', e => e.target.setCustomValidity(''));\n\nform.addEventListener('submit', async event => {\n  event.preventDefault();\n  status.className = 'status';\n  status.textContent = '';\n  form.querySelectorAll('input,select,textarea').forEach(c => c.setCustomValidity(''));\n\n  if (esFinde(fecha.value)) fecha.setCustomValidity('Elige un d\u00eda de lunes a viernes.');\n  if (fecha.validity.rangeUnderflow) fecha.setCustomValidity('Elige una fecha a partir de hoy.');\n\n  form.classList.add('was-validated');\n  if (!form.checkValidity()) {\n    form.reportValidity();\n    status.classList.add('err');\n    status.textContent = 'Revisa los campos marcados en rojo.';\n    return;\n  }\n\n  const datos = new FormData(form);\n  datos.append('action', 'visitastech_reserva');\n  boton.disabled = true;\n  boton.textContent = 'Enviando\u2026';\n\n  try {\n    const respuesta = await fetch(ENDPOINT, { method: 'POST', body: datos, credentials: 'same-origin' });\n    const json = await respuesta.json();\n    if (!json.success) throw new Error(json.data && json.data.message);\n    status.classList.add('ok');\n    status.textContent = 'Gracias, hemos recibido tu reserva. Te contactaremos en breve.';\n    form.reset();\n    form.classList.remove('was-validated');\n    ajustarAlumnos();\n  } catch (err) {\n    status.classList.add('err');\n    status.textContent = (err && err.message) ? err.message : 'No se pudo enviar. Int\u00e9ntalo de nuevo o ll\u00e1manos al 695 592 211.';\n  } finally {\n    boton.disabled = false;\n    boton.textContent = 'Enviar reserva';\n  }\n});\n<\/script>\n\n\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>VisitasTech \u00b7 Excursiones escolares en M\u00e1laga Informaci\u00f3n Experiencias Reserva Excursiones escolares donde los alumnos crean, programan y descubren Jornadas de tecnolog\u00eda y cultura en M\u00e1laga para Infantil, Primaria y Secundaria. Rob\u00f3tica, videojuegos y visitas guiada al Museo del Autom\u00f3vil y de la Moda. Reservar excursi\u00f3n Ver experiencias &#8249; &#8250; Lunes a viernesDe 10:00 a 13:00 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-196","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/visitastech.com\/index.php?rest_route=\/wp\/v2\/pages\/196","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/visitastech.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/visitastech.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/visitastech.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/visitastech.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=196"}],"version-history":[{"count":10,"href":"https:\/\/visitastech.com\/index.php?rest_route=\/wp\/v2\/pages\/196\/revisions"}],"predecessor-version":[{"id":230,"href":"https:\/\/visitastech.com\/index.php?rest_route=\/wp\/v2\/pages\/196\/revisions\/230"}],"wp:attachment":[{"href":"https:\/\/visitastech.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=196"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}