1<!doctype html> 2<html lang="en"> 3<head id="head"> 4 5 6 7 <meta charset="utf-8"> 8 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> 9 <meta name="robots" content="index, follow"> 10 <title> 11 12 Learn Spanish in Spain - Accredited Courses in Major Cities 13 </title> 14 <meta name="description" content="Specialists in teaching Spanish in Spain. Discover accredited courses in Madrid, Barcelona, Valencia, Malaga and much more. Experience total immersion with programmes tailored to your level and needs."> 15 <link rel="canonical" href="https://www.spanishcourseinspain.com/en/"> 16 17 18 19 20 <link rel="alternate" hreflang="es-ES" href="https://www.spanishcourseinspain.com/es/"> 21 22 23 24 25 26 <link rel="alternate" hreflang="en" href="https://www.spanishcourseinspain.com/en/"> 27 <link rel="alternate" hreflang="x-default" href="https://www.spanishcourseinspain.com/en/"> 28 29 30 31 32 33 <link rel="alternate" hreflang="pl-PL" href="https://www.spanishcourseinspain.com/pl/"> 34 35 36 37 38 39 <link rel="alternate" hreflang="it-IT" href="https://www.spanishcourseinspain.com/it/"> 40 41 42 43 44 45 <link rel="alternate" hreflang="nl-NL" href="https://www.spanishcourseinspain.com/nl/"> 46 47 48 49 50 51 <!-- Preconnect / DNS Prefetch --> 52 <link rel="preconnect" href="https://www.googletagmanager.com" crossorigin> 53 <link rel="dns-prefetch" href="https://www.googletagmanager.com"> 54 <link rel="preconnect" href="https://www.clarity.ms" crossorigin> 55 <link rel="dns-prefetch" href="https://www.clarity.ms"> 56 57 <!-- Favicons --> 58 <link rel="icon" href="/static/img/favicon.ico" type="image/x-icon"> 59 <link rel="apple-touch-icon" href="/static/img/favicon.png" sizes="192x192"> 60 61 <!-- Preload critical background image --> 62 <link rel="preload" as="image" href="/static/img/new_index/bg_header_home_opti.webp" type="image/webp"> 63 64 <!-- Fonts Preload (will be lazy-loaded by browser) --> 65 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap"> 66 <link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=Leckerli+One&display=swap"> 67 68 <!-- Bootstrap CSS - Deferred --> 69<link rel="preload" as="style" href="/static/css/bootstrap_home/css/bootstrap.min.css" onload="this.onload=null;this.rel='stylesheet'"> 70 71 72 <!-- Custom CSS --> 73 74 <link rel="stylesheet" href="/static/css/styles_remake/home/styles_index_remake.css"> 75 <link rel="stylesheet" href="/static/css/commons/commons_styles.css"> 76 <noscript> 77 <link rel="stylesheet" href="/static/css/styles_remake/home/styles_index_remake.css"> 78 <link rel="stylesheet" href="/static/css/commons/commons_styles.css"> 79 </noscript> 80 81 82 <!-- Google Tag Manager --> 83
83<script defer>
vendor: 368 bytes, lines 83-88
83 84 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 85 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 86 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 87 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 88 })(window,document,'script','dataLayer','
88GTM-WBVF25D
vendor: 8 bytes, lines 88-89
88'); 89
89</script>
89 90 91 <!-- Microsoft Clarity --> 92
92<script> 93 (function(c,l,a,r,i,t,y){ 94 c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; 95 t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; 96 y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); 97 })(window, document, "clarity", "script", "mfyplvv5v5"); 98 </script>
98 99</head> 100 101 <body class=""> 102 103 <!-- Google Tag Manager (noscript) -->
vendor: 97 bytes, lines 103-105
103 104 <noscript> 105 <iframe src="https://www.googletagmanager.com/ns.html?id=
105GTM-WBVF25D
vendor: 159 bytes, lines 105-114
105" 106 height="0" width="0" style="display:none;visibility:hidden"> 107 </iframe> 108 </noscript> 109 110 111 112 113 114
115<nav class="navbar navbar-expand-lg fixed-top bg-body-tertiary"> 116 <div class="container bg-body-tertiary"> 117 <a href="/en/" class="navbar-brand" style="cursor: pointer;"> 118 <img loading="lazy" alt="Logotipo Dencanto Community" width="100" height="100" src="/static/img/logos/dencanto-logo.svg"> 119 </a> 120 121 <button class="navbar-toggler collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#navbarTogglerDemo02"> 122 <span class="navbar-toggler-icon"></span> 123 </button> 124 125 <div class="collapse navbar-collapse" id="navbarTogglerDemo02"> 126 <ul id="nav-tag" class="ms-auto navbar-nav my-2 my-lg-0 menuDrop"> 127 128 <!-- ========================= 129 CURSOS 130 ========================== --> 131 <li class="nav-item dropdown position-static"> 132 <div class="d-flex align-items-center gap-1"> 133 <a class="nav-link menuItem" href="/en/spanish-courses-spain/"> 134 Courses 135 <img class="arrow" alt="Icono flecha" src="/static/img/icons/arrow.png"> 136 </a> 137 <button class="submenu-toggle d-lg-none" type="button" aria-expanded="false" aria-controls="coursesMenu"> 138 <img class="arrow" src="/static/img/icons/arrow.png" alt="Icono flecha"> 139 </button> 140 </div> 141 142 <ul id="coursesMenu" class="dropdown-menu mobile-collapsible" style="padding:0!important;"> 143 144 <li> 145 146 147 <div class="d-flex align-items-center justify-content-between pe-2"> 148 <a class="dropdown-item elementoSubdesplegable" href="/en/spanish-courses-spain/general/" style="white-space: normal;"> 149 General Spanish courses 150 <img class="arrow" alt="Icono flecha" src="/static/img/icons/arrow.png"> 151 </a> 152 <button class="submenu-toggle d-lg-none" type="button" aria-expanded="false" aria-controls="submenu-1"> 153 <img class="arrow" src="/static/img/icons/arrow.png" alt="Icono flecha"> 154 </button> 155 </div> 156 157 <ul id="submenu-1" class="submenu dropdown-menu mobile-collapsible" style="padding:0!important; margin-top:7px!important;"> 158 159 <li> 160 <a class="dropdown-item" href="/en/spanish-courses-spain/general/intensive/"> 161 Intensive Spanish Course 162 </a> 163 </li> 164 165 <li> 166 <a class="dropdown-item" href="/en/spanish-courses-spain/general/superintensive/"> 167 Super-intensive Spanish courses 168 </a> 169 </li> 170 171 <li> 172 <a class="dropdown-item" href="/en/spanish-courses-spain/general/semi-intensive/"> 173 Semi-intensive Spanish courses 174 </a> 175 </li> 176 177 <li> 178 <a class="dropdown-item" href="/en/spanish-courses-spain/general/extensive/"> 179 Spanish extensive course 180 </a> 181 </li> 182 183 <li> 184 <a class="dropdown-item" href="/en/spanish-courses-spain/general/private-lessons/"> 185 Private Spanish lessons 186 </a> 187 </li> 188 189 <li> 190 <a class="dropdown-item" href="/en/spanish-courses-spain/general/over-50/"> 191 Spanish course for 50+ learners 192 </a> 193 </li> 194 195 <li> 196 <a class="dropdown-item" href="/en/spanish-courses-spain/general/long-term/"> 197 Long term Spanish courses 198 </a> 199 </li> 200 201 </ul> 202 203 204 </li> 205 206 <li> 207 208 209 <div class="d-flex align-items-center justify-content-between pe-2"> 210 <a class="dropdown-item elementoSubdesplegable" href="/en/spanish-courses-spain/official-exams/" style="white-space: normal;"> 211 Preparatory courses for DELE, SIELE, CCSE and other official exams 212 <img class="arrow" alt="Icono flecha" src="/static/img/icons/arrow.png"> 213 </a> 214 <button class="submenu-toggle d-lg-none" type="button" aria-expanded="false" aria-controls="submenu-2"> 215 <img class="arrow" src="/static/img/icons/arrow.png" alt="Icono flecha"> 216 </button> 217 </div> 218 219 <ul id="submenu-2" class="submenu dropdown-menu mobile-collapsible" style="padding:0!important; margin-top:7px!important;"> 220 221 <li> 222 <a class="dropdown-item" href="/en/spanish-courses-spain/official-exams/dele/"> 223 DELE preparation courses 224 </a> 225 </li> 226 227 <li> 228 <a class="dropdown-item" href="/en/spanish-courses-spain/official-exams/siele/"> 229 SIELE preparatory courses 230 </a> 231 </li> 232 233 <li> 234 <a class="dropdown-item" href="/en/spanish-courses-spain/official-exams/ccse/"> 235 CCSE preparatory courses 236 </a> 237 </li> 238 239 <li> 240 <a class="dropdown-item" href="/en/spanish-courses-spain/official-exams/university-pathway/"> 241 University access courses 242 </a> 243 </li> 244 245 </ul> 246 247 248 </li> 249 250 <li> 251 252 253 <div class="d-flex align-items-center justify-content-between pe-2"> 254 <a class="dropdown-item elementoSubdesplegable" href="/en/spanish-courses-spain/spanish-teacher-training-ele/" style="white-space: normal;"> 255 ELE Teacher Training 256 <img class="arrow" alt="Icono flecha" src="/static/img/icons/arrow.png"> 257 </a> 258 <button class="submenu-toggle d-lg-none" type="button" aria-expanded="false" aria-controls="submenu-3"> 259 <img class="arrow" src="/static/img/icons/arrow.png" alt="Icono flecha"> 260 </button> 261 </div> 262 263 <ul id="submenu-3" class="submenu dropdown-menu mobile-collapsible" style="padding:0!important; margin-top:7px!important;"> 264 265 <li> 266 <a class="dropdown-item" href="/en/spanish-courses-spain/spanish-teacher-training-ele/non-native/"> 267 ELE training for non-native teachers 268 </a> 269 </li> 270 271 </ul> 272 273 274 </li> 275 276 <li> 277 278 279 <div class="d-flex align-items-center justify-content-between pe-2"> 280 <a class="dropdown-item elementoSubdesplegable" href="/en/spanish-courses-spain/summer-courses/" style="white-space: normal;"> 281 Summer Courses 282 <img class="arrow" alt="Icono flecha" src="/static/img/icons/arrow.png"> 283 </a> 284 <button class="submenu-toggle d-lg-none" type="button" aria-expanded="false" aria-controls="submenu-4"> 285 <img class="arrow" src="/static/img/icons/arrow.png" alt="Icono flecha"> 286 </button> 287 </div> 288 289 <ul id="submenu-4" class="submenu dropdown-menu mobile-collapsible" style="padding:0!important; margin-top:7px!important;"> 290 291 <li> 292 <a class="dropdown-item" href="/en/spanish-courses-spain/summer-courses/summer-camps/"> 293 Summer Camps 294 </a> 295 </li> 296 297 <li> 298 <a class="dropdown-item" href="/en/spanish-courses-spain/summer-courses/junior-programs/"> 299 Junior programs 300 </a> 301 </li> 302 303 </ul> 304 305 306 </li> 307 308 <li> 309 310 311 <div class="d-flex align-items-center justify-content-between pe-2"> 312 <a class="dropdown-item elementoSubdesplegable" href="/en/spanish-courses-spain/inthership/" style="white-space: normal;"> 313 Internships 314 <img class="arrow" alt="Icono flecha" src="/static/img/icons/arrow.png"> 315 </a> 316 <button class="submenu-toggle d-lg-none" type="button" aria-expanded="false" aria-controls="submenu-5"> 317 <img class="arrow" src="/static/img/icons/arrow.png" alt="Icono flecha"> 318 </button> 319 </div> 320 321 <ul id="submenu-5" class="submenu dropdown-menu mobile-collapsible" style="padding:0!important; margin-top:7px!important;"> 322 323 <li> 324 <a class="dropdown-item" href="/en/spanish-courses-spain/inthership/professional/"> 325 Professional interships 326 </a> 327 </li> 328 329 <li> 330 <a class="dropdown-item" href="/en/spanish-courses-spain/inthership/au-pair/"> 331 Au pair programmes 332 </a> 333 </li> 334 335 </ul> 336 337 338 </li> 339 340 <li> 341 342 343 <div class="d-flex align-items-center justify-content-between pe-2"> 344 <a class="dropdown-item elementoSubdesplegable" href="/en/spanish-courses-spain/thematic/" style="white-space: normal;"> 345 Themed Courses 346 <img class="arrow" alt="Icono flecha" src="/static/img/icons/arrow.png"> 347 </a> 348 <button class="submenu-toggle d-lg-none" type="button" aria-expanded="false" aria-controls="submenu-6"> 349 <img class="arrow" src="/static/img/icons/arrow.png" alt="Icono flecha"> 350 </button> 351 </div> 352 353 <ul id="submenu-6" class="submenu dropdown-menu mobile-collapsible" style="padding:0!important; margin-top:7px!important;"> 354 355 <li> 356 <a class="dropdown-item" href="/en/spanish-courses-spain/thematic/art/"> 357 Spanish course + Art 358 </a> 359 </li> 360 361 <li> 362 <a class="dropdown-item" href="/en/spanish-courses-spain/thematic/dance/"> 363 Spanish courses + dance/guitar lessons 364 </a> 365 </li> 366 367 <li> 368 <a class="dropdown-item" href="/en/spanish-courses-spain/thematic/sport/"> 369 Spanish + Sports Courses 370 </a> 371 </li> 372 373 <li> 374 <a class="dropdown-item" href="/en/spanish-courses-spain/thematic/hispanic-studies/"> 375 Spanish courses + Hispanic studies 376 </a> 377 </li> 378 379 <li> 380 <a class="dropdown-item" href="/en/spanish-courses-spain/thematic/gastronomy/"> 381 Spanish course + Gastronomy 382 </a> 383 </li> 384 385 <li> 386 <a class="dropdown-item" href="/en/spanish-courses-spain/thematic/professionals/"> 387 Spanish courses for professionals 388 </a> 389 </li> 390 391 </ul> 392 393 394 </li> 395 396 </ul> 397 </li> 398 399 <!-- ========================= 400 CIUDADES 401 ========================== --> 402 <li class="nav-item dropdown position-static"> 403 <div class="d-flex align-items-center gap-1"> 404 <a class="nav-link menuItem" href="/en/spanish-courses/"> 405 Locations 406 <img class="arrow" alt="Icono flecha" src="/static/img/icons/arrow.png"> 407 </a> 408 <button class="submenu-toggle d-lg-none" type="button" aria-expanded="false" aria-controls="citiesMenu"> 409 <img class="arrow" src="/static/img/icons/arrow.png" alt="Icono flecha"> 410 </button> 411 </div> 412 <ul id="citiesMenu" class="dropdown-menu mobile-collapsible" style="padding:0!important;"> 413 414 <li><a class="dropdown-item" href="/en/spanish-courses/alicante/">Alicante</a></li> 415 416 <li><a class="dropdown-item" href="/en/spanish-courses/barcelona/">Barcelona</a></li> 417 418 <li><a class="dropdown-item" href="/en/spanish-courses/benalmadena/">Benalmádena</a></li> 419 420 <li><a class="dropdown-item" href="/en/spanish-courses/cadiz/">Cádiz</a></li> 421 422 <li><a class="dropdown-item" href="/en/spanish-courses/granada/">Granada</a></li> 423 424 <li><a class="dropdown-item" href="/en/spanish-courses/madrid/">Madrid</a></li> 425 426 <li><a class="dropdown-item" href="/en/spanish-courses/malaga/">Malaga</a></li> 427 428 <li><a class="dropdown-item" href="/en/spanish-courses/marbella/">Marbella</a></li> 429 430 <li><a class="dropdown-item" href="/en/spanish-courses/salamanca/">Salamanca</a></li> 431 432 <li><a class="dropdown-item" href="/en/spanish-courses/san-sebastian/">San Sebastián</a></li> 433 434 <li><a class="dropdown-item" href="/en/spanish-courses/santiago-compostela/">Santiago de Compostela</a></li> 435 436 <li><a class="dropdown-item" href="/en/spanish-courses/seville/">Seville</a></li> 437 438 <li><a class="dropdown-item" href="/en/spanish-courses/tenerife/">Tenerife</a></li> 439 440 <li><a class="dropdown-item" href="/en/spanish-courses/valencia/">Valencia</a></li> 441 442 </ul> 443 </li> 444 445 <!-- ========================= 446 ESCUELAS 447 ========================== --> 448 <li class="nav-item dropdown position-static"> 449 <div class="d-flex align-items-center gap-1"> 450 <a class="nav-link menuItem" href="/en/spanish-schools-spain/"> 451 Schools 452 <img class="arrow" alt="Icono flecha" src="/static/img/icons/arrow.png"> 453 </a> 454
454 <button class="submenu-toggle d-lg-none" type="button" aria-expanded="false" aria-controls="schoolsMenu"> 455 <img class="arrow" src="/static/img/icons/arrow.png" alt="Icono flecha"> 456 </button> 457 </div> 458 <ul id="schoolsMenu" class="dropdown-menu mobile-collapsible" style="padding:0!important; max-height:500px; overflow-y:auto;"> 459 460 <li><a class="dropdown-item" href="/en/spanish-schools-spain/ail-barcelona/">AIL Barcelona</a></li> 461 462 <li><a class="dropdown-item" href="/en/spanish-schools-spain/Enfocamp-Barcelona-Playa/">Enfocamp Barcelona Beach</a></li> 463 464 <li><a class="dropdown-item" href="/en/spanish-schools-spain/enfocamp-malaga/">Enfocamp Málaga</a></li> 465 466 <li><a class="dropdown-item" href="/en/spanish-schools-spain/enfocamp-valencia/">Enfocamp Valencia</a></li> 467 468 <li><a class="dropdown-item" href="/en/spanish-schools-spain/enforex-malaga/">Enforex Málaga</a></li> 469 470 <li><a class="dropdown-item" href="/en/spanish-schools-spain/enforex-valencia/">Enforex Valencia</a></li> 471 472 <li><a class="dropdown-item" href="/en/spanish-schools-spain/espanole-international-house-valencia/">Españolé IH</a></li> 473 474 <li><a class="dropdown-item" href="/en/spanish-schools-spain/proyecto-espanol-alicante/">Proyecto Español Alicante</a></li> 475 476 <li><a class="dropdown-item" href="/en/spanish-schools-spain/ail-madrid/">AIL Madrid</a></li> 477 478 <li><a class="dropdown-item" href="/en/spanish-schools-spain/enfocamp-salamanca/">Enfocamp Salamanca</a></li> 479 480 <li><a class="dropdown-item" href="/en/spanish-schools-spain/enforex-barcelona/">Enforex Barcelona</a></li> 481 482 <li><a class="dropdown-item" href="/en/spanish-schools-spain/sevilla-enforex/">Enforex Sevilla</a></li> 483 484 <li><a class="dropdown-item" href="/en/spanish-schools-spain/instituto-andalusi/">Instituto AndalusÃ</a></li> 485 486 <li><a class="dropdown-item" href="/en/spanish-schools-spain/academia-iria-flavia/">Academia Iria Flavia</a></li> 487 488 <li><a class="dropdown-item" href="/en/spanish-schools-spain/don-quijote-salamanca/">Don Quijote Salamanca</a></li> 489 490 <li><a class="dropdown-item" href="/en/spanish-schools-spain/don-quijote-valencia/">Don Quijote Valencia</a></li> 491 492 <li><a class="dropdown-item" href="/en/spanish-schools-spain/enfocamp-madrid/">Enfocamp Madrid</a></li> 493 494 <li><a class="dropdown-item" href="/en/spanish-schools-spain/enfocamp-marbella-elviria/">Enfocamp Marbella Elviria</a></li> 495 496 <li><a class="dropdown-item" href="/en/spanish-schools-spain/enforex-granada/">Enforex Granada</a></li> 497 498 <li><a class="dropdown-item" href="/en/spanish-schools-spain/enforex-madrid/">Enforex Madrid</a></li> 499 500 <li><a class="dropdown-item" href="/en/spanish-schools-spain/enforex-marbella/">Enforex Marbella</a></li> 501 502 <li><a class="dropdown-item" href="/en/spanish-schools-spain/enforex-tenerife/">Enforex Tenerife</a></li> 503 504 <li><a class="dropdown-item" href="/en/spanish-schools-spain/escuela-montalban/">The Montalbán School</a></li> 505 506 <li><a class="dropdown-item" href="/en/spanish-schools-spain/lacunza/">Lacunza</a></li> 507 508 <li><a class="dropdown-item" href="/en/spanish-schools-spain/colegio-maravillas/">Maravillas</a></li> 509 510 <li><a class="dropdown-item" href="/en/spanish-schools-spain/proyecto-espanol-granada/">Proyecto Español Granada</a></li> 511 512 <li><a class="dropdown-item" href="/en/spanish-schools-spain/enfocamp-marbella-centro/">Enfocamp Marbella Centro</a></li> 513 514 <li><a class="dropdown-item" href="/en/spanish-schools-spain/k2-international/">K2 Internacional</a></li> 515 516 <li><a class="dropdown-item" href="/en/spanish-schools-spain/malaca-instituto/">Malaca Instituto</a></li> 517 518 <li><a class="dropdown-item" href="/en/spanish-schools-spain/sic-ivua/">Spanish in Cadiz</a></li> 519 520 </ul> 521 </li> 522 523 <!-- ========================= 524 RESTO DE ELEMENTOS 525 ========================== --> 526 <li class="nav-item"> 527 <a class="nav-link menuItem formacion_online" target="_blank" href="/en/spanish-courses-spain/online-courses/">Online courses</a> 528 </li> 529 <li class="nav-item"> 530 <a class="nav-link menuItem formacion_profesores" target="_blank" href="/en/spanish-courses-spain/teacher-training/" style="display:none">Spanish program for teacher training</a> 531 </li> 532 <li class="nav-item"> 533 <a class="nav-link menuItem grupos_organizados" target="_blank" href="/en/spanish-courses-spain/group-trips/">Organized group trips</a> 534 </li> 535 <li class="nav-item"> 536 <a class="nav-link menuItem grupos_organizados" target="_blank" href="/en/about-us/">About us</a> 537 </li> 538 539 <li class="nav-item last-nav-item"> 540 <button class="btn botonContacto openContact contact-button-course" style="font-size: 16px; background-color: #198754; border-color: #198754;">Contact us</button> 541 </li> 542 543 <!-- ======== SELECTOR DE IDIOMA (SIN CAMBIOS ESTRUCTURALES) ======== --> 544 <li class="nav-item dropdown position-static"> 545 <div class="d-flex align-items-center gap-1"> 546 547 548 <a class="nav-link menuItem" href="/en/"> 549 <img loading="lazy" width="18px" height="18px" 550 src="/static/img/icons/uk.png"> 551 EN 552 <img class="arrow" alt="Icono flecha" src="/static/img/icons/arrow.png"> 553 </a> 554 555 556 <!-- Botón flecha que abre/cierra en móvil --> 557 <button class="submenu-toggle d-lg-none" type="button" aria-expanded="false" aria-controls="langMenu"> 558 <img class="arrow" src="/static/img/icons/arrow.png" alt="Icono flecha"> 559 </button> 560 </div> 561 562 <!-- Menú idiomas --> 563 <ul id="langMenu" class="dropdown-menu mobile-collapsible" style="padding:0!important;min-width:5.5rem;"> 564 565 566 <a class="dropdown-item" href="https://www.spanishcourseinspain.com/es/"> 567 568 569 <img loading="lazy" width="18px" height="18px" src="/static/img/icons/es.png"> ES 570 571 </a> 572 573 <a class="dropdown-item" href="https://www.spanishcourseinspain.com/en/"> 574 575 576 <img loading="lazy" width="18px" height="18px" src="/static/img/icons/uk.png"> EN 577 578 </a> 579 580 <a class="dropdown-item" href="https://www.spanishcourseinspain.com/pl/"> 581 582 583 <img loading="lazy" width="18px" height="18px" src="/static/img/icons/pl.png"> PL 584 585 </a> 586 587 <a class="dropdown-item" href="https://www.spanishcourseinspain.com/it/"> 588 589 590 <img loading="lazy" width="18px" height="18px" src="/static/img/icons/it.png"> IT 591 592 </a> 593 594 <a class="dropdown-item" href="https://www.spanishcourseinspain.com/nl/"> 595 596 597 <img loading="lazy" width="18px" height="18px" src="/static/img/icons/nl.png"> NL 598 599 </a> 600 601 </ul> 602 </li> 603 604 </ul> 605 </div> 606 </div> 607</nav> 608 609 610<div class="chat-popup" id="myFormH"> 611 <div class="backgroundCover" style="background-color: #7070707d;"></div> 612 <nav> 613 <div class="nav nav-tabs" id="nav-tab" role="tablist" style="background-color: #dbdbdb; border-radius: 10px;"> 614 <a class="nav-link text-center active" id="nav-home-tab" data-bs-toggle="tab" href="#nav-home" role="tab" aria-controls="nav-home" aria-selected="true"> 615 <img loading="lazy" width="21px" height="21px" alt="Text box icon" src="/static/img/icons/phone.svg"> 616 </a> 617 618 <a class="nav-link text-center" id="nav-profile-tab" data-bs-toggle="tab" href="#nav-profile" role="tab" aria-controls="nav-profile" aria-selected="false"> 619 <img loading="lazy" width="21px" height="21px" alt="Text box icon" src="/static/img/icons/email.svg"> 620 </a> 621 </div> 622 </nav> 623 624 <div class="tab-content" id="nav-tabContent" style="padding:25px; background-color: #fff;"> 625 <div class="tab-pane fade show active" id="nav-home" role="tabpanel" aria-labelledby="nav-home-tab"> 626 <span class="contactStyle">DO YOU WANT US TO CALL YOU?</span> 627 628 <form class="mt-4" action="https://dencantocomm.my.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8" method="post" style="margin-left: 0px;">
629 <input type=hidden name="oid" value="00D7Q0000094QG2"> 630 631 632 <input type=hidden name="retURL" value="https://www.spanishcourseinspain.com/en/learn-spanish-spain/thank-you"> 633 634 635 636 <div class="contactForm"> 637 <div class="c-grid input-box active-grey"> 638 <label class="input-label" for="first_name" style="color: #676767;">Name</label> 639 <input class="input-1 rounded px-3 text-grey-darker" type="text" name="first_name" id="first_name" placeholder="Name*" required onfocus="setFocus(true)" onblur="setFocus(false)"> 640 </div> 641 <div class="c-grid input-box active-grey"> 642 <label class="input-label" for="phone" style="color: #676767;">Phone number</label> 643 <input class="input-1 rounded px-3 text-grey-darker" type="number" name="phone" id="phone" placeholder="Phone number*" required onfocus="setFocus(true)" onblur="setFocus(false)"> 644 </div> 645 <div class="c-grid input-box active-grey"> 646 <label class="input-label" for="email" style="color: #676767;">Email</label> 647 <input class="input-1 rounded px-3 text-grey-darker" type="email" name="email" id="email" placeholder="Email*" required onfocus="setFocus(true)" onblur="setFocus(false)"> 648 </div> 649 650 <div class="c-grid input-box active-grey"> 651 <label class="input-label" for="phone" style="color: #676767;">Hour</label> 652 <input class="input-1 rounded px-3 text-grey-darker" id="00NQD00000GTShF" name="00NQD00000GTShF" type="time" placeholder="Arrival date*" required onfocus="setFocus(true)" onblur="setFocus(false)"> 653 </div> 654 </div> 655 656 <div class="mt-25 c-grid c-center"> 657 <label class="block text-grey font-bold text-left"> 658 <input class="mr-2" type="checkbox" name="dencanto_terms" required> 659 <span class="text-sm checkOnline" style="font-size: 14px;"> 660 661 662 I have read and accepted the <a style="text-decoration: underline!important; color:#808080!important; font-wight:bold!important;" href="/en/legal-notice/" target="_blank">legal notice</a> and the <a style="text-decoration: underline!important; color:#808080!important; font-wight:bold!important;" href="/en/privacy-policy/" target="_blank"> privacy policy</a> 663 </span> 664 </label> 665 <!-- dia de llamada --> 666 <input id="00N7Q00000KU9pe" name="00N7Q00000KU9pe" size="12" type="text" hidden=""/> 667 <!-- Hora de llamada --> 668 <input id="00N7Q00000KU9pZ" maxlength="50" name="00N7Q00000KU9pZ" size="20" type="text" hidden=""/> 669 670 <select id="00N7Q00000D0K5s" name="00N7Q00000D0K5s" title="Idioma" hidden> 671 672 <option value="Ingles">Ingles</option> 673 674 675 676 </select> 677 <select id="00N7Q00000D0K5n" name="00N7Q00000D0K5n" title="Campaña" hidden> 678 679 </select> 680 <!-- Fuente --> 681 <select id="00N7Q00000D0K2t" name="00N7Q00000D0K2t" title="Fuente" hidden> 682 683 </select> 684 <!-- Google Analitics ID --> 685 <textarea id="00N7Q00000HRDJG" name="00N7Q00000HRDJG" class="ga_client_id" type="text" wrap="soft" hidden></textarea> 686 <!-- Gclid --> 687 <textarea id="00N7Q00000HSAxL" name="00N7Q00000HSAxL" class="gclid" type="text" wrap="soft" hidden></textarea> 688 <!-- fbclid --> 689 <textarea id="00N7Q00000HSAxQ" name="00N7Q00000HSAxQ" class="fbclid" type="text" wrap="soft" hidden></textarea> 690 <!-- url origen --> 691 <textarea id="00N7Q00000HSAxV" name="00N7Q00000HSAxV" rows="3" t
691ype="text" wrap="soft" hidden>/en/?utm_form=BookACallNav</textarea> 692 <div style="position: absolute; opacity: 0; height: 0; overflow: hidden;"> 693 <input type="text" name="website_url" id="website_url" 694 placeholder="Tu sitio web" 695 tabindex="-1" autocomplete="off"> 696 </div> 697 <button type="submit" onclick="Llamada();" id="contact-email-sender-call" class="btn btn-default contact-submit contact-input check-pass mt-3">Call Requested</button> 698 </div> 699 </form> 700 </div> 701 702 <div class="tab-pane fade" id="nav-profile" role="tabpanel" aria-labelledby="nav-profile-tab"> 703 <span class="contactStyle">IF YOU PREFER, SEND US A MESSAGE</span> 704 705 <form class="mt-4" action="https://dencantocomm.my.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8" method="post" style="margin-left: 0px;"> 706 <input type=hidden name="oid" value="00D7Q0000094QG2"> 707 708 709 <input type=hidden name="retURL" value="https://www.spanishcourseinspain.com/en/learn-spanish-spain/thank-you"> 710 711 712 713 <div class="contactForm"> 714 <div class="c-grid input-box active-grey"> 715 <label class="input-label" for="first_name" style="color: #676767;">Name</label> 716 <input class="input-1 rounded px-3 text-grey-darker" type="text" name="first_name" id="first_name" placeholder="Name*" required onfocus="setFocus(true)" onblur="setFocus(false)"> 717 </div> 718 <div class="c-grid input-box active-grey"> 719 <label class="input-label" for="email" style="color: #676767;">Email</label> 720 <input class="input-1 rounded px-3 text-grey-darker" type="email" name="email" id="email" placeholder="Email*" required onfocus="setFocus(true)" onblur="setFocus(false)"> 721 </div> 722 <div class="c-grid input-box active-grey"> 723 <label class="input-label" for="phone" style="color: #676767;">Phone number</label> 724 <input class="input-1 rounded px-3 text-grey-darker" type="number" name="phone" id="phone" placeholder="Phone number*" required onfocus="setFocus(true)" onblur="setFocus(false)"> 725 </div> 726 727 <div class="c-grid input-box active-grey"> 728 <label class="input-label" for="phone" style="color: #676767;">Message</label> 729 <textarea id="00N7Q00000D0K1W" name="00N7Q00000D0K1W" class="input-1 rounded px-3 text-grey-darker" rows="3" placeholder="Message" required onfocus="setFocus(true)" onblur="setFocus(false)"></textarea> 730 </div> 731 </div> 732 733 <div class="mt-25 c-grid c-center"> 734 <label class="block text-grey font-bold text-left"> 735 <input class="mr-2" type="checkbox" name="dencanto_terms" required> 736 <span class="text-sm checkOnline" style="font-size: 14px;"> 737 738 739 I have read and accepted the <a style="text-decoration: underline!important; color:#808080!important; font-wight:bold!important;" href="/en/legal-notice/" target="_blank">legal notice</a> and the <a style="text-decoration: underline!important; color:#808080!important; font-wight:bold!important;" href="/en/privacy-policy/" target="_blank"> privacy policy</a> 740 </span> 741 </label> 742 <!-- dia de llamada --> 743 <input id="00N7Q00000KU9pe" name="00N7Q00000KU9pe" size="12" type="text" hidden=""/> 744 <!-- Hora de llamada --> 745 <input id="00N7Q00000KU9pZ" maxlength="50" name="00N7Q00000KU9pZ" size="20" type="text" hidden=""/> 746 747 <select id="00N7Q00000D0K5s" name="00N7Q00000D0K5s" title="Idioma" hidden> 748 749 <option value="Ingles">Ingles</option> 750 751 752 753 </select> 754 <select id="00N7Q00000D0K5n" name="00N7Q00000D0K5n" title="Campaña" hidden> 755 756 </select> 757 <!-- Fuente --> 758 <select id="00N7Q00000D0K2t" name="00N7Q00000D0K2t" title="Fuente" hidden> 759 760 </select> 761 <!-- Google Analitics ID --> 762 <textarea id="00N7Q00000HRDJG" name="00N7Q00000HRDJG" class="ga_client_id" type="text" wrap="soft" hidden></textarea> 763 <!-- Gclid --> 764 <textarea id="00N7Q00000HSAxL" name="00N7Q00000HSAxL" class="gclid" type="text" wrap="soft" hidden></textarea> 765 <!-- fbclid --> 766 <textarea id="00N7Q00000HSAxQ" name="00N7Q00000HSAxQ" class="fbclid" type="text" wrap="soft" hidden></textarea> 767 <!-- url origen --> 768 <textarea id="00N7Q00000HSAxV" name="00N7Q00000HSAxV" rows="3" t
768ype="text" wrap="soft" hidden>/en/?utm_form=BookACall</textarea> 769 <div style="position: absolute; opacity: 0; height: 0; overflow: hidden;"> 770 <input type="text" name="website_url" id="website2_url" 771 placeholder="Tu sitio web" 772 tabindex="-1" autocomplete="off"> 773 </div> 774 <button type="submit" onclick="Mensaje();" id="contact-email-sender" class="btn btn-default contact-submit contact-input check-pass mt-3">Send</button> 775 </div> 776 </form> 777 </div> 778 </div> 779</div> 780
781<script> 782document.addEventListener('DOMContentLoaded', function () { 783 const toggles = document.querySelectorAll('.submenu-toggle'); 784 const navCollapse = document.getElementById('navbarTogglerDemo02'); 785 786 function isMobile() { 787 return window.matchMedia('(max-width: 991.98px)').matches; 788 } 789 790 function closeSiblings(button) { 791 const parentLi = button.closest('li'); 792 if (!parentLi) return; 793 const siblings = parentLi.parentElement.querySelectorAll('.dropdown-menu.mobile-collapsible.show'); 794 siblings.forEach(menu => { 795 const btn = document.querySelector('.submenu-toggle[aria-controls="' + menu.id + '"]'); 796 if (btn !== button) { 797 menu.classList.remove('show'); 798 if (btn) btn.setAttribute('aria-expanded', 'false'); 799 } 800 }); 801 } 802 803 toggles.forEach(btn => { 804 btn.addEventListener('click', function (e) { 805 if (!isMobile()) return; 806 e.preventDefault(); 807 e.stopPropagation(); // <-- evita cerrar padre 808 809 const targetId = btn.getAttribute('aria-controls'); 810 const menu = document.getElementById(targetId); 811 if (!menu) return; 812 813 const currentlyOpen = menu.classList.contains('show'); 814 closeSiblings(btn); 815 816 if (!currentlyOpen) { 817 menu.classList.add('show'); 818 btn.setAttribute('aria-expanded', 'true'); 819 } else { 820 menu.classList.remove('show'); 821 btn.setAttribute('aria-expanded', 'false'); 822 } 823 }); 824 }); 825 826 window.addEventListener('resize', function () { 827 if (!isMobile()) { 828 document.querySelectorAll('.dropdown-menu.mobile-collapsible').forEach(m => m.classList.remove('show')); 829 document.querySelectorAll('.submenu-toggle').forEach(b => b.setAttribute('aria-expanded', 'false')); 830 } 831 }); 832}); 833 // Añade esto después de tu código actual 834document.addEventListener('DOMContentLoaded', function() { 835 // Desconectar eventos conflictivos en los enlaces 836 document.querySelectorAll('#langMenu a, .dropdown-menu.mobile-collapsible a').forEach(link => { 837 // Clonar y reemplazar para limpiar eventos heredados 838 const newLink = link.cloneNode(true); 839 link.parentNode.replaceChild(newLink, link); 840 841 // Añadir listener limpio 842 newLink.addEventListener('click', function(e) { 843 if (window.innerWidth <= 991.98) { // Mismo breakpoint 844 e.stopImmediatePropagation(); // Previene que otros handlers interfieran 845 846 // Cerrar menús móviles antes de navegar 847 document.querySelectorAll('.dropdown-menu.mobile-collapsible.show').forEach(menu => { 848 menu.classList.remove('show'); 849 }); 850 document.querySelectorAll('.submenu-toggle[aria-expanded="true"]').forEach(btn => { 851 btn.setAttribute('aria-expanded', 'false'); 852 }); 853 854 // Navegar normalmente (no usar preventDefault) 855 // window.location.href = this.href; // Descomentar si no navega 856 } 857 }); 858 }); 859}); 860</script>
vendor: 1 bytes, line 860
860
861<script> 862document.querySelectorAll('form').forEach(function(form) { 863 form.addEventListener('submit', function(e) { 864 // Para el primer formulario 865 var trap1 = this.querySelector('#website_url'); 866 // Para el segundo formulario 867 var trap2 = this.querySelector('#website2_url'); 868 869 // Verificar cualquiera de los dos honeypots 870 if((trap1 && trap1.value.trim() !== '') || (trap2 && trap2.value.trim() !== '')) { 871 e.preventDefault(); 872 return false; 873 } 874 return true; 875 }); 876}); 877</script>
877 878 879 880<div class="main"> 881 882 883 884 885<section class="hero optimized-hero"> 886 <div class="container"> 887 <div class="row"> 888 <div class="image_header_index"> 889 <div class="box_header_1"> 890 <h1>Learn Spanish in Spain</h1> 891 <p class="header_text">Explore courses, schools and locations for your learning</p> 892 </div> 893 </div> 894 </div> 895 </div> 896 897<div class="container"> 898 <div class="row"> 899 <form id="advanced-search-form" action="/en/search-course/" method="GET"> 900 <div class="search-container"> 901 902 <div class="search-section search-left"> 903 <label for="id_city" class="search-title">Where do you intend to travel?</label> 904 <select name="city" gtm data-description="search-where" class="selectPC labelTexto" id="id_city"> 905 <option value="" selected>No preference</option> 906 907 <option value="15">Alicante</option> 908 909 <option value="8">Barcelona</option> 910 911 <option value="12">Benalmádena</option> 912 913 <option value="3">Cádiz</option> 914 915 <option value="2">Granada</option> 916 917 <option value="4">Madrid</option> 918 919 <option value="5">Malaga</option> 920 921 <option value="10">Marbella</option> 922 923 <option value="7">Salamanca</option> 924 925 <option value="13">San Sebastián</option> 926 927 <option value="25">Santiago de Compostela</option> 928 929 <option value="9">Seville</option> 930 931 <option value="28">Tenerife</option> 932 933 <option value="11">Valencia</option> 934 935</select> 936 </div> 937 938 <div class="vertical-separator hidden-1"></div> 939 940 <div class="search-section search-right"> 941 <label for="id_course_type" class="search-title">What do you want to learn?</label> 942 <select name="course_type" gtm data-description="search-type" class="selectPC labelTexto" id="id_course_type"> 943 <option value="" selected>No preference</option> 944 945 <optgroup label="General Spanish courses"> 946 <option value="3">Intensive Spanish Course</option> 947 948 <option value="2">Super-intensive Spanish courses</option> 949 950 <option value="4">Semi-intensive Spanish courses</option> 951 952 <option value="5">Spanish extensive course</option> 953 954 <option value="8">Private Spanish lessons</option> 955 956 <option value="6">Spanish course for 50+ learners</option> 957 958 <option value="7">Long term Spanish courses</option> 959 960 </optgroup> 961 <optgroup label="Preparatory courses for DELE, SIELE, CCSE and other official exams"> 962 <option value="10">DELE preparation courses</option> 963 964 <option value="11">SIELE preparatory courses</option> 965 966 <option value="13">CCSE preparatory courses</option> 967 968 <option value="12">University access courses</option> 969 970 </optgroup> 971 <optgroup label="ELE Teacher Training"> 972 <option value="22">ELE training for non-native teachers</option> 973 974 </optgroup> 975 <optgroup label="Summer Courses"> 976 <option value="19">Summer Camps</option> 977 978 <option value="20">Junior programs</option> 979 980 </optgroup> 981 <optgroup label="Internships"> 982 <option value="16">Professional interships</option> 983 984 <option value="17">Au pair programmes</option> 985 986 </optgroup> 987 <optgroup label="Themed Courses"> 988 <option value="26">Spanish course + Art</option> 989 990 <option value="25">Spanish courses + dance/guitar lessons</option> 991 992 <option value="24">Spanish + Sports Courses</option> 993 994 <option value="27">Spanish courses + Hispanic studies</option> 995 996 <option value="28">Spanish course + Gastronomy</option> 997 998 <option value="29">Spanish courses for professionals</option> 999 1000 </optgroup> 1001</select> 1002 </div> 1003 1004 <button id="submit_box" class="search-btn" type="submit"> 1005 <img src="/static/img/icons/iconoLupaBlanco.svg" alt="School icon" width="24" height="24"> 1006 </button> 1007 1008 </div> 1009 </form> 1010 <div class="text-center mt-3"> 1011 <button class="btn special-form-btn" data-bs-toggle="modal" data-bs-target="#experienceModal"> 1012 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-stars" viewBox="0 0 16 16"> 1013 <path d="M7.657 6.247c.11-.33.576-.33.686 0l.645 1.937a2.89 2.89 0 0 0 1.829 1.828l1.936.645c.33.11.33.576 0 .686l-1.937.645a2.89 2.89 0 0 0-1.828 1.829l-.645 1.936
1013a.361.361 0 0 1-.686 0l-.645-1.937a2.89 2.89 0 0 0-1.828-1.828l-1.937-.645a.361.361 0 0 1 0-.686l1.937-.645a2.89 2.89 0 0 0 1.828-1.828zM3.794 1.148a.217.217 0 0 1 .412 0l.387 1.162c.173.518.579.924 1.097 1.097l1.162.387a.217.217 0 0 1 0 .412l-1.162.387A1.73 1.73 0 0 0 4.593 5.69l-.387 1.162a.217.217 0 0 1-.412 0L3.407 5.69A1.73 1.73 0 0 0 2.31 4.593l-1.162-.387a.217.217 0 0 1 0-.412l1.162-.387A1.73 1.73 0 0 0 3.407 2.31zM10.863.099a.145.145 0 0 1 .274 0l.258.774c.115.346.386.617.732.732l.774.258a.145.145 0 0 1 0 .274l-.774.258a1.16 1.16 0 0 0-.732.732l-.258.774a.145.145 0 0 1-.274 0l-.258-.774a1.16 1.16 0 0 0-.732-.732L9.1 2.137a.145.145 0 0 1 0-.274l.774-.258c.346-.115.617-.386.732-.732z"/> 1014 </svg> 1015 Personalised requests 1016 </button> 1017 </div> 1018 </div> 1019</div> 1020</section> 1021 1022 1023 1024 1025 1026<div class="modal fade" id="experienceModal" tabindex="-1" aria-hidden="true" style="backdrop-filter: blur(10px);"> 1027 <div class="modal-dialog modal-dialog-centered modal-lg"> 1028 <div class="modal-content custom-modal-form"> 1029 1030 <!-- HEADER --> 1031 <div class="modal-header border-0 align-items-start"> 1032 <div class="text-header"> 1033 <h2 class="modal-title w-100 text-center fs-3 mb-2"> 1034 <span class="text-orange">Tell us what you need and we will design an exclusive programme just for you</span> 1035 <strong>with premium accommodation and unique cultural experiences</strong> 1036 </h2> 1037 </div> 1038 <button type="button" class="btn-close" data-bs-dismiss="modal"></button> 1039 </div> 1040 1041 <!-- BODY --> 1042 <div class="modal-body px-4"> 1043 <form id="experience-form" action="https://dencantocomm.my.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8" method="post"> 1044 <input type=hidden name="oid" value="00D7Q0000094QG2"> 1045 1046 1047 <input type=hidden name="retURL" value="https://www.spanishcourseinspain.com/en/learn-spanish-spain/thank-you"> 1048 1049 1050 1051 <div class="row g-3"> 1052 <div class="col-md-4"> 1053 <label for="first_name" class="form-label">Full name *</label> 1054 <input id="first_name" maxlength="40" name="first_name" size="20" type="text" class="form-control form-input input-special" placeholder="Full name" required> 1055 </div> 1056 1057 <div class="col-md-4"> 1058 <label for="email" class="form-label">Email *</label> 1059 <input id="email" maxlength="80" name="email" size="20" type="email" class="form-control form-input input-special" placeholder="Email" required> 1060 </div> 1061 1062 <div class="col-md-4"> 1063 <label for="phone" class="form-label">Phone number *</label> 1064 <input id="phone" maxlength="40" name="phone" size="20" type="text" class="form-control form-input input-special" placeholder="Telephone number" required> 1065 </div> 1066 1067 <div class="col-12 mt-3"> 1068 <label class="form-label">Describe what your ideal experience would be like</label> 1069 <textarea id="00N7Q00000D0K1W" name="00N7Q00000D0K1W" class="form-control form-textarea input-special" rows="6" type="text" wrap="soft" placeholder="Tell us what kind of city you are looking for, how long you want to study and what your goal is. Include as many details as you like!"></textarea> 1070 </div> 1071 </div> 1072 1073 <div class="text-end mt-4"> 1074 <div class="mb-4"> 1075 <label class="block text-grey font-bold text-left"> 1076 <input class="mr-2" id="00N7Q00000D0K1q" name="00N7Q00000D0K1q" type="checkbox" value="1" style="border: solid 1px red!important;"/> 1077 <span style="font-size: 12px; font-weight: 400; color: #8d8d8d;"> 1078 I wish to receive offers and information about the products and services from Dencanto Community. 1079 </span> 1080 </label> 1081 <div> 1082 <label class="block text-grey font-bold text-left"> 1083 <input class="mr-2" type="checkbox" name="" required>
1084 <span class="link_form" style="font-size: 12px; font-weight: 400; color: #8d8d8d;"> 1085 1086 1087 I read and accept the <a href="/en/legal-notice/" target="_blank">legal notice</a> and the <a href="/en/privacy-policy/" target="_blank">privacy policy</a> 1088 </span> 1089 </label> 1090 </div> 1091 </div> 1092 <!-- dia de llamada --> 1093 <input id="00N7Q00000KU9pe" name="00N7Q00000KU9pe" size="12" type="text" hidden=""/> 1094 <!-- Hora de llamada --> 1095 <input id="00N7Q00000KU9pZ" maxlength="50" name="00N7Q00000KU9pZ" size="20" type="text" hidden=""/> 1096 1097 <select id="00N7Q00000D0K5s" name="00N7Q00000D0K5s" title="Idioma" hidden> 1098 1099 <option value="Ingles">Ingles</option> 1100 1101 1102 1103 </select> 1104 <select id="00N7Q00000D0K5n" name="00N7Q00000D0K5n" title="Campaña" hidden> 1105 1106 </select> 1107 <!-- Fuente --> 1108 <select id="00N7Q00000D0K2t" name="00N7Q00000D0K2t" title="Fuente" hidden> 1109 1110 </select> 1111 <!-- Google Analitics ID --> 1112 <textarea id="00N7Q00000HRDJG" name="00N7Q00000HRDJG" class="ga_client_id" type="text" wrap="soft" hidden></textarea> 1113 <!-- Gclid --> 1114 <textarea id="00N7Q00000HSAxL" name="00N7Q00000HSAxL" class="gclid" type="text" wrap="soft" hidden></textarea> 1115 <!-- fbclid --> 1116 <textarea id="00N7Q00000HSAxQ" name="00N7Q00000HSAxQ" class="fbclid" type="text" wrap="soft" hidden></textarea> 1117 <!-- url origen --> 1118 <textarea id="00N7Q00000HSAxV" name="00N7Q00000HSAxV" rows="3" type="text" wrap="soft" hidden>/en/?utm_form=PersonalisedRequests</textarea> 1119 <div style="position: absolute; opacity: 0; height: 0; overflow: hidden;"> 1120 <input type="text" name="honey" id="honey" 1121 placeholder="Tu sitio web" 1122 tabindex="-1" autocomplete="off"> 1123 </div> 1124 <button type="submit" class="btn submit-btn experience-form-btn"> 1125 Make it happen 1126 </button> 1127 </div> 1128 </form> 1129 </div> 1130 </div> 1131 </div> 1132</div>
1133<script> 1134document.querySelectorAll('form').forEach(function(form) { 1135 form.addEventListener('submit', function(e) { 1136 // Para el primer formulario 1137 var trap3 = this.querySelector('#honey'); 1138 1139 // Verificar el honeypot 1140 if(trap3 && trap3.value.trim() !== '') { 1141 e.preventDefault(); 1142 return false; 1143 } 1144 return true; 1145 }); 1146}); 1147</script>
1147 1148
1149<script> 1150document.querySelectorAll('.search-section').forEach(section => { 1151 1152 const select = section.querySelector('select'); 1153 if (!select) return; 1154 1155 /* --- DISPLAY SUPERIOR --- */ 1156 const display = document.createElement('div'); 1157 display.classList.add('fake-select-display'); 1158 display.textContent = select.options[select.selectedIndex]?.textContent || "Selecciona..."; 1159 1160 section.insertBefore(display, select); 1161 1162 /* --- DROPDOWN CONTENEDOR --- */ 1163 const dropdown = document.createElement('div'); 1164 dropdown.classList.add('custom-dropdown'); 1165 1166 /* --- WRAPPER PARA EL SCROLL --- */ 1167 const scrollWrap = document.createElement('div'); 1168 scrollWrap.classList.add('dropdown-scroll'); 1169 dropdown.appendChild(scrollWrap); 1170 1171 /* RECORREMOS OPTIONS Y OPTGROUPS */ 1172 Array.from(select.children).forEach(child => { 1173 1174 if (child.tagName.toLowerCase() === "optgroup") { 1175 const groupTitle = document.createElement('div'); 1176 groupTitle.classList.add('dropdown-group-title'); 1177 groupTitle.textContent = child.label; 1178 scrollWrap.appendChild(groupTitle); 1179 1180 Array.from(child.children).forEach(opt => { 1181 const optionDiv = document.createElement('div'); 1182 optionDiv.classList.add('custom-option'); 1183 1184 // SOLO ICONO EN CITY (search-left) 1185 if (section.classList.contains("search-left")) { 1186 const icon = document.createElement('img'); 1187 icon.src = "/static/img/icons/location-icon.png"; 1188 icon.alt = "Location icon"; 1189 optionDiv.appendChild(icon); 1190 } 1191 1192 const text = document.createElement('span'); 1193 text.textContent = opt.textContent; 1194 1195 optionDiv.appendChild(text); 1196 1197 optionDiv.addEventListener('click', (e) => { 1198 e.stopPropagation(); // Prevenir propagación 1199 select.value = opt.value; 1200 display.textContent = opt.textContent; 1201 // Usar setTimeout para asegurar el cierre después de la selección 1202 setTimeout(() => { 1203 dropdown.classList.remove('active'); 1204 }, 10); 1205 }); 1206 1207 scrollWrap.appendChild(optionDiv); 1208 }); 1209 1210 } else { 1211 /* OPTION SUELTA */ 1212 const optionDiv = document.createElement('div'); 1213 optionDiv.classList.add('custom-option'); 1214 1215 if (section.classList.contains("search-left")) { 1216 const icon = document.createElement('img'); 1217 icon.src = "/static/img/icons/location-icon.png"; 1218 icon.alt = "Location icon"; 1219 optionDiv.appendChild(icon); 1220 } 1221 1222 const text = document.createElement('span'); 1223 text.textContent = child.textContent; 1224 optionDiv.appendChild(text); 1225 1226 optionDiv.addEventListener('click', (e) => { 1227 e.stopPropagation(); // Prevenir propagación 1228 select.value = child.value; 1229 display.textContent = child.textContent; 1230 // Usar setTimeout para asegurar el cierre después de la selección 1231 setTimeout(() => { 1232 dropdown.classList.remove('active'); 1233 }, 10); 1234 }); 1235 1236 scrollWrap.appendChild(optionDiv); 1237 } 1238 }); 1239 1240 section.appendChild(dropdown); 1241 1242 /* --- ABRIR/CERRAR DROPDOWN --- */ 1243 display.addEventListener('click', (e) => { 1244 e.stopPropagation(); 1245 1246 // Verificar si el dropdown ya está abierto 1247 const isAlreadyActive = dropdown.classList.contains('active'); 1248 1249 // Cerrar todos los dropdowns primero 1250 closeAllDropdowns(); 1251 1252 // Si no estaba abierto, abrirlo después de cerrar los demás 1253 if (!isAlreadyActive) { 1254 dropdown.classList.add('active'); 1255 } 1256 }); 1257}); 1258 1259/* --- FUNCIÃN PARA CERRAR TODOS LOS DROPDOWNS --- */ 1260function closeAllDropdowns() { 1261 document.querySelectorAll('.custom-dropdown').forEach(d => { 1262 d.classList.remove('active'); 1263 }); 1264} 1265 1266/* --- CERRAR AL CLICK FUERA --- */ 1267document.addEventListener('click', (e) => { 1268 // Solo cerrar si no se hizo click en un elemento del dropdown 1269 if (!e.target.closest('.search-section')) { 1270 closeAllDropdowns(); 1271 } 1272}); 1273 1274/* --- CERRAR AL CAMBIAR ORIENTACIÃN O TAMAÃO DE PANTALLA --- */ 1275window.addEventListener('resize', closeAllDropdowns); 1276window.addEventListener('orientationchange', closeAllDropdowns); 1277</script>
1277 1278 1279 1280 <div id="bg-mix"> 1281 1282 1283 1284 1285 1286 1287<section class="section-valor"> 1288 <div class="container"> 1289 <div class="row align-items-stretch"> 1290 1291 <div class="text-center mb-5"> 1292 <h2 class="fw-bold display-5">Why choose <span class='c-yellow'>Dencanto Community</span>?</h2> 1293 </div> 1294 1295 <!-- Left content --> 1296 <div class="col-lg-6 d-flex flex-column justify-content-center"> 1297 <h2 class="display-6 fw-bold mb-3"> 1298 The best international community to learn Spanish 1299 </h2> 1300 <p class="lead text-muted mb-4"> 1301 Access top schools and enjoy a complete experience within an international community designed to help you truly learn Spanish. 1302 </p> 1303 <div class="mb-5"> 1304 <a href="/en/design-experience/" target="_blank" class="btn mt-4 fw-bold" style="background: #ffc107; color: #fff; border: none; font-size: 1.1rem; padding: 15px 16px; border-radius: 0.5rem;">Iâd like a personalised quote</a> 1305 </div> 1306 <div class="row g-3"> 1307 <div class="col-4"> 1308 <div class="border-start border-primary border-3 ps-3"> 1309 <h3 class="h2 fw-bold mb-0">+30</h3> 1310 <p class="text-muted mb-0">Schools</p> 1311 </div> 1312 </div> 1313 <div class="col-4"> 1314 <div class="border-start border-primary border-3 ps-3"> 1315 <h3 class="h2 fw-bold mb-0">+300</h3> 1316 <p class="text-muted mb-0">Programs</p> 1317 </div> 1318 </div> 1319 <div class="col-4"> 1320 <div class="border-start border-primary border-3 ps-3"> 1321 <h3 class="h2 fw-bold mb-0">+2.000</h3> 1322 <p class="text-muted mb-0">Students</p> 1323 </div> 1324 </div> 1325 </div> 1326 </div> 1327 1328 <!-- Right video with YouTube facade --> 1329 <div class="col-lg-6 mt-4 mt-lg-0"> 1330 <div class="h-100"> 1331 <img src="/static/img/landing/valor-first.webp" alt="International community of students" class="img-fluid w-100 h-100 object-fit-cover rounded-4"> 1332 </div> 1333 </div> 1334 </div> 1335 </div> 1336</section> 1337 1338<section id="dencanto" class="py-5 section-wrapper"> 1339 <div class="container"> 1340 1341 <!-- Contenedor del grid/carrusel --> 1342 <div class="dencanto-container"> 1343 <div class="dencanto-grid" id="dencanto-grid"> 1344 1345 <!-- CARD 1: EXPERIENCIA PERSONALIZADA --> 1346 <div class="dencanto-item"> 1347 <div class="card-custom-valor h-100"> 1348 <div class="card-front"> 1349 <div class="card-icon-wrapper"> 1350 <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" class="card-icon" viewBox="0 0 16 16"> 1351 <path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/> 1352 <path d="M8 13A5 5 0 1 1 8 3a5 5 0 0 1 0 10m0 1A6 6 0 1 0 8 2a6 6 0 0 0 0 12"/> 1353 <path d="M8 11a3 3 0 1 1 0-6 3 3 0 0 1 0 6m0 1a4 4 0 1 0 0-8 4 4 0 0 0 0 8"/> 1354 <path d="M9.5 8a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0"/> 1355 </svg> 1356 </div> 1357 <h3 class="card-title">The best international community to learn Spanish</h3> 1358 <p class="card-text">More than choosing a school. Itâs about joining the international Spanish community.</p> 1359 <img src="/static/img/icons/valor-card-1.png" alt="illustration" class="card-illustration"> 1360 </div> 1361 <div class="card-back"> 1362 <ul class="feature-list"> 1363 <li>Educational programs that <b>combine culture and international life</b>.</li> 1364 <li>Carefully selected institutions integrated into the <b>Dencanto Community</b> ecosystem.</li> 1365 <li>An <b>international community</b> where you truly live the language.</li> 1366 </ul> 1367 </div> 1368 </div> 1369 </div> 1370 1371 <!-- CARD 2: STUDENT ADVISOR --> 1372 <div class="dencanto-item"> 1373 <div class="card-custom-valor h-100"> 1374 <div class="card-front"> 1375 <div class="card-icon-wrapper"> 1376 <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" class="card-icon" viewB
1376ox="0 0 16 16"> 1377 <path d="M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1zm5-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6"/> 1378 </svg> 1379 </div> 1380 <h3 class="card-title">A program truly designed for you</h3> 1381 <p class="card-text">Itâs not about choosing a course. Itâs about designing the right experience for you.</p> 1382 <img src="/static/img/icons/valor-card-2.png" alt="illustration" class="card-illustration"> 1383 </div> 1384 <div class="card-back"> 1385 <ul class="feature-list"> 1386 <li><b>We analyze your goals</b> to recommend the most complete educational experience.</li> 1387 <li>A Student Advisor who has lived your experience will <b>recommend the best option</b>.</li> 1388 <li>A proposal tailored to <b>your time and budget</b>.</li> 1389 </ul> 1390 </div> 1391 </div> 1392 </div> 1393 1394 <!-- CARD 3: ALOJAMIENTO Y SERVICIOS --> 1395 <div class="dencanto-item"> 1396 <div class="card-custom-valor h-100"> 1397 <div class="card-front"> 1398 <div class="card-icon-wrapper"> 1399 <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" class="card-icon" viewBox="0 0 16 16"> 1400 <path d="M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5"/> 1401 </svg> 1402 </div> 1403 <h3 class="card-title">More options than booking with a single school</h3> 1404 <p class="card-text">A school offers its own program. Dencanto helps you find the best one for you.</p> 1405 <img src="/static/img/icons/valor-card-3.png" alt="illustration" class="card-illustration"> 1406 </div> 1407 <div class="card-back"> 1408 <ul class="feature-list"> 1409 <li><b>30+ educational</b> institutions accredited by the Instituto Cervantes.</li> 1410 <li><b>20+ different destinations</b> across Spain.</li> 1411 <li><b>More options in accommodation and cultural activities</b> to choose from.</li> 1412 <li>We recommend <b>the best educational experience</b> beyond a single schoolâs fixed offer.</li> 1413 </ul> 1414 </div> 1415 </div> 1416 </div> 1417 1418 <!-- CARD 4: PREPARACIÃN ANTES DE VIAJAR --> 1419 <div class="dencanto-item"> 1420 <div class="card-custom-valor h-100"> 1421 <div class="card-front"> 1422 <div class="card-icon-wrapper"> 1423 <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" class="card-icon" viewBox="0 0 16 16"> 1424 <path d="M6.428 1.151C6.708.591 7.213 0 8 0s1.292.592 1.572 1.151C9.861 1.73 10 2.431 10 3v3.691l5.17 2.585a1.5 1.5 0 0 1 .83 1.342V12a.5.5 0 0 1-.582.493l-5.507-.918-.375 2.253 1.318 1.318A.5.5 0 0 1 10.5 16h-5a.5.5 0 0 1-.354-.854l1.319-1.318-.376-2.253-5.507.918A.5.5 0 0 1 0 12v-1.382a1.5 1.5 0 0 1 .83-1.342L6 6.691V3c0-.568.14-1.271.428-1.849"/> 1425 </svg> 1426 </div> 1427 <h3 class="card-title">Support before and during your experience</h3> 1428 <p class="card-text">Youâll have the support of your Student Advisor and the Dencanto team.</p> 1429 <img src="/static/img/icons/valor-card-4.png" alt="illustration" class="card-illustration"> 1430 </div> 1431 <div class="card-back"> 1432 <ul class="feature-list"> 1433 <li><b>Pre-travel onboarding</b> with your Student Advisor.</li> 1434 <li><b>Get your questions answered</b> and prepare your experience before traveling.</li> 1435 <li><b>Meet other students</b> before arriving at your destination.</li> 1436 </ul> 1437 </div> 1438 </div> 1439 </div> 1440 1441 <!-- CARD 5: FLEXIBILIDAD EN LOS PAGOS --> 1442 <div class="dencanto-item"> 1443 <div class="card-custom-valor h-100"> 1444 <div class="card-front"> 1445 <div class="card-icon-wrapper"> 1446 <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" class="card-icon" viewB
1446ox="0 0 16 16"> 1447 <path d="M0 5a5 5 0 0 0 4.027 4.905 6.5 6.5 0 0 1 .544-2.073C3.695 7.536 3.132 6.864 3 5.91h-.5v-.426h.466V5.05q-.001-.07.004-.135H2.5v-.427h.511C3.236 3.24 4.213 2.5 5.681 2.5c.316 0 .59.031.819.085v.733a3.5 3.5 0 0 0-.815-.082c-.919 0-1.538.466-1.734 1.252h1.917v.427h-1.98q-.004.07-.003.147v.422h1.983v.427H3.93c.118.602.468 1.03 1.005 1.229a6.5 6.5 0 0 1 4.97-3.113A5.002 5.002 0 0 0 0 5m16 5.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-7.75 1.322c.069.835.746 1.485 1.964 1.562V14h.54v-.62c1.259-.086 1.996-.74 1.996-1.69 0-.865-.563-1.31-1.57-1.54l-.426-.1V8.374c.54.06.884.347.966.745h.948c-.07-.804-.779-1.433-1.914-1.502V7h-.54v.629c-1.076.103-1.808.732-1.808 1.622 0 .787.544 1.288 1.45 1.493l.358.085v1.78c-.554-.08-.92-.376-1.003-.787zm1.96-1.895c-.532-.12-.82-.364-.82-.732 0-.41.311-.719.824-.809v1.54h-.005zm.622 1.044c.645.145.943.38.943.796 0 .474-.37.8-1.02.86v-1.674z"/> 1448 </svg> 1449 </div> 1450 <h3 class="card-title">Security for any unexpected situation</h3> 1451 <p class="card-text">Dencanto supports you during your experience at your destination if anything unexpected happens.</p> 1452 <img src="/static/img/icons/valor-card-5.png" alt="illustration" class="card-illustration"> 1453 </div> 1454 <div class="card-back"> 1455 <ul class="feature-list"> 1456 <li><b>Support with issues</b> related to your program.</li> 1457 <li>Coordination with <b>schools and accommodations</b>.</li> 1458 <li><b>A team backing you</b> so you can enjoy your experience with peace of mind.</li> 1459 </ul> 1460 </div> 1461 </div> 1462 </div> 1463 1464 <!-- CARD 6: MISMO PRECIO. MUCHO MÃS VALOR --> 1465 <div class="dencanto-item"> 1466 <div class="card-custom-valor h-100"> 1467 <div class="card-front"> 1468 <div class="card-icon-wrapper"> 1469 <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" class="card-icon" viewBox="0 0 16 16"> 1470 <path d="M3.612 15.443c-.386.198-.824-.149-.746-.592l.83-4.73L.173 6.765c-.329-.314-.158-.888.283-.95l4.898-.696L7.538.792c.197-.39.73-.39.927 0l2.184 4.327 4.898.696c.441.062.612.636.282.95l-3.522 3.356.83 4.73c.078.443-.36.79-.746.592L8 13.187l-4.389 2.256z"/> 1471 </svg> 1472 </div> 1473 <h3 class="card-title">Transparency and flexibility when booking</h3> 1474 <p class="card-text">Transparent prices, the same as booking directly with the school, and flexible installment payments.</p> 1475 <img src="/static/img/icons/valor-card-6.png" alt="illustration" class="card-illustration"> 1476 </div> 1477 <div class="card-back"> 1478 <ul class="feature-list"> 1479 <li><b>Transparent pricing with no extra fees</b> for managing your experience.</li> 1480 <li>Option to <b>pay in several installments</b>.</li> 1481 <li>We review our terms and conditions to <b>offer you the best deal; if you find a better offer, weâll match it</b>.</li> 1482 </ul> 1483 </div> 1484 </div> 1485 </div> 1486 </div> 1487 1488 <!-- Indicadores para móvil --> 1489 <div class="scroll-indicators-den"> 1490 <div class="scroll-dots-den"> 1491 <span class="dot-den active" data-index="0"></span> 1492 <span class="dot-den" data-index="1"></span> 1493 <span class="dot-den" data-index="2"></span> 1494 <span class="dot-den" data-index="3"></span> 1495 <span class="dot-den" data-index="4"></span> 1496 <span class="dot-den" data-index="5"></span> 1497 </div> 1498 </div> 1499 </div> 1500 1501 <div class="cta-section"> 1502 <div class="justify-content-center"> 1503 <div class="col-12"> 1504 <div class="cta-card"> 1505 <div class="row align-items-center"> 1506 <!-- Left content --> 1507 <div class="col-lg-7 mb-4 mb-lg-0"> 1508 <h2 class="display-6 fw-bold mb-3"> 1509 Spanish isnât just studied. <span class='c-yellow'>Itâs lived.</span> 1510 </h2> 1511 <p class="lead mb-0"> 1512 Discover how Dencanto Community can make your educational experience a reality. 1513 </p> 1514 </div> 1515 1516 <!-- Right button --> 1517 <div class="col-lg-5 text-lg-end"> 1518 <a href="/en/design-experience/" target="_blank" class="btn btn-primary btn-lg px-4 py-3"> 1519 Iâd like a personalised quote 1520 </a> 1521 </div> 1522 </div> 1523 </div> 1524 </div> 1525 </div> 1526 </div> 1527 </div> 1528</section> 1529
1530<script> 1531document.addEventListener('DOMContentLoaded', function() { 1532 // Elementos del DOM para Dencanto 1533 const dencantoGrid = document.getElementById('dencanto-grid'); 1534 const dotsDen = document.querySelectorAll('.dot-den'); 1535 1536 // Verificar que los elementos existen 1537 if (!dencantoGrid || dotsDen.length === 0) { 1538 console.error('No se encontraron los elementos necesarios para el carrusel'); 1539 return; 1540 } 1541 1542 // Estado 1543 let currentSlideDen = 0; 1544 let isScrolling = false; 1545 let scrollTimeout; 1546 const slideItemsDen = document.querySelectorAll('.dencanto-item'); 1547 const totalSlidesDen = slideItemsDen.length; 1548 1549 if (totalSlidesDen === 0) return; 1550 1551 // Variable para controlar si estamos en móvil 1552 let isMobileView = window.innerWidth < 768; 1553 1554 // ========== CONFIGURACIÃN DE VELOCIDAD DEL GIRO ========== 1555 const FLIP_SPEED = 800; // Velocidad en ms - Cambia este valor para controlar la velocidad del giro 1556 1557 // Aplicar velocidad a las tarjetas 1558 document.querySelectorAll('.dencanto-item').forEach(card => { 1559 const cardInner = card.querySelector('.card-custom-valor'); 1560 if (cardInner) { 1561 cardInner.style.transition = `transform ${FLIP_SPEED}ms cubic-bezier(0.4, 0, 0.2, 1)`; 1562 } 1563 }); 1564 1565 // ========== FUNCIÃN PARA CERRAR TODAS LAS TARJETAS VOLTEADAS ========== 1566 function closeAllFlippedCards() { 1567 document.querySelectorAll('.dencanto-item.flipped').forEach(flippedCard => { 1568 flippedCard.classList.remove('flipped'); 1569 }); 1570 } 1571 1572 // ========== FUNCIÃN PARA VOLTEAR TARJETA EN MÃVIL ========== 1573 function toggleCardFlip(card, event) { 1574 // Prevenir que el evento se propague al carrusel 1575 if (event) { 1576 event.stopPropagation(); 1577 } 1578 1579 // Si la tarjeta ya está volteada, la cerramos 1580 if (card.classList.contains('flipped')) { 1581 card.classList.remove('flipped'); 1582 } else { 1583 // Cerramos todas las demás tarjetas 1584 closeAllFlippedCards(); 1585 // Volteamos la tarjeta actual 1586 card.classList.add('flipped'); 1587 } 1588 } 1589 1590 // ========== ACTUALIZAR INDICADORES ========== 1591 function updateIndicators() { 1592 dotsDen.forEach((dot, index) => { 1593 if (index === currentSlideDen) { 1594 dot.classList.add('active'); 1595 } else { 1596 dot.classList.remove('active'); 1597 } 1598 }); 1599 } 1600 1601 // ========== DESPLAZAR A SLIDE ESPECÃFICO ========== 1602 function scrollToSlide(index, smooth = true) { 1603 if (index < 0) index = 0; 1604 if (index >= totalSlidesDen) index = totalSlidesDen - 1; 1605 1606 if (index === currentSlideDen) return; 1607 1608 currentSlideDen = index; 1609 1610 // Calcular posición de scroll 1611 const slideWidth = slideItemsDen[0].offsetWidth + 1612 parseInt(window.getComputedStyle(dencantoGrid).gap || 16); 1613 const scrollPosition = index * slideWidth; 1614 1615 dencantoGrid.scrollTo({ 1616 left: scrollPosition, 1617 behavior: smooth ? 'smooth' : 'auto' 1618 }); 1619 1620 updateIndicators(); 1621 1622 // Al hacer scroll programático, cerrar todas las tarjetas volteadas 1623 closeAllFlippedCards(); 1624 } 1625 1626 // ========== CARRUSEL MÃVIL DENCANTO ========== 1627 function initDencantoCarousel() { 1628 // Asegurar que el grid tenga el comportamiento correcto 1629 dencantoGrid.style.overflowX = 'auto'; 1630 dencantoGrid.style.scrollSnapType = 'x mandatory'; 1631 dencantoGrid.style.scrollBehavior = 'smooth'; 1632 1633 // Detectar scroll para actualizar indicadores 1634 dencantoGrid.addEventListener('scroll', function() { 1635 if (isScrolling) return; 1636 1637 clearTimeout(scrollTimeout); 1638 scrollTimeout = setTimeout(() => { 1639 const scrollPos = dencantoGrid.scrollLeft; 1640 const slideWidth = slideItemsDen[0].offsetWidth + 1641 parseInt(window.getComputedStyle(dencantoGrid).gap || 16); 1642 1643 // Calcular el Ãndice actual basado en la posición de scroll 1644 let newIndex = Math.round(scrollPos / slideWidth); 1645 newIndex = Math.min(Math.max(0, newIndex), totalSlidesDen - 1); 1646 1647 if (newIndex !== currentSlideDen) { 1648 currentSlideDen = newIndex; 1649 updateIndicators(); 1650 // Cerrar tarjetas al hacer scroll 1651 closeAllFlippedCards(); 1652 } 1653 }, 50); 1654 }); 1655 } 1656 1657 // ========== CONFIGURAR EVENTOS DE CLIC EN TARJETAS PARA MÃVIL ========== 1658 function setupMobileCardClicks() { 1659 const cards = document.querySelectorAll('.dencanto-item'); 1660 1661 cards.forEach(card => { 1662 // Remover event listener anterior si existe 1663 card.removeEventListener('click', cardClickHandler); 1664 // Agregar nuevo event listener 1665 card.addEventListener('click', cardClickHandler); 1666 }); 1667 } 1668 1669 function cardClickHandler(e) { 1670 // Prevenir que el evento se propague al grid 1671 e.stopPropagation(); 1672 toggleCardFlip(this, e); 1673 } 1674 1675 // ========== CONFIGURAR DOTS ========== 1676 function setupDots() {
1677 dotsDen.forEach((dot, index) => { 1678 // Remover event listener anterior 1679 dot.removeEventListener('click', dotClickHandler); 1680 // Agregar nuevo event listener 1681 dot.addEventListener('click', dotClickHandler); 1682 dot.setAttribute('data-index', index); 1683 }); 1684 } 1685 1686 function dotClickHandler(e) { 1687 e.stopPropagation(); 1688 const slideIndex = parseInt(this.getAttribute('data-index')); 1689 if (!isNaN(slideIndex)) { 1690 scrollToSlide(slideIndex, true); 1691 } 1692 } 1693 1694 // ========== RESPONSIVE ========== 1695 function handleDencantoResponsive() { 1696 const wasMobile = isMobileView; 1697 isMobileView = window.innerWidth < 768; 1698 1699 if (isMobileView) { 1700 // Modo móvil 1701 dencantoGrid.style.overflowX = 'auto'; 1702 dencantoGrid.style.scrollSnapType = 'x mandatory'; 1703 dencantoGrid.style.display = 'flex'; 1704 dencantoGrid.style.gridTemplateColumns = 'none'; 1705 1706 // Inicializar carrusel si es necesario 1707 if (!dencantoGrid.dataset.carouselInitialized || dencantoGrid.dataset.carouselInitialized === 'false') { 1708 initDencantoCarousel(); 1709 dencantoGrid.dataset.carouselInitialized = 'true'; 1710 } 1711 1712 // Configurar clics en tarjetas 1713 setupMobileCardClicks(); 1714 setupDots(); 1715 1716 // Asegurar que el scroll mantenga la posición actual 1717 const slideWidth = slideItemsDen[0]?.offsetWidth + 1718 parseInt(window.getComputedStyle(dencantoGrid).gap || 16) || 0; 1719 const targetScroll = currentSlideDen * slideWidth; 1720 if (dencantoGrid.scrollLeft !== targetScroll) { 1721 dencantoGrid.scrollLeft = targetScroll; 1722 } 1723 1724 } else { 1725 // Modo escritorio 1726 dencantoGrid.style.overflowX = 'visible'; 1727 dencantoGrid.style.scrollSnapType = 'none'; 1728 dencantoGrid.style.display = 'grid'; 1729 dencantoGrid.style.gridTemplateColumns = 'repeat(3, 1fr)'; 1730 dencantoGrid.dataset.carouselInitialized = 'false'; 1731 1732 // Cerrar todas las tarjetas volteadas 1733 closeAllFlippedCards(); 1734 } 1735 } 1736 1737 // Inicializar 1738 handleDencantoResponsive(); 1739 1740 // Manejar resize sin perder posición 1741 let resizeTimeoutDen; 1742 window.addEventListener('resize', function() { 1743 clearTimeout(resizeTimeoutDen); 1744 resizeTimeoutDen = setTimeout(() => { 1745 const previousSlide = currentSlideDen; 1746 handleDencantoResponsive(); 1747 // Restaurar la posición después del resize 1748 setTimeout(() => { 1749 if (isMobileView) { 1750 const slideWidth = slideItemsDen[0]?.offsetWidth + 1751 parseInt(window.getComputedStyle(dencantoGrid).gap || 16) || 0; 1752 dencantoGrid.scrollLeft = previousSlide * slideWidth; 1753 } 1754 }, 100); 1755 }, 250); 1756 }); 1757 1758 // Cerrar tarjeta volteada si se hace clic fuera de ella (solo móvil) 1759 function closeFlippedCardOnOutsideClick(e) { 1760 if (isMobileView) { 1761 const clickedElement = e.target; 1762 const isCard = clickedElement.closest('.dencanto-item'); 1763 const isDot = clickedElement.closest('.dot-den'); 1764 1765 // Si no se hizo clic en una tarjeta, cerrar todas 1766 if (!isCard && !isDot) { 1767 closeAllFlippedCards(); 1768 } 1769 } 1770 } 1771 1772 document.addEventListener('click', closeFlippedCardOnOutsideClick); 1773}); 1774</script>
1774 1775 </div> 1776 1777 1778 1779 1780 1781 1782 1783<section id="cities_home" class="py-5"> 1784 <div id="ancla_cities" class="container"> 1785 <div class="row"> 1786 Cities where you can study <b style="color: #F3B607;">Spanish in Spain</b> <p class="fs-5">Choose a location to see the Spanish courses offered there</p> 1787 1788 1789 1790 1791 1792 1793 1794<div class="carousel-container-destinations"> 1795 <button class="carousel-btn prev" id="prevBtn">â¹</button> 1796 1797 <div class="carousel-destinations" id="carouselDestinations"> 1798 1799 1800 <a 1801 class="link_destination card" 1802 type="button" 1803 href="/en/spanish-courses/alicante/" 1804 style="background-image:url('/media/public/cache/6f/6a/6f6a4149f6ccdf4cb5fb63d89f59603c.jpg'); background-size:cover; background-position:center;" 1805 > 1806 <div class="overflow-hidden"> 1807 <p>Alicante</p> 1808 1809 <span class="claim">Sun, Beaches and Historic Castles</span> 1810 1811 <div class="box_background"></div> 1812 </div> 1813 </a> 1814 1815 1816 1817 <a 1818 class="link_destination card" 1819 type="button" 1820 href="/en/spanish-courses/barcelona/" 1821 style="background-image:url('/media/public/cache/f8/cc/f8ccd5f3de3003a09d12f8308e5fca18.jpg'); background-size:cover; background-position:center;" 1822 > 1823 <div class="overflow-hidden"> 1824 <p>Barcelona</p> 1825 1826 <span class="claim">Avant-garde, paella and the Mediterranean</span> 1827 1828 <div class="box_background"></div> 1829 </div> 1830 </a> 1831 1832 1833 1834 <a 1835 class="link_destination card" 1836 type="button" 1837 href="/en/spanish-courses/benalmadena/" 1838 style="background-image:url('/media/public/cache/98/08/9808f65ef13786265c205bc6e59e8ccb.jpg'); background-size:cover; background-position:center;" 1839 > 1840 <div class="overflow-hidden"> 1841 <p>Benalmádena</p> 1842 1843 <span class="claim">Tranquillity, Marina and Beaches</span> 1844 1845 <div class="box_background"></div> 1846 </div> 1847 </a> 1848 1849 1850 1851 <a 1852 class="link_destination card" 1853 type="button" 1854 href="/en/spanish-courses/cadiz/" 1855 style="background-image:url('/media/public/cache/14/de/14de7c2bb05d80b723503d92ea55ef96.jpg'); background-size:cover; background-position:center;" 1856 > 1857 <div class="overflow-hidden"> 1858 <p>Cádiz</p> 1859 1860 <span class="claim">History, Joy and the Atlantic Ocean</span> 1861 1862 <div class="box_background"></div> 1863 </div> 1864 </a> 1865 1866 1867 1868 <a 1869 class="link_destination card" 1870 type="button" 1871 href="/en/spanish-courses/granada/" 1872 style="background-image:url('/media/public/cache/e8/64/e864be87dbdba642f5a7b9086d71d9ff.jpg'); background-size:cover; background-position:center;" 1873 > 1874 <div class="overflow-hidden"> 1875 <p>Granada</p> 1876 1877 <span class="claim">Alhambra, Magic and Bohemian Atmosphere</span> 1878 1879 <div class="box_background"></div> 1880 </div> 1881 </a> 1882 1883 1884 1885 <a 1886 class="link_destination card" 1887 type="button" 1888 href="/en/spanish-courses/madrid/" 1889 style="background-image:url('/media/public/cache/7b/d8/7bd840865c7ba22afbd4815a7208429b.jpg'); background-size:cover; background-position:center;" 1890 > 1891 <div class="overflow-hidden"> 1892 <p>Madrid</p> 1893 1894 <span class="claim">Culture, Capital and Nightlife</span> 1895 1896 <div class="box_background"></div> 1897 </div> 1898 </a> 1899 1900 1901 1902 <a 1903 class="link_destination card" 1904 type="button" 1905 href="/en/spanish-courses/malaga/" 1906 style="background-image:url('/media/public/cache/5a/18/5a183a9b8d032e507552ba532bda1a25.jpg'); background-size:cover; background-position:center;" 1907 > 1908 <div class="overflow-hidden"> 1909 <p>Malaga</p> 1910
1911 <span class="claim">History, Gastronomy and the Costa del Sol</span> 1912 1913 <div class="box_background"></div> 1914 </div> 1915 </a> 1916 1917 1918 1919 <a 1920 class="link_destination card" 1921 type="button" 1922 href="/en/spanish-courses/marbella/" 1923 style="background-image:url('/media/public/cache/3e/fa/3efa6a585636f11c9abd353aa6073966.jpg'); background-size:cover; background-position:center;" 1924 > 1925 <div class="overflow-hidden"> 1926 <p>Marbella</p> 1927 1928 <span class="claim">Luxury, Style and Exclusive Beach</span> 1929 1930 <div class="box_background"></div> 1931 </div> 1932 </a> 1933 1934 1935 1936 <a 1937 class="link_destination card" 1938 type="button" 1939 href="/en/spanish-courses/salamanca/" 1940 style="background-image:url('/media/public/cache/63/5f/635fbd4d22d8c3b5471d419ee33102b0.jpg'); background-size:cover; background-position:center;" 1941 > 1942 <div class="overflow-hidden"> 1943 <p>Salamanca</p> 1944 1945 <span class="claim">Cradle of Spanish and University</span> 1946 1947 <div class="box_background"></div> 1948 </div> 1949 </a> 1950 1951 1952 1953 <a 1954 class="link_destination card" 1955 type="button" 1956 href="/en/spanish-courses/san-sebastian/" 1957 style="background-image:url('/media/public/cache/6f/0f/6f0f7198d0d8da2f07b9db45a7d57233.jpg'); background-size:cover; background-position:center;" 1958 > 1959 <div class="overflow-hidden"> 1960 <p>San Sebastián</p> 1961 1962 <span class="claim">Haute Cuisine, Beauty and Basque Tradition</span> 1963 1964 <div class="box_background"></div> 1965 </div> 1966 </a> 1967 1968 1969 1970 <a 1971 class="link_destination card" 1972 type="button" 1973 href="/en/spanish-courses/santiago-compostela/" 1974 style="background-image:url('/media/public/cache/9c/30/9c30e1dd5d85c566de2682f2dd8797ca.jpg'); background-size:cover; background-position:center;" 1975 > 1976 <div class="overflow-hidden"> 1977 <p>Santiago de Compostela</p> 1978 1979 <span class="claim">History, Pilgrimage and Galician Culture</span> 1980 1981 <div class="box_background"></div> 1982 </div> 1983 </a> 1984 1985 1986 1987 <a 1988 class="link_destination card" 1989 type="button" 1990 href="/en/spanish-courses/seville/" 1991 style="background-image:url('/media/public/cache/fe/5f/fe5f14fa024b633e831edf7f40fba0fc.jpg'); background-size:cover; background-position:center;" 1992 > 1993 <div class="overflow-hidden"> 1994 <p>Seville</p> 1995 1996 <span class="claim">Flamenco, Passion and Architecture</span> 1997 1998 <div class="box_background"></div> 1999 </div> 2000 </a> 2001 2002 2003 2004 <a 2005 class="link_destination card" 2006 type="button" 2007 href="/en/spanish-courses/tenerife/" 2008 style="background-image:url('/media/public/cache/e0/1e/e01e762e34818ddeb4118ceeab543ba0.jpg'); background-size:cover; background-position:center;" 2009 > 2010 <div class="overflow-hidden"> 2011 <p>Tenerife</p> 2012 2013 <span class="claim">Volcano, Nature and Perfect Climate</span> 2014 2015 <div class="box_background"></div> 2016 </div> 2017 </a> 2018 2019 2020 2021 <a 2022 class="link_destination card" 2023 type="button" 2024 href="/en/spanish-courses/valencia/" 2025 style="background-image:url('/media/public/cache/c6/5c/c65cda35ae260c82a40a3f904674c199.jpg'); background-size:cover; background-position:center;" 2026 > 2027 <div class="overflow-hidden"> 2028 <p>Valencia</p> 2029
2030 <span class="claim">Innovation, Tradition and Urban Gardens</span> 2031 2032 <div class="box_background"></div> 2033 </div> 2034 </a> 2035 2036 2037 </div> 2038 <button class="carousel-btn next" id="nextBtn">âº</button> 2039</div> 2040
2041<script> 2042document.addEventListener('DOMContentLoaded', function() { 2043 const carousel = document.getElementById('carouselDestinations'); 2044 const prevBtn = document.getElementById('prevBtn'); 2045 const nextBtn = document.getElementById('nextBtn'); 2046 2047 if (carousel && prevBtn && nextBtn) { 2048 const cardWidth = 300 + 15; // Ancho de tarjeta + gap 2049 2050 function updateButtons() { 2051 prevBtn.disabled = carousel.scrollLeft <= 0; 2052 nextBtn.disabled = carousel.scrollLeft >= (carousel.scrollWidth - carousel.clientWidth - 10); 2053 } 2054 2055 prevBtn.addEventListener('click', function() { 2056 carousel.scrollBy({ 2057 left: -cardWidth, 2058 behavior: 'smooth' 2059 }); 2060 }); 2061 2062 nextBtn.addEventListener('click', function() { 2063 carousel.scrollBy({ 2064 left: cardWidth, 2065 behavior: 'smooth' 2066 }); 2067 }); 2068 2069 carousel.addEventListener('scroll', updateButtons); 2070 window.addEventListener('resize', updateButtons); 2071 2072 // Inicializar estado de los botones 2073 updateButtons(); 2074 } 2075}); 2076</script>
2076 2077
2078<script> 2079document.addEventListener('DOMContentLoaded', function(){ 2080 document.querySelectorAll('.dc-carousel').forEach(function(carousel){ 2081 const track = carousel.querySelector('.dc-track'); 2082 const slides = carousel.querySelectorAll('.dc-slide'); 2083 const prevBtn = carousel.querySelector('.dc-prev'); 2084 const nextBtn = carousel.querySelector('.dc-next'); 2085 let index = 0; 2086 const total = slides.length; 2087 2088 if (total === 0) { 2089 // No hay imágenes 2090 if (prevBtn) prevBtn.style.display = 'none'; 2091 if (nextBtn) nextBtn.style.display = 'none'; 2092 return; 2093 } 2094 2095 function goTo(i){ 2096 index = (i + total) % total; 2097 track.style.transform = `translateX(-${index * 100}%)`; 2098 } 2099 2100 prevBtn.addEventListener('click', function(e){ 2101 e.preventDefault(); 2102 e.stopPropagation(); 2103 goTo(index - 1); 2104 }); 2105 2106 nextBtn.addEventListener('click', function(e){ 2107 e.preventDefault(); 2108 e.stopPropagation(); 2109 goTo(index + 1); 2110 }); 2111 2112 // Ajuste por si cambia el tamaño del contenedor 2113 window.addEventListener('resize', function(){ 2114 goTo(index); 2115 }); 2116 2117 goTo(0); 2118 }); 2119}); 2120</script>
2120 2121 2122 </div> 2123 </div> 2124</section> 2125 2126 2127 <div id="bg-right"> 2128 2129 2130 2131 2132 2133 2134 2135 2136<!-- NUEVA SECCIÃN: TIPO DE PROGRAMAS --> 2137<section id="programs_categories" class="section-wrapper-programs py-5"> 2138 <div class="container"> 2139 <div class="text-center mb-3"> 2140 <h2 class="fw-bold m-auto mb-4">Explore our <b style="color: #F3B607;">educational programmes</b> and learn Spanish in Spain</h2> 2141 </div> 2142 2143 <!-- Contenedor principal: Grid en desktop, scroll horizontal en mobile --> 2144 <div class="programs-container"> 2145 <!-- NUEVO CONTENEDOR PARA EL CARRUSEL EN MOBILE --> 2146 <div class="programs-grid-wrapper"> 2147 <div class="programs-grid" id="programas-grid"> 2148 2149 <!-- Card 1: Programas Generales --> 2150 <div class="programa-item"> 2151 <a class="card-custom d-flex gap-3" href="/en/spanish-courses-spain/general/"> 2152 <div class="bg-secondary rounded"> 2153 <img src="/static/img/index/general.jpg" alt="Programas Generales"> 2154 </div> 2155 <div class="content-card-category"> 2156 <h5>General programmes</h5> 2157 <small>Featured destinations: <strong>Valencia</strong> and <strong>Malaga</strong></small> 2158 <p class="mt-2">Learn at all levels (A1-C2) with intensive Spanish courses, long term Spanish courses, or tailor-made private spanish lessons.</p> 2159 <p class="link-card">View all programmes</p> 2160 </div> 2161 </a> 2162 </div> 2163 2164 <!-- Card 2: Exámenes Oficiales --> 2165 <div class="programa-item"> 2166 <a class="card-custom d-flex gap-3" href="/en/spanish-courses-spain/official-exams/"> 2167 <div class="bg-secondary rounded"> 2168 <img src="/static/img/index/dele.jpg" alt="Exámenes oficiales"> 2169 </div> 2170 <div class="content-card-category"> 2171 <h5>Official exams programmes</h5> 2172 <small>Featured destinations: <strong>Barcelona</strong> and <strong>Valencia</strong></small> 2173 <p class="mt-2">Take advantage of the latest methodologies and successfully prepare for the official DELE and SIELE exams at centres accredited by the Cervantes Institute.</p> 2174 <p class="link-card">Discover Exam and Teacher Training Courses</p> 2175 </div> 2176 </a> 2177 </div> 2178 2179 <!-- Card 3: Campamentos de verano --> 2180 <div class="programa-item"> 2181 <a class="card-custom d-flex gap-3" href="/en/spanish-courses-spain/summer-courses/"> 2182 <div class="bg-secondary rounded"> 2183 <img src="/static/img/index/Surf_clase.jpg" alt="Programas de verano"> 2184 </div> 2185 <div class="content-card-category"> 2186 <h5>Summer Camps</h5> 2187 <small>Featured destinations: <strong>Barcelona</strong> and <strong>Malaga</strong></small> 2188 <p class="mt-2">Combine Spanish learning with summer camps, sports, and unique cultural activities. Enjoy the ultimate summer experience in Spain!</p> 2189 <p class="link-card">See Summer Programmes</p> 2190 </div> 2191 </a> 2192 </div> 2193 2194 <!-- Card 4: Programas 50+ --> 2195 <div class="programa-item"> 2196 <a class="card-custom d-flex gap-3" href="/en/spanish-courses-spain/general/over-50/"> 2197 <div class="bg-secondary rounded"> 2198 <img src="/static/img/index/50%2B.jpg" alt="Programas 50+"> 2199 </div> 2200 <div class="content-card-category"> 2201 <h5>Programmes for Adults (50+)</h5> 2202 <small>Featured destinations: <strong>Benalmadena</strong> and <strong>Santiafo de C...</strong></small> 2203 <p class="mt-2">Programs featuring classes and cultural activities designed exclusively for the 50+ community. Learn at your own pace and socialize.</p> 2204 <p class="link-card">Explore the 50+ Program</p> 2205 </div> 2206 </a> 2207 </div> 2208 2209 <!-- Card 5: Cursos temáticos --> 2210 <div class="programa-item extra"> <!-- AÃADIDA CLASE EXTRA --> 2211 <a class="card-custom d-flex gap-3" href="/en/spanish-courses-spain/thematic/"> 2212 <div class="bg-secondary rounded"> 2213 <img src="/static/img/index/arte.jpg" alt="Programas temáticos"> 2214 </div> 2215 <div class="content-card-category"> 2216 <h5>Thematic courses</h5> 2217 <small>Featured destinations: <strong>Salamanca</strong> and <strong>Granada</strong></small> 2218 <p class="mt-2">Tailor-made classes to focus your Spanish on specific areas: Business, Sports, Dance, Art, Hispanic Studies, or Gastronomy.</p> 2219 <p class="link-card">View Thematic Courses</p> 2220 </div> 2221 </a> 2222 </div> 2223 2224 <!-- Card 6: Formación ELE --> 2225 <div class="programa-item extra"> <!-- AÃADIDA CLASE EXTRA --> 2226 <a class="card-custom d-flex gap-3" href="/en/spanish-courses-spain/spanish-teacher-training-ele/"> 2227 <div class="bg-secondary rounded"> 2228 <img src="/static/img/index/extensivos.jpg" alt="Programas para profesores"> 2229 </div> 2230 <div class="content-card-category"> 2231 <h5>Formación ELE</h5> 2232 <small>Featured destinations: <strong>Madrid</strong> and <strong>Valencia</strong></small> 2233 <p class="mt-2">Are you a teacher of Spanish as a foreign language or would you like to be one? Find everything you need with our ELE training programs.</p> 2234 <p class="link-card">Discover ELE programs</p> 2235 </div> 2236 </a> 2237 </div> 2238 2239 </div> 2240 </div> 2241 2242 <!-- Indicadores de scroll (solo móvil) --> 2243 <div class="scroll-indicators d-md-none"> 2244 <button class="scroll-indicator left" aria-label="Scroll izquierda"> 2245 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> 2246 <path d="M15 18l-6-6 6-6"/> 2247 </svg> 2248 </button> 2249 <div class="scroll-dots">
2250 <span class="dot active" data-index="0"></span> 2251 <span class="dot" data-index="1"></span> 2252 <span class="dot" data-index="2"></span> 2253 <span class="dot" data-index="3"></span> 2254 <span class="dot" data-index="4"></span> 2255 <span class="dot" data-index="5"></span> 2256 </div> 2257 <button class="scroll-indicator right" aria-label="Scroll derecha"> 2258 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> 2259 <path d="M9 18l6-6-6-6"/> 2260 </svg> 2261 </button> 2262 </div> 2263 </div> 2264 2265 <!-- Botón Ver más (solo desktop) --> 2266 <div class="text-center mt-4 d-none d-md-block"> 2267 <button class="btn btn-link fw-semibold w-100" id="toggleBtn">See more programs</button> 2268 </div> 2269 2270 </div> 2271</section> 2272
2273<script> 2274document.addEventListener('DOMContentLoaded', function() { 2275 // Elementos del DOM 2276 const programsGrid = document.getElementById('programas-grid'); 2277 const toggleBtn = document.getElementById('toggleBtn'); 2278 const extraItems = document.querySelectorAll('.programa-item.extra'); 2279 const dots = document.querySelectorAll('.dot'); 2280 2281 // Estado 2282 let isExpanded = false; 2283 let currentSlide = 0; 2284 const slideItems = document.querySelectorAll('.programa-item'); 2285 const totalSlides = slideItems.length; 2286 2287 // ========== FUNCIONALIDAD BOTÃN "VER MÃS" (Desktop) ========== 2288 if (toggleBtn) { 2289 toggleBtn.addEventListener('click', function() { 2290 isExpanded = !isExpanded; 2291 2292 // Solo aplicar en desktop (â¥768px) 2293 if (window.innerWidth >= 768) { 2294 // Mostrar/ocultar cards extras 2295 extraItems.forEach(item => { 2296 if (isExpanded) { 2297 item.style.display = 'block'; 2298 item.classList.add('show'); 2299 } else { 2300 item.style.display = 'none'; 2301 item.classList.remove('show'); 2302 } 2303 }); 2304 2305 // Cambiar texto del botón 2306 toggleBtn.textContent = isExpanded ? 'See less programs' : 'See more programs'; 2307 2308 // Añadir/quitar clase expanded al grid 2309 if (isExpanded) { 2310 programsGrid.classList.add('expanded'); 2311 } else { 2312 programsGrid.classList.remove('expanded'); 2313 } 2314 } 2315 }); 2316 } 2317 2318 // ========== CARRUSEL MÃVIL - SOLO CON PUNTOS ========== 2319 function initMobileCarousel() { 2320 // Función para actualizar indicadores 2321 function updateIndicators() { 2322 dots.forEach((dot, index) => { 2323 dot.classList.toggle('active', index === currentSlide); 2324 }); 2325 } 2326 2327 // Función para desplazar al slide especÃfico al hacer clic en los puntos 2328 function scrollToSlide(index) { 2329 if (index < 0) index = 0; 2330 if (index >= totalSlides) index = totalSlides - 1; 2331 2332 currentSlide = index; 2333 2334 // Calcular posición de scroll 2335 const slideWidth = slideItems[0].offsetWidth + 16; // + gap de 1rem 2336 const scrollPosition = index * slideWidth; 2337 2338 programsGrid.scrollTo({ 2339 left: scrollPosition, 2340 behavior: 'smooth' 2341 }); 2342 2343 updateIndicators(); 2344 } 2345 2346 // Event listeners para los dots 2347 dots.forEach(dot => { 2348 dot.addEventListener('click', function() { 2349 const index = parseInt(this.getAttribute('data-index')); 2350 if (!isNaN(index)) { 2351 scrollToSlide(index); 2352 } 2353 }); 2354 }); 2355 2356 // Detectar scroll para actualizar indicadores automáticamente 2357 let scrollTimeout; 2358 programsGrid.addEventListener('scroll', function() { 2359 clearTimeout(scrollTimeout); 2360 scrollTimeout = setTimeout(function() { 2361 const scrollPos = programsGrid.scrollLeft; 2362 const slideWidth = slideItems[0].offsetWidth + 16; 2363 2364 // Calcular slide actual 2365 currentSlide = Math.round(scrollPos / slideWidth); 2366 2367 // Asegurarse de que el Ãndice esté en rango 2368 if (currentSlide < 0) currentSlide = 0; 2369 if (currentSlide >= totalSlides) currentSlide = totalSlides - 1; 2370 2371 updateIndicators(); 2372 }, 100); 2373 }); 2374 2375 // Swipe para móvil 2376 let touchStartX = 0; 2377 let touchEndX = 0; 2378 2379 programsGrid.addEventListener('touchstart', function(e) { 2380 touchStartX = e.touches[0].clientX; 2381 }, { passive: true }); 2382 2383 programsGrid.addEventListener('touchend', function(e) { 2384 touchEndX = e.changedTouches[0].clientX; 2385 const swipeDistance = touchStartX - touchEndX; 2386 const swipeThreshold = 50; 2387 2388 if (Math.abs(swipeDistance) > swipeThreshold) { 2389 if (swipeDistance > 0) { 2390 // Swipe izquierda - siguiente slide 2391 scrollToSlide(currentSlide + 1); 2392 } else { 2393 // Swipe derecha - slide anterior 2394 scrollToSlide(currentSlide - 1); 2395 } 2396 } 2397 }, { passive: true }); 2398 2399 // Inicializar indicadores 2400 updateIndicators(); 2401 2402 // Asegurar que empiece en el slide 0 2403 programsGrid.scrollLeft = 0; 2404 } 2405 2406 // ========== RESPONSIVE HANDLING ========== 2407 function handleResponsive() { 2408 const isMobile = window.innerWidth < 768; 2409 2410 if (isMobile) { 2411 // En móvil: mostrar todas las cards
2412 extraItems.forEach(item => { 2413 item.style.display = 'block'; 2414 }); 2415 2416 // Inicializar carrusel si no está inicializado 2417 if (!programsGrid.dataset.carouselInitialized) { 2418 initMobileCarousel(); 2419 programsGrid.dataset.carouselInitialized = 'true'; 2420 } 2421 2422 // Ocultar botón "Ver más" en móvil 2423 if (toggleBtn) { 2424 toggleBtn.style.display = 'none'; 2425 } 2426 2427 } else { 2428 // En desktop: manejar cards extra según estado 2429 if (!isExpanded) { 2430 extraItems.forEach(item => { 2431 item.style.display = 'none'; 2432 }); 2433 } 2434 2435 // Mostrar botón "Ver más" en desktop 2436 if (toggleBtn) { 2437 toggleBtn.style.display = 'block'; 2438 } 2439 2440 // Restaurar comportamiento grid 2441 programsGrid.style.overflowX = 'visible'; 2442 programsGrid.style.scrollSnapType = 'none'; 2443 programsGrid.dataset.carouselInitialized = 'false'; 2444 } 2445 } 2446 2447 // ========== INICIALIZACIÃN ========== 2448 2449 // Inicializar visibilidad de cards extra 2450 if (window.innerWidth >= 768 && !isExpanded) { 2451 extraItems.forEach(item => { 2452 item.style.display = 'none'; 2453 }); 2454 } else { 2455 extraItems.forEach(item => { 2456 item.style.display = 'block'; 2457 }); 2458 } 2459 2460 // Manejar responsive 2461 handleResponsive(); 2462 2463 // Redimensionar ventana 2464 let resizeTimeout; 2465 window.addEventListener('resize', function() { 2466 clearTimeout(resizeTimeout); 2467 resizeTimeout = setTimeout(handleResponsive, 250); 2468 }); 2469 2470 // Asegurar altura consistente en desktop 2471 function normalizeCardHeights() { 2472 if (window.innerWidth < 768) return; 2473 2474 const cards = document.querySelectorAll('.content-card-category'); 2475 let maxHeight = 0; 2476 2477 // Resetear alturas 2478 cards.forEach(card => { 2479 card.style.height = 'auto'; 2480 }); 2481 2482 // Encontrar altura máxima entre cards VISIBLES 2483 cards.forEach(card => { 2484 const cardItem = card.closest('.programa-item'); 2485 if (cardItem.style.display !== 'none' && cardItem.offsetParent !== null) { 2486 const height = card.offsetHeight; 2487 if (height > maxHeight) { 2488 maxHeight = height; 2489 } 2490 } 2491 }); 2492 2493 // Aplicar altura máxima solo si encontramos una altura válida 2494 if (maxHeight > 0) { 2495 cards.forEach(card => { 2496 const cardItem = card.closest('.programa-item'); 2497 if (cardItem.style.display !== 'none' && cardItem.offsetParent !== null) { 2498 card.style.height = maxHeight + 'px'; 2499 } 2500 }); 2501 } 2502 } 2503 2504 // Ejecutar cuando se cargue la página y después de cambios 2505 window.addEventListener('load', function() { 2506 setTimeout(normalizeCardHeights, 100); 2507 }); 2508 2509 window.addEventListener('resize', function() { 2510 setTimeout(normalizeCardHeights, 100); 2511 }); 2512 2513 // También normalizar después de mostrar/ocultar cards 2514 if (toggleBtn) { 2515 toggleBtn.addEventListener('click', function() { 2516 setTimeout(normalizeCardHeights, 100); 2517 }); 2518 } 2519}); 2520</script>
2520 2521 </div> 2522 2523 2524 2525 2526 2527 2528<section id="advisor_section" class="pb-5 pt-6" style="background-color: #F9F9F9;"> 2529 <div class="container"> 2530 2531 <div class="row align-items-startcontainer_info"> 2532 <div class="col-12 col-sm-12 col-md-12 col-lg-6 col-xl-6 advisor-img"> 2533 2534 <div class="text-center img_educador"> 2535 <div class="col-12 mb-3 desktop_hidden"> 2536 <h2 class="mb-3"><span class='c-yellow'>Student Advisor:</span> Your compass at every step towards success</h2> 2537 </div> 2538 2539 <div class="youtube-facade" data-bs-toggle="modal" data-bs-target="#videoModal" data-id="r-AIf37Vo-w"> 2540 <img src="/static/img/index/advisor_EN.webp" width="100%" height="390" alt="Advisor Dencanto Community"> 2541 <div class="play-button"></div> 2542 </div> 2543 2544 </div> 2545 <div class="mt-4 mb-3 text-md-center text-lg-center text-center"> 2546 <a class="button-yellow-advisor btn-lg" 2547 href="/en/student-advisor/" 2548 target="_blank"> 2549 Get advice from Maria 2550 </a> 2551 </div> 2552 2553 <div class="position-relative "> 2554 <div class="box_advisor"> 2555 <p class="fs-5">âStudying in another country was a life-changing experience for me. If you want to avoid the mistakes I made, make an appointment.â</p> 2556 </div> 2557 </div> 2558 </div> 2559 2560 <div class="col-12 col-sm-12 col-md-12 col-lg-6 col-xl-6 mb-4 mb-lg-0 list advisor-text"> 2561 <div class="col-12 mb-3"> 2562 <h2 class="mb-3 mobile_hidden"><span class='c-yellow'>Student Advisor:</span> Your compass at every step towards success</h2> 2563 <p class="mb-2 line-height-26 mobile_hidden">Forget the stress, we will assign you an advisor who takes care of everything. You have only one mission: focus on learning Spanish.</p> 2564 </div> 2565 <div class="d-flex mb-4"> 2566 <div class="flex-shrink-0 me-3"> 2567 <img src="/static/img/groups/section2-icon1.png" alt="Icon Spanish courses" width="40" height="40"> 2568 </div> 2569 <div class="flex-grow-1"> 2570 <h4 class="fw-semibold mb-1">Expert advice</h4> 2571 <p class="text-muted mb-0 line-height-26">Your advisor will help you choose the ideal city, course and accommodation according to your needs. We help you make the right decision every time.</p> 2572 </div> 2573 </div> 2574 <div class="d-flex mb-4"> 2575 <div class="flex-shrink-0 me-3"> 2576 <img src="/static/img/groups/section2-icon2.png" alt="Icon Spanish courses" width="40" height="40"> 2577 </div> 2578 <div class="flex-grow-1"> 2579 <h4 class="fw-semibold mb-1">Forget about paperwork</h4> 2580 <p class="text-muted mb-0 line-height-26">We manage enrolment, timetables and documentation. Use that extra time to focus solely on learning Spanish in Spain.</p> 2581 </div> 2582 </div> 2583 <div class="d-flex mb-4"> 2584 <div class="flex-shrink-0 me-3"> 2585 <img src="/static/img/groups/section2-icon3.png" alt="Icon Spanish courses" width="40" height="40"> 2586 </div> 2587 <div class="flex-grow-1"> 2588 <h4 class="fw-semibold mb-1">Continuous support from start to finish</h4> 2589 <p class="text-muted mb-0 line-height-26">Your expert advisor accompanies you every step of the way, from planning to your return. Continuous assistance for any unforeseen circumstances.</p> 2590 </div> 2591 </div> 2592 2593 </div> 2594 </div> 2595 </div> 2596</section> 2597 2598<div class="modal fade" id="videoModal" tabindex="-1" aria-labelledby="videoModalLabel" aria-hidden="true" 2599 style="backdrop-filter: blur(10px); background-color: rgba(0,0,0,.49);"> 2600 <div class="modal-dialog modal-dialog-centered"> 2601 <div class="modal-content bg-dark border-0"> 2602 <div class="modal-body p-0 position-relative"> 2603 <button type="button" 2604 class="btn-close btn-close-white position-absolute top-0 end-0 m-2 style-close" 2605 data-bs-dismiss="modal" 2606 aria-label="Close" 2607 style="z-index: 9;"> 2608 </button> 2609 2610 <!-- Contenedor 16:9 --> 2611 <div class="video-horizontal-container"> 2612 <iframe 2613 id="videoFrame" 2614 src="" 2615 allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" 2616 allowfullscreen> 2617 </iframe> 2618 </div> 2619 </div> 2620 </div> 2621 </div> 2622 </div> 2623
2624<script> 2625 const videoModal = document.getElementById('videoModal'); 2626 const videoFrame = document.getElementById('videoFrame'); 2627 2628 // Cargar video al abrir modal 2629 videoModal.addEventListener('show.bs.modal', function (event) { 2630 const trigger = event.relatedTarget; 2631 const videoId = trigger.getAttribute('data-id'); 2632 videoFrame.src = 'https://www.youtube.com/embed/' + videoId + '?autoplay=1'; 2633 }); 2634 2635 // Vaciar video al cerrar modal 2636 videoModal.addEventListener('hidden.bs.modal', function () { 2637 videoFrame.src = ''; 2638 }); 2639</script>
2639 2640 2641 2642 2643 2644 2645 2646 2647<section id="reviews_home" class="pt-5 pb-4"> 2648 <div class="container ph-0"> 2649 <div class="row"> 2650 <div class="content_text_reviews mb-4"> 2651 <h2 class="size-big pt-2">They have already lived the <span style="color: #F3B607;"> #dencantoexperience</span></h2> 2652 <p class="text-muted fs-5">Discover what awaits you in your educational experience from those who have already trusted Dencanto Community</p> 2653 </div> 2654 <div class="carousel-container-reviews"> 2655 <button class="carousel-btn prev" id="prevBtnReview">â¹</button> 2656 2657 <div class="carousel-reviews" id="carouselReview"> 2658 2659 2660 <!-- Tarjeta 1 --> 2661 <div class="col-12 col-md-4 parent-card-review"> 2662 <div class="video-card position-relative" onclick="playVideo(this, 'gMYnPe1aJ4Y')"> 2663 <img src="/static/img/landing/organico/video1.webp" class="img-fluid w-100" alt="Video testimonial of the #dencantoexperience in front of the Sagrada Familia."> 2664 <div class="custom-play-btn"></div> 2665 </div> 2666 </div> 2667 2668 <!-- Tarjeta 2 --> 2669 <div class="col-12 col-md-4 parent-card-review"> 2670 <div class="video-card position-relative" onclick="playVideo(this, 'fexy4JNmaRI')"> 2671 <img src="/static/img/landing/organico/video2.webp" class="img-fluid w-100" alt="Video testimonial of the #dencantoexperience from the interior."> 2672 <div class="custom-play-btn"></div> 2673 </div> 2674 </div> 2675 2676 <!-- Tarjeta 3 --> 2677 <div class="col-12 col-md-4 parent-card-review"> 2678 <div class="video-card position-relative" onclick="playVideo(this, 'cTY1Fn2sBI0')"> 2679 <img src="/static/img/landing/organico/video3.webp" class="img-fluid w-100" alt="Video testimonial about the #dencantoexperience from a smiling student."> 2680 <div class="custom-play-btn"></div> 2681 </div> 2682 </div> 2683 2684 <!-- Tarjeta 4 --> 2685 <div class="col-12 col-md-4 parent-card-review"> 2686 <div class="video-card position-relative" onclick="playVideo(this, 'ovL1JWGixKo')"> 2687 <img src="/static/img/landing/organico/video7.webp" alt="Video testimonial from the outdoor #dencantoexperience." class="img-fluid w-100" style="border-radius: 25px;"> 2688 <div class="custom-play-btn"></div> 2689 </div> 2690 </div> 2691 2692 <!-- Tarjeta 5 --> 2693 <div class="col-12 col-md-4 parent-card-review"> 2694 <div class="video-card position-relative" onclick="playVideo(this, 'Y54fJV2vqnk')"> 2695 <img src="/static/img/landing/organico/video8.webp" class="img-fluid w-100" style="border-radius: 25px;"> 2696 <div class="custom-play-btn"></div> 2697 </div> 2698 </div> 2699 2700 2701 </div> 2702 2703 <!-- Modal Bootstrap --> 2704 <div class="modal fade video_organic" id="videoModal" tabindex="-1" aria-hidden="true" style="backdrop-filter: blur(10px); background-color: rgba(0,0,0,.49);"> 2705 <div class="modal-dialog modal-lg modal-dialog-centered"> 2706 <div class="modal-content" style="border-radius: 25px;"> 2707 <button type="button" class="btn-close ms-auto" data-bs-dismiss="modal" aria-label="Cerrar"></button> 2708 <div class="ratio ratio-16x9" style="border-radius: 25px; padding: 15px 15px 10px 15px;"> 2709 <iframe id="videoFrame" src="" allow="autoplay; encrypted-media" allowfullscreen></iframe> 2710 </div> 2711 </div> 2712 </div> 2713 </div> 2714 2715 <button class="carousel-btn next" id="nextBtnReview">âº</button> 2716 </div> 2717 <div id="shapo-widget-6a4dfd2920c966afeb10"></div> 2718 </div> 2719 </div> 2720</section> 2721
2722<script> 2723document.addEventListener('DOMContentLoaded', function() { 2724 const carousel = document.getElementById('carouselReview'); 2725 const prevBtn = document.getElementById('prevBtnReview'); 2726 const nextBtn = document.getElementById('nextBtnReview'); 2727 2728 if (carousel && prevBtn && nextBtn) { 2729 const cardWidth = 300 + 15; // Ancho de tarjeta + gap 2730 2731 function updateButtons() { 2732 prevBtn.disabled = carousel.scrollLeft <= 0; 2733 nextBtn.disabled = carousel.scrollLeft >= (carousel.scrollWidth - carousel.clientWidth - 10); 2734 } 2735 2736 prevBtn.addEventListener('click', function() { 2737 carousel.scrollBy({ 2738 left: -cardWidth, 2739 behavior: 'smooth' 2740 }); 2741 }); 2742 2743 nextBtn.addEventListener('click', function() { 2744 carousel.scrollBy({ 2745 left: cardWidth, 2746 behavior: 'smooth' 2747 }); 2748 }); 2749 2750 carousel.addEventListener('scroll', updateButtons); 2751 window.addEventListener('resize', updateButtons); 2752 2753 // Inicializar estado de los botones 2754 updateButtons(); 2755 } 2756}); 2757</script>
2757 2758
2759<script> 2760function playVideo(card, videoId) { 2761 card.innerHTML = `<iframe src="https://www.youtube.com/embed/${videoId}?autoplay=1&rel=0" 2762 allow="autoplay; encrypted-media" allowfullscreen></iframe>`; 2763} 2764</script>
2764 2765
2766<script id="shapo-embed-js" type="text/javascript" src="https://cdn.shapo.io/js/embed.js" defer></script>
2766 2767 2768 2769 2770 2771 2772 2773 2774 <style> 2775 .paso { 2776 display: none; 2777 } 2778 .paso.activo { 2779 display: block; 2780 } 2781 .boton-container .back-form-common:disabled { 2782 display: none; 2783 } 2784 .boton-container { 2785 margin-top: 10px; 2786 text-align: end; 2787 } 2788 #mensajeGracias { 2789 display: none; 2790 padding: 30px; 2791 background: #d4edda; 2792 border: 1px solid #c3e6cb; 2793 color: #155724; 2794 font-size: 20px; 2795 border-radius: 10px; 2796 margin-top: 20px; 2797 text-align: center; 2798 } 2799 </style> 2800 2801<section id="form_common" class="form-section py-6"> 2802 <div class="container"> 2803 <div class="row"> 2804 <div class="info-column"> 2805 <div class="advantages"> 2806 <h2 class="mb-2 sm:text-left">Tell us about your <span class='c-yellow'>ideal city</span></h2> 2807 <p class="mb-4">We know that every student is unique. Complete this short form in 30 seconds and our expert advisor will design the experience you have in mind.</p> 2808 <ul class="form_list sm:mx-auto"> 2809 <li class="advantage"> 2810 <span class="list-text">You will receive a <b>100% personalised proposal</b>, designed according to your needs (destination, course and accommodation).</span> 2811 </li> 2812 <li class="advantage"> 2813 <span class="list-text">You will get a <b>tailor-made programme and expert advice</b> completely free of charge.</span> 2814 </li> 2815 <li class="advantage"> 2816 <span class="list-text">The entire process is <b>free of charge and without obligation</b>, just the guarantee of a perfect immersion.</span> 2817 </li> 2818 </ul> 2819 </div> 2820 <div class="details-form d-flex details-form justify-content-between mt-4"> 2821 <div class="d-flex objet-detail"> 2822 <div class="flex-shrink-0 me-4 img-detail"> 2823 <img src="/static/img/index/quick.png" alt="Time icon" width="30" height="30"> 2824 </div> 2825 <div class="flex-grow-1"> 2826 <h4 class="fw-semibold mb-1 fs-6">Quick <br> response</h4> 2827 </div> 2828 </div> 2829 2830 <div class="d-flex objet-detail"> 2831 <div class="flex-shrink-0 me-4 img-detail"> 2832 <img src="/static/img/index/customize.png" alt="Time icon" width="30" height="30"> 2833 </div> 2834 <div class="flex-grow-1"> 2835 <h4 class="fw-semibold mb-1 fs-6">100% <br> Personalized</h4> 2836 </div> 2837 </div> 2838 2839 <div class="d-flex objet-detail"> 2840 <div class="flex-shrink-0 me-4 img-detail"> 2841 <img src="/static/img/index/free.png" alt="Time icon" width="30" height="30"> 2842 </div> 2843 <div class="flex-grow-1"> 2844 <h4 class="fw-semibold mb-1 fs-6">Free <br> advice</h4> 2845 </div> 2846 </div> 2847 </div> 2848 </div> 2849 2850 <div class="form-column"> 2851 <iframe name="hidden_iframe" id="hidden_iframe" style="display:none;"></iframe> 2852 2853 <div id="contenedorFormulario"> 2854 <form class="form-configure-exp" 2855 action="https://dencantocomm.my.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8" 2856 method="POST" 2857 id="multi-step-form-v2" 2858 target="hidden_iframe"> 2859 <input type="hidden" name="oid" value="00D7Q0000094QG2"> 2860 <input type="hidden" name="retURL" value="about:blank"> 2861 2862 <!-- PASO 1 --> 2863 <div class="paso activo" id="paso1"> 2864 <h3 class="fs-5 mb-4"> Fill in your details to start designing your unique experience</h3> 2865 2866 <div class="input-box active-grey mb-3"> 2867 <label for="first_name" class="block text-sm mb-2 text-left input-label" style="color: #414141; font-weight: 400;">Name</label> 2868 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor"
2869 class="bi bi-person"> 2870 <path d="M8 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6m2-3a2 2 0 1 1-4 0 2 2 0 0 1 4 0m4 8c0 1-1 1-1 1H3s-1 0-1-1 1-4 6-4 6 3 6 4m-1-.004c-.001-.246-.154-.986-.832-1.664C11.516 10.68 10.289 10 8 10s-3.516.68-4.168 1.332c-.678.678-.83 1.418-.832 1.664z"></path> 2871 </svg> 2872 <input id="first_name" class="input-1 appearance-none border rounded w-full py-2 text-grey-darker" required maxlength="40" name="first_name" size="20" type="text" style="padding-left: 55px;" 2873 placeholder="Name*" > 2874 </div> 2875 2876 <div class="input-box active-grey mb-3"> 2877 <label for="email" class="block text-sm mb-2 text-left input-label" style="color: #414141; font-weight: 400;">Email</label> 2878 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" 2879 class="bi bi-envelope"> 2880 <path d="M0 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm2-1a1 1 0 0 0-1 1v.217l7 4.2 7-4.2V4a1 1 0 0 0-1-1zm13 2.383-4.708 2.825L15 11.105zm-.034 6.876-5.64-3.471L8 9.583l-1.326-.795-5.64 3.47A1 1 0 0 0 2 13h12a1 1 0 0 0 .966-.741M1 11.105l4.708-2.897L1 5.383z"></path> 2881 </svg> 2882 <input id="email" class="input-1 appearance-none border rounded w-full py-2 text-grey-darker" required maxlength="80" name="email" size="20" type="email" style="padding-left: 55px;" 2883 placeholder="Email*" > 2884 </div> 2885 2886 <div class="input-box active-grey mb-3"> 2887 <label for="phone" class="block text-sm mb-2 text-left input-label" style="color: #414141; font-weight: 400;">Phone number</label> 2888 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" 2889 class="bi bi-phone"> 2890 <path d="M11 1a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1zM5 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2z"></path> 2891 <path d="M8 14a1 1 0 1 0 0-2 1 1 0 0 0 0 2"></path> 2892 </svg> 2893 <input id="phone" class="input-1 appearance-none border rounded w-full py-2 text-grey-darker" required maxlength="40" name="phone" size="20" type="tel" style="padding-left: 55px;" 2894 placeholder="Phone number*" > 2895 </div> 2896 2897 <div> 2898 <label class="block text-grey font-bold text-left"> 2899 <input class="mr-2" id="00N7Q00000D0K1q" name="00N7Q00000D0K1q" type="checkbox" 2900 value="1" style="border: solid 1px red!important;"/> 2901 <span style="font-size: 12px; font-weight: 400; color: #8d8d8d;"> 2902 I wish to receive offers and information about the products and services from Dencanto Community. 2903 </span> 2904 </label> 2905 <div> 2906 <label class="block text-grey font-bold text-left" style=" margin-bottom: 5px;"> 2907 <input class="mr-2" type="checkbox" name="dencanto_terms" required> 2908 <span class="link_form" style="font-size: 12px; font-weight: 400; color: #8d8d8d;"> 2909 2910 2911 I read and accept the <a href="/en/legal-notice/" target="_blank">legal notice</a> and the <a href="/en/privacy-policy/" target="_blank">privacy policy</a> 2912 </span> 2913 </label> 2914 </div> 2915 <textarea id="00N7Q00000HSAxV" name="00N7Q00000HSAxV" rows="3" t
2915ype="text" wrap="soft" 2916 hidden>/en/</textarea> 2917 </div> 2918 </div> 2919 2920 <!-- PASO 2 --> 2921 <div class="paso" id="paso2"> 2922 <div class="form-group mb-8 input-box active-grey"> 2923 <label class="text-sm mb-2 text-left input-label" style="color: #414141; font-weight: 400;"> 2924 What type of accommodation do you prefer?</label> 2925 <select name="00N7Q00000HQUMt" class="form-control mb-8 input-1" id="accommodation"> 2926 <option hidden disabled selected value="">What type of accommodation do you prefer? 2927 </option> 2928 <option value="Familia anfitriona">âð©âð§âð¦ Host family (total immersion in the language and culture)</option> 2929 <option value="Apartamento Compartido">ð¡ Shared flat (socialise and learn together)</option> 2930 <option value="Residencia de estudianes">ð University residence (student spirit at its best) 2931 </option> 2932 <option value="Apartamento privado">ð¢ Private flat (I need my space)</option> 2933 </select> 2934 </div> 2935 2936 <div class="form-group mb-8 input-box active-grey"> 2937 <label class="text-sm mb-2 text-left input-label" style="color: #414141; font-weight: 400;">What kind of educational programme are you looking for?</label> 2938 <select class="form-control mb-8 input-1" id="program_type" name="00NQD00000H6xYE"> 2939 <option hidden disabled selected value="">What kind of educational programme are you looking for? 2940 </option> 2941 <option value="Programas intensivos">Intesive program</option> 2942 <option value="Summer camps">Summer Camp</option> 2943 <option value="Programa senior 50+">Cultural program 50+</option> 2944 <option value="Programa cultural + clases">Cultural program + classes 2945 </option> 2946 </select> 2947 </div> 2948 2949 <div class="form-group mb-8 input-box active-grey"> 2950 <label class="text-sm mb-2 text-left input-label" style="color: #414141; font-weight: 400;">An extra piece of information about you</label> 2951 <textarea name="00N7Q00000D0K1W" class="input-1" id="extra_info" cols="30" rows="3"></textarea> 2952 </div> 2953 </div> 2954 2955 <!-- PASO 3 --> 2956 <div class="paso" id="paso3"> 2957 <div class="mb-8 input-box active-grey"> 2958 <label class="text-sm mb-2 text-left input-label" style="color: #414141; font-weight: 400;"> 2959 What is your goal?</label> 2960 <select name="00NQD000008sduD" class="form-control mb-8 input-1" id="FormControlSelect0" > 2961 <option hidden disabled selected value="">What is your goal?</option> 2962 <option value="Carrera profesional y negocio">ð Professional career or business</option> 2963 <option value="Exámenes y cursos">ð To prepare myself for exams or courses</option> 2964 <option value="Cultura, pasatiempo, ocio, viajar">ð To immerse myself in culture and travel</option> 2965 <option value="Requisito para estudios/trabajo">ð To meet study or work requirements</option> 2966 <option value="Otro">⨠Other</option> 2967 </select> 2968 </div> 2969 2970 <div class="form-group mb-8 input-box active-grey"> 2971 <label class="text-sm mb-2 text-left input-label" style="color: #414141; font-weight: 400;"> 2972 Have you studied Spanish before?</label> 2973 <select name="00NQD000008scIM" class="form-control mb-8 input-1" id="FormControlSelect1"> 2974 <option hidden disabled selected value="">Have you studied Spanish before?</option> 2975 <option value="Hace mucho tiempo">â³ A long time ago (but I remember "agua" and "gracias")</option> 2976 <option value="Recientemente">ð Recently (and I want to keep improving)</option> 2977 <option value="Nunca">â Never (but I'm brave)</option> 2978 </select> 2979 </div> 2980 2981 <div class="form-group mb-8 input-box active-grey"> 2982 <label class="text-sm mb-2 text-left input-label" style="color: #414141; font-weight: 400;">What is your level of Spanish?</label> 2983 <select name="00NQD000008gC1l" class="form-control mb-8 input-1" id="FormControlSelect2"> 2984 <option hidden disabled selected value="">What is your level of Spanish?</option> 2985 <option value="Soy principiante">ð Beginner</option> 2986 <option value="Conozco lo básico">ð I have basic notions (I can order a coffee)</option> 2987 <option value="Puedo conversar">
2987ð£ï¸ I have simple conversations (I get lost if they speak fast) </option> 2988 <option value="Hablo con fluidez">ð¬ I speak fluently (I can almost discuss politics)</option> 2989 </select> 2990 </div> 2991 2992 <div class="form-group mb-8 input-box active-grey"> 2993 <label class="text-sm mb-2 text-left input-label" style="color: #414141; font-weight: 400;"> 2994 How much time youâd like to spend learning Spanish?</label> 2995 <select name="00NQD000008uGiD" class="form-control mb-8 input-1" id="FormControlSelect3"> 2996 <option hidden disabled selected value="">How much time youâd like to spend learning Spanish?</option> 2997 <option value="10 hrs a la semana">â° 10 hours a week (âcalm but steadyâ mode)</option> 2998 <option value="20 hrs a la semana">â³ 20 hours a week (I want to learn fast but without stressing myself)</option> 2999 <option value="30 hrs a la semana">ð 30 hours a week (full immersion, no fear)</option> 3000 <option value="Aún no lo sé">𤷠I do not know yet</option> 3001 </select> 3002 </div> 3003 3004 <!-- Idioma --> 3005 <select id="00N7Q00000D0K5s" name="00N7Q00000D0K5s" title="Idioma" hidden> 3006 3007 <option value="Ingles">Ingles</option> 3008 3009 3010 3011 </select> 3012 3013 <button type="submit" class="button-form-common" id="submitBtn">Send</button> 3014 </div> 3015 </form> 3016 </div> 3017 <div id="mensajeGracias">Thank you for contacting us ð</div> 3018 <div class="boton-container"> 3019 <button type="button" id="btnAtras" class="back-form-common" onclick="pasoAnterior()" disabled>âµ Go back</button> 3020 <button type="button" id="btnContinuar" class="button-form-common" onclick="siguientePaso()">Continue</button> 3021 </div> 3022 </div> 3023 </div> 3024 </div> 3025</section> 3026
3027<script> 3028 document.addEventListener('DOMContentLoaded', () => { 3029 let pasoActual = 1; 3030 const totalPasos = 3; 3031 3032 function mostrarPaso(n) { 3033 for (let i = 1; i <= totalPasos; i++) { 3034 document.getElementById(`paso${i}`).classList.remove("activo"); 3035 } 3036 document.getElementById(`paso${n}`).classList.add("activo"); 3037 3038 document.getElementById("btnAtras").disabled = n === 1; 3039 3040 if (n === totalPasos) { 3041 document.getElementById("btnContinuar").style.display = "none"; 3042 document.getElementById("submitBtn").style.display = "inline-block"; 3043 } else { 3044 document.getElementById("btnContinuar").style.display = "inline-block"; 3045 document.getElementById("submitBtn").style.display = "none"; 3046 } 3047 } 3048 3049 window.siguientePaso = () => { 3050 if (pasoActual < totalPasos) { 3051 pasoActual++; 3052 mostrarPaso(pasoActual); 3053 } 3054 }; 3055 3056 window.pasoAnterior = () => { 3057 if (pasoActual > 1) { 3058 pasoActual--; 3059 mostrarPaso(pasoActual); 3060 } 3061 }; 3062 3063 // Inicializar: ocultar botón submit en paso 1 y 2 3064 document.getElementById('submitBtn').style.display = 'none'; 3065 3066 // Manejar el envÃo del formulario 3067 document.getElementById('multi-step-form-v2').addEventListener('submit', function(e) { 3068 // Ocultar el formulario y mostrar mensaje de agradecimiento 3069 document.getElementById('contenedorFormulario').style.display = 'none'; 3070 document.getElementById('mensajeGracias').style.display = 'block'; 3071 document.querySelector('.boton-container').style.display = 'none'; 3072 3073 // El formulario se envÃa automáticamente al iframe 3074 console.log('ð¤ Formulario enviado correctamente'); 3075 }); 3076 }); 3077</script>
3077 3078 3079 3080 3081 3082 3083 3084 3085 3086<section id="latest-blog" class="pt-5 pb-3 bg-light"> 3087 <div class="container"> 3088 <h2>Our featured news</h2> 3089 <p class="text-muted fs-5"> 3090 Visit our blog for news, tips, interesting facts and much more about Spain, as well as the best way to learn Spanish. Do not miss it! 3091 </p> 3092 3093 <div class="carousel-container-destinations"> 3094 <button class="carousel-btn-articles prev" id="prevBtnCarousel">â¹</button> 3095 3096 <div class="carousel-destinations" id="carouselArticles"> 3097 3098 <a href="https://blog.spanishcourseinspain.com/mejores-campamentos-verano-espanol-espana-adolescentes-2026/" class="link_articles card"> 3099 <div class="blog-card"> 3100 <div class="blog-card-img-wrapper"> 3101 <img src="/media/public/Blog.png" alt="<p>Best spanish summer camps in Spain for teens: Activities and dates 2026</p>"> 3102 </div> 3103 3104 <div class="blog-card-content"> 3105 <h4 class="blog-card-title"><p>Best spanish summer camps in Spain for teens: Activities and dates 2026</p></h4> 3106 3107 <p class="blog-card-date"><p>17/03/2026</p></p> 3108 </div> 3109 </div> 3110 </a> 3111 3112 <a href="https://blog.spanishcourseinspain.com/tradiciones-espanolas-en-navidad/" class="link_articles card"> 3113 <div class="blog-card"> 3114 <div class="blog-card-img-wrapper"> 3115 <img src="/media/public/Blog-5.png" alt="<p>Spanish Christmas traditions | Why is Spain the ideal destination?</p>"> 3116 </div> 3117 3118 <div class="blog-card-content"> 3119 <h4 class="blog-card-title"><p>Spanish Christmas traditions | Why is Spain the ideal destination?</p></h4> 3120 3121 <p class="blog-card-date"><p>Christmas in Spain is not just a holiday, it is a feeling that transforms every â¦</p> 3122 </div> 3123 </div> 3124 </a> 3125 3126 <a href="https://blog.spanishcourseinspain.com/mejores-podcasts-para-aprender-espanol/" class="link_articles card"> 3127 <div class="blog-card"> 3128 <div class="blog-card-img-wrapper"> 3129 <img src="/media/public/close-up-portrait-young-female-student-drinking-tea-listening-music-headphones-using_1.jpg" alt="<p>Best podcasts to learn Spanish</p>"> 3130 </div> 3131 3132 <div class="blog-card-content"> 3133 <h4 class="blog-card-title"><p>Best podcasts to learn Spanish</p></h4> 3134 3135 <p class="blog-card-date"><p>Podcasts are one of the best tools for learning Spanish properly.</p></p> 3136 </div> 3137 </div> 3138 </a> 3139 3140 <a href="https://blog.spanishcourseinspain.com/consejos-escoger-curso-espanol/" class="link_articles card"> 3141 <div class="blog-card"> 3142 <div class="blog-card-img-wrapper"> 3143 <img src="/media/public/es-facil-aprender-espanol_2.jpg" alt="<p>Is Spanish a complicated language to learn?</p>"> 3144 </div> 3145 3146 <div class="blog-card-content"> 3147 <h4 class="blog-card-title"><p>Is Spanish a complicated language to learn?</p></h4> 3148 3149 <p class="blog-card-date"><p>Do you think Spanish is a complicated language to learn?</p></p> 3150 </div> 3151 </div> 3152 </a> 3153 3154 <a href="https://blog.spanishcourseinspain.com/peliculas-aprender-espanol/" class="link_articles card"> 3155 <div class="blog-card"> 3156 <div class="blog-card-img-wrapper"> 3157 <img src="/media/public/ver-peliculas-para-aprender-espanol_2.jpg" alt="<p>films to learn spanish</p>"> 3158 </div> 3159 3160 <div class="blog-card-content"> 3161 <h4 class="blog-card-title"><p>films to learn spanish</p></h4> 3162 3163 <p class="blog-card-date"><p>Learning a language through the sense of hearing is a fun and effective way to â¦</p> 3164 </div> 3165 </div> 3166 </a> 3167 3168 </div> 3169 3170 <button class="carousel-btn-articles next" id="nextBtnCarousel">âº</button> 3171 </div> 3172 </div> 3173</section> 3174 3175
3176<script> 3177document.addEventListener('DOMContentLoaded', function() { 3178 const carousel = document.getElementById('carouselArticles'); 3179 const prevBtnCarousel = document.getElementById('prevBtnCarousel'); 3180 const nextBtnCarousel = document.getElementById('nextBtnCarousel'); 3181 3182 if (carousel && prevBtnCarousel && nextBtnCarousel) { 3183 const cardWidth = 300 + 15; // Ancho de tarjeta + gap 3184 3185 function updateButtons() { 3186 prevBtnCarousel.disabled = carousel.scrollLeft <= 0; 3187 nextBtnCarousel.disabled = carousel.scrollLeft >= (carousel.scrollWidth - carousel.clientWidth - 10); 3188 } 3189 3190 prevBtnCarousel.addEventListener('click', function() { 3191 carousel.scrollBy({ 3192 left: -cardWidth, 3193 behavior: 'smooth' 3194 }); 3195 }); 3196 3197 nextBtnCarousel.addEventListener('click', function() { 3198 carousel.scrollBy({ 3199 left: cardWidth, 3200 behavior: 'smooth' 3201 }); 3202 }); 3203 3204 carousel.addEventListener('scroll', updateButtons); 3205 window.addEventListener('resize', updateButtons); 3206 3207 // Inicializar estado de los botones 3208 updateButtons(); 3209 } 3210}); 3211</script>
3211 3212 3213 3214 3215 3216 3217<style> 3218 .eyebrow { 3219 display: inline-flex; 3220 align-items: center; 3221 gap: 7px; 3222 padding: 6px 14px; 3223 border-radius: 50px; 3224 background: rgb(255 251 246 / 0.17); 3225 border: 1px solid #ffffff; 3226 font-size: 0.9rem; 3227 font-weight: 700; 3228 letter-spacing: 0.07em; 3229 text-transform: uppercase; 3230 color: #ffffff; 3231 margin-bottom: 28px; 3232 width: auto !important; 3233 } 3234 3235 .btn-end-banner{ 3236 margin: 30px 0 15px 0; 3237 display: inline-block; 3238 background-color: #fff; 3239 color: #da7912; 3240 padding: 12px 50px; 3241 border-radius: 32px; 3242 font-weight: 600; 3243 font-size: 1.2rem; 3244 border: none; 3245 box-shadow: 3246 0 1px 2px rgba(30, 58, 138, 0.2), 3247 0 6px 20px rgba(30, 58, 138, 0.32); 3248 3249 transition: 3250 background 0.18s ease, 3251 box-shadow 0.18s ease, 3252 transform 0.18s ease; 3253 } 3254 3255 .btn-end-banner:hover { 3256 background: #fff2e0; 3257 box-shadow: 3258 0 1px 2px rgba(30, 58, 138, 0.2), 3259 0 10px 28px rgba(30, 58, 138, 0.44); 3260 transform: translateY(-1px); 3261 } 3262 3263 .bullets { 3264 display: flex; 3265 gap: 10px; 3266 justify-content: space-around; 3267 padding-top: 32px; 3268 } 3269 3270 .bullet { 3271 display: flex; 3272 align-items: flex-start; 3273 gap: 12px; 3274 padding: 12px 16px; 3275 font-size: 1.1rem; 3276 font-weight: 700; 3277 color: #0f172a; 3278 line-height: 1.3; 3279 } 3280 3281 .bullet span.text-bullet{ 3282 text-align: start; 3283 color: #ffff; 3284 } 3285 3286 .bullet-check { 3287 flex-shrink: 0; 3288 width: 22px; 3289 height: 22px; 3290 border-radius: 50%; 3291 background: #ffff; 3292 display: flex; 3293 align-items: center; 3294 justify-content: center; 3295 } 3296 3297 .bullet-check svg { 3298 width: 11px; 3299 height: 11px; 3300 stroke: #FF9800; 3301 fill: none; 3302 stroke-width: 2.8; 3303 stroke-linecap: round; 3304 stroke-linejoin: round; 3305 } 3306 3307 /* Estilo Google Material para floating labels */ 3308 .form-floating > .form-control { 3309 padding: 1rem 0.75rem 0.5rem 0.75rem; 3310 height: 58px; 3311 background-color: #fff; 3312 } 3313 3314 .form-floating > .form-control:focus { 3315 border-color: #da7912; 3316 box-shadow: 0 0 0 0.2rem rgba(218, 121, 18, 0.1); 3317 outline: none; 3318 } 3319 3320 .form-floating > label { 3321 padding: 1rem 0.75rem; 3322 font-weight: 400; 3323 color: #6c757d; 3324 } 3325 3326 .form-floating > .form-control:focus ~ label, 3327 .form-floating > .form-control:not(:placeholder-shown) ~ label { 3328 transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); 3329 color: #da7912; 3330 opacity: 1; 3331 } 3332 3333 /* Mejora de checkboxes */ 3334 .form-check-input:checked { 3335 background-color: #da7912; 3336 border-color: #da7912; 3337 } 3338 3339 .form-check-input:focus { 3340 border-color: #da7912; 3341 box-shadow: 0 0 0 0.2rem rgba(218, 121, 18, 0.15); 3342 } 3343 3344 @media (max-width: 480px) { 3345 .bullets { 3346 flex-direction: column; 3347 gap: 8px; 3348 } 3349 } 3350 3351</style> 3352 3353<section id="banner-end" class="align-items-center bg-light d-flex py-5"> 3354 <div class="container"> 3355 <div class="row"> 3356 <div class="m-auto text-center"> 3357 3358 <div class="eyebrow"> 3359 For schools and universities 3360 </div> 3361 3362 <div class="col-xl-10 col-lg-10 m-auto"> 3363 <h2 class="fw-bold mb-3"> 3364 Sell more courses and manage your school or university from one centralised platform 3365 </h2> 3366 3367 <p class="fs-5 mb-4"> 3368 Manage students, payments and enrolments, expand your sales channels into international markets, and connect your agents in a single platform 3369 </p> 3370 </div> 3371 3372 <button class="btn-end-banner" data-bs-toggle="modal" data-bs-target="#popUpSchool">Get started for free</button> 3373 <div class="bullets"> 3374 3375 <div class="bullet"> 3376 <span class="bullet-check"> 3377 <svg viewBox="0 0 12 12"><polyline points="2 6 5 9 10 3"/></svg> 3378 </span> 3379 <span class="text-bullet">New international markets</span> 3380 </div> 3381 3382 <div class="bullet">
3383 <span class="bullet-check"> 3384 <svg viewBox="0 0 12 12"><polyline points="2 6 5 9 10 3"/></svg> 3385 </span> 3386 <span class="text-bullet">More agents, more sales</span> 3387 </div> 3388 3389 <div class="bullet"> 3390 <span class="bullet-check"> 3391 <svg viewBox="0 0 12 12"><polyline points="2 6 5 9 10 3"/></svg> 3392 </span> 3393 <span class="text-bullet">Centralised payments and enrolments</span> 3394 </div> 3395 3396 </div><!-- /bullets --> 3397 </div> 3398 </div> 3399 </div> 3400</section> 3401 3402<!-- Modal --> 3403<div class="modal fade" id="popUpSchool" tabindex="-1" role="dialog" aria-labelledby="popUpContact" aria-hidden="true" style="backdrop-filter: blur(10px);"> 3404 <div class="modal-dialog modal-dialog-centered modal-xl size-modal"> 3405 <div class="modal-content bg_img_school border-0 rounded-4 overflow-hidden"> 3406 <div class="modal-header border-0 pb-0"> 3407 <button type="button" class="btn-close ms-auto" data-bs-dismiss="modal" aria-label="Close"></button> 3408 </div> 3409 3410 <div class="modal-body pt-0"> 3411 <div class="row g-0"> 3412 <!-- Columna de información - Lado izquierdo --> 3413 <div class="col-md-6 p-xl-4 bg-gradient-primary p-4 rounded-start-4"> 3414 <div class="d-flex flex-column h-100 justify-content-center text-md-start"> 3415 3416 <h3 class="fw-bold mb-3 display-6 fs-1 text-center">Start selling more and managing better</h3> 3417 3418 <p class="mb-4 fs-5 text-center"> 3419 Get started for free and discover the most efficient way to grow. 3420 </p> 3421 3422 <div class="mt-auto pt-4 bullets-modal"> 3423 <div class="d-flex align-items-center gap-2 justify-content-center justify-content-md-start mb-3 fs-4"> 3424 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" stroke="#000" stroke-width="2"> 3425 <circle cx="10" cy="10" r="9"/> 3426 <path d="M7 10l2 2 4-5"/> 3427 </svg> 3428 <span>More sales with greater control</span> 3429 </div> 3430 <div class="d-flex align-items-center gap-2 justify-content-center justify-content-md-start mb-3 fs-4"> 3431 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" stroke="#000" stroke-width="2"> 3432 <circle cx="10" cy="10" r="9"/> 3433 <path d="M7 10l2 2 4-5"/> 3434 </svg> 3435 <span>Invite agents and connect teams</span> 3436 </div> 3437 <div class="d-flex align-items-center gap-2 justify-content-center justify-content-md-start mb-3 fs-4"> 3438 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" stroke="#000" stroke-width="2"> 3439 <circle cx="10" cy="10" r="9"/> 3440 <path d="M7 10l2 2 4-5"/> 3441 </svg> 3442 <span>Quick setup</span> 3443 </div> 3444 <div class="d-flex align-items-center gap-2 justify-content-center justify-content-md-start fs-4"> 3445 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" stroke="#000" stroke-width="2"> 3446 <circle cx="10" cy="10" r="9"/> 3447 <path d="M7 10l2 2 4-5"/> 3448 </svg> 3449 <span>Free access</span> 3450 </div> 3451 </div> 3452 </div> 3453 </div> 3454
3455 <!-- Columna del formulario - Lado derecho con estilo Floating Labels (Google) --> 3456 <div class="col-md-6 p-4 p-xl-4" style="box-shadow: 0 7px 14px 0 rgb(0 0 0 / 16%); background-color: #ffffffc9; backdrop-filter: blur(10px); border-radius: 10px;"> 3457 <div class="d-flex flex-column h-100"> 3458 <div class="text-center text-md-start mb-4"> 3459 <h3 class="fw-bold mb-2" style="color: #da7912;">Free access</h3> 3460 <p class="text-muted small mb-0"> 3461 Complete your details and we will send you your access 3462 </p> 3463 </div> 3464 3465 <form action="/en/contact-form-call/" method="post" id="captcha_form"> 3466 <input type="hidden" name="csrfmiddlewaretoken" value="EMFQCz4fH0rlWGwY6MMN5Pkszfcjg1NlQ7jP5obIxSR7Tba3GhV3NMoNEmEiTIa2"> 3467 3468 <!-- Campo flotante: Nombre completo --> 3469 <div class="form-floating mb-3"> 3470 <input type="text" class="form-control rounded-3" id="name" name="name" placeholder=" " required style="border: 1px solid #e0e0e0; transition: all 0.2s;"> 3471 <label for="name" class="text-muted"> 3472 <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="margin-right: 6px; margin-bottom: 2px;"> 3473 <path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/> 3474 <circle cx="12" cy="7" r="4"/> 3475 </svg> 3476 Full name * 3477 </label> 3478 </div> 3479 3480 <!-- Campo flotante: Nombre del centro --> 3481 <div class="form-floating mb-3"> 3482 <input type="text" class="form-control rounded-3" id="name_centro" name="name_centro" placeholder=" " required style="border: 1px solid #e0e0e0; transition: all 0.2s;"> 3483 <label for="name_centro" class="text-muted"> 3484 <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" fill="currentColor" stroke-width="2" style="margin-right: 6px; margin-bottom: 2px;"> 3485 <path d="M14.763.075A.5.5 0 0 1 15 .5v15a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5V14h-1v1.5a.5.5 0 0 1-.5.5h-9a.5.5 0 0 1-.5-.5V10a.5.5 0 0 1 .342-.474L6 7.64V4.5a.5.5 0 0 1 .276-.447l8-4a.5.5 0 0 1 .487.022M6 8.694 1 10.36V15h5zM7 15h2v-1.5a.5.5 0 0 1 .5-.5h2a.5.5 0 0 1 .5.5V15h2V1.309l-7 3.5z"/> 3486 <path d="M2 11h1v1H2zm2 0h1v1H4zm-2 2h1v1H2zm2 0h1v1H4zm4-4h1v1H8zm2 0h1v1h-1zm-2 2h1v1H8zm2 0h1v1h-1zm2-2h1v1h-1zm0 2h1v1h-1zM8 7h1v1H8zm2 0h1v1h-1zm2 0h1v1h-1zM8 5h1v1H8zm2 0h1v1h-1zm2 0h1v1h-1zm0-2h1v1h-1z"/> 3487 </svg> 3488 Institution name * 3489 </label> 3490 </div> 3491 3492 <!-- Campo flotante: Email --> 3493 <div class="form-floating mb-3"> 3494 <input type="email" class="form-control rounded-3" id="email" name="mail" placeholder=" " required style="border: 1px solid #e0e0e0; transition: all 0.2s;"> 3495 <label for="email" class="text-muted"> 3496 <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="margin-right: 6px; margin-bottom: 2px;"> 3497 <path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"/> 3498 <polyline points="22,6 12,13 2,6"/> 3499 </svg> 3500 Email * 3501 </label> 3502 </div> 3503 3504 <!-- Campo flotante: Teléfono --> 3505 <div class="form-floating mb-3"> 3506 <input type="tel" class="form-control rounded-3" id="tel" name="telephone" placeholder=" " required style="border: 1px solid #e0e0e0; transition: all 0.2s;"> 3507 <label for="tel" class="text-muted"> 3508 <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="margin-right: 6px; margin-bottom: 2px;"> 3509 <path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.127.96.362 1.903.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.907.339 1.85.574 2.81.7A2 2 0 0 1 22 16.92z"/> 3510 </svg> 3511 Phone number * 3512 </label> 3513 </div> 3514 3515 <!-- Checkboxes más limpios --> 3516 <div class="mb-3"> 3517 <div class="form-check"> 3518 <input class="form-check-input" type="checkbox" id="terms" name="dencanto_terms" required style="border-color: #da7912; cursor: pointer;"> 3519 <label class="form-check-label small text-muted" for="terms"> 3520 3521 3522 I have read and accepted the <a style="text-decoration: underline;
3522 color:#da7912!important;" href="/en/legal-notice/" target="_blank">legal notice</a> and the <a style="text-decoration: underline; color:#da7912!important;" href="/en/privacy-policy/" target="_blank">privacy policy</a> <span class="text-danger">*</span> 3523 </label> 3524 </div> 3525 </div> 3526 3527 <div class="mb-4"> 3528 <div class="form-check"> 3529 <input class="form-check-input" type="checkbox" id="notifications" name="notifications" style="border-color: #da7912; cursor: pointer;"> 3530 <label class="form-check-label small text-muted" for="notifications"> 3531 I wish to receive offers and information about the products and services from Dencanto Community. 3532 </label> 3533 </div> 3534 </div> 3535 3536 <button type="submit" class="btn w-100 py-3 rounded-3 text-white fw-semibold border-0" style="background: linear-gradient(135deg, #da7912 0%, #f59e0b 100%); transition: transform 0.2s, box-shadow 0.2s;" onmouseover="this.style.transform='translateY(-2px)'; this.style.boxShadow='0 8px 20px rgba(218,121,18,0.3)';" onmouseout="this.style.transform='translateY(0)'; this.style.boxShadow='none';"> 3537 Get started now 3538 <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2" class="ms-2"> 3539 <line x1="5" y1="12" x2="19" y2="12"/> 3540 <polyline points="12 5 19 12 12 19"/> 3541 </svg> 3542 </button> 3543 </form> 3544 3545 <p class="small text-muted text-center mt-3 mb-0"> 3546 <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="me-1"> 3547 <circle cx="12" cy="12" r="10"/> 3548 <line x1="12" y1="8" x2="12" y2="12"/> 3549 <line x1="12" y1="16" x2="12.01" y2="16"/> 3550 </svg> 3551 Your data is safe with us 3552 </p> 3553 </div> 3554 </div> 3555 </div> 3556 </div> 3557 </div> 3558 </div> 3559</div> 3560 3561 3562 3563 3564 3565 3566 3567<div id="sticky_banner" class="container-fluid"> 3568 <div class="container sticky_banner_container"> 3569 <div class="sticky_text_desktop"> 3570 <p>Learning Spanish has never been so easy, design your programme.</b></p> 3571 </div> 3572 <div class="sticky_text_mobile"> 3573 <p><b>Customize your course </b></p> 3574 </div> 3575 <div class="sticky_button"> 3576 <a href="/en/design-experience/" target="_blank" class="btn" style="background-color: #e2412a; 3577 color: white;"> 3578 Start now 3579 </a> 3580 </div> 3581 </div> 3582</div> 3583 3584 3585 3586</div> 3587 3588 3589 3590 3591 3592 3593<footer id="footer_new"> 3594 <div class="container"> 3595 <!-- Primera fila: Navegación --> 3596 <div class="row first-footer-row"> 3597 <!-- Cursos de español --> 3598 <div class="col-lg-3 col-md-6 col-sm-6 footer-column"> 3599 <h3 class="footer-title">Spanish courses</h3> 3600 <ul class="footer-list"> 3601 3602 <li> 3603 <a class="footer-link" href="/en/spanish-courses-spain/general/" gtm> 3604 General Spanish courses 3605 </a> 3606 </li> 3607 3608 <li> 3609 <a class="footer-link" href="/en/spanish-courses-spain/official-exams/" gtm> 3610 Preparatory courses for DELE, SIELE, CCSE and other official exams 3611 </a> 3612 </li> 3613 3614 <li> 3615 <a class="footer-link" href="/en/spanish-courses-spain/spanish-teacher-training-ele/" gtm> 3616 ELE Teacher Training 3617 </a> 3618 </li> 3619 3620 <li> 3621 <a class="footer-link" href="/en/spanish-courses-spain/summer-courses/" gtm> 3622 Summer Courses 3623 </a> 3624 </li> 3625 3626 <li> 3627 <a class="footer-link" href="/en/spanish-courses-spain/inthership/" gtm> 3628 Internships 3629 </a> 3630 </li> 3631 3632 <li> 3633 <a class="footer-link" href="/en/spanish-courses-spain/thematic/" gtm> 3634 Themed Courses 3635 </a> 3636 </li> 3637 3638 </ul> 3639 </div> 3640 3641 <!-- Destinos --> 3642 <div class="col-lg-3 col-md-6 col-sm-6 footer-column footer-destinations"> 3643 <h3 class="footer-title">Locations</h3> 3644 <ul class="footer-list"> 3645 3646 <li> 3647 <a class="footer-link" href="/en/spanish-courses/alicante/" data-description="footer-destinations-" gtm> 3648 Alicante 3649 </a> 3650 </li> 3651 3652 <li> 3653 <a class="footer-link" href="/en/spanish-courses/barcelona/" data-description="footer-destinations-" gtm> 3654 Barcelona 3655 </a> 3656 </li> 3657 3658 <li> 3659 <a class="footer-link" href="/en/spanish-courses/benalmadena/" data-description="footer-destinations-" gtm> 3660 Benalmádena 3661 </a> 3662 </li> 3663 3664 <li> 3665 <a class="footer-link" href="/en/spanish-courses/cadiz/" data-description="footer-destinations-" gtm> 3666 Cádiz 3667 </a> 3668 </li> 3669 3670 <li> 3671 <a class="footer-link" href="/en/spanish-courses/granada/" data-description="footer-destinations-" gtm> 3672 Granada 3673 </a> 3674 </li> 3675 3676 </ul> 3677 </div> 3678 3679 <!-- Programas especiales --> 3680 <div class="col-lg-3 col-md-6 col-sm-6 footer-column"> 3681 <h3 class="footer-title">Special programs</h3> 3682 <div class="programs-container"> 3683 <div class="program-section"> 3684 <h4 class="footer-subtitle">Summer Camp</h4> 3685 <ul class="footer-list"> 3686 3687 3688 3689 3690 <li> 3691 <a class="footer-link" href="/en/spanish-schools-spain/Enfocamp-Barcelona-Playa/" data-description="" gtm> 3692 Enfocamp Barcelona Beach 3693 </a> 3694 </li> 3695 3696 3697 3698 3699 3700 <li> 3701 <a class="footer-link" href="/en/spanish-schools-spain/enfocamp-valencia/" data-description="" gtm> 3702 Enfocamp Valencia 3703 </a> 3704 </li> 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 <li> 3735 <a class="footer-link" href="/en/spanish-schools-spain/enfocamp-marbella-elviria/" data-description="" gtm> 3736 Enfocamp Marbella Elviria 3737 </a> 3738 </li> 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 <li> 3759 <a class="footer-link" href="/en/spanish-schools-spain/enfocamp-marbella-centro/" data-description="" gtm> 3760 Enfocamp Marbella Centro 3761 </a> 3762 </li> 3763 3764 3765 3766 3767 3768 3769 3770 3771 </ul> 3772 </div> 3773 <div class="program-section"> 3774 <h4 class="footer-subtitle">Courses for over 50s</h4> 3775 <ul class="footer-list"> 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 <li> 3795 <a class="footer-link" href="/en/spanish-schools-spain/ail-madrid/" data-description="" gtm> 3796 AIL Madrid 3797 </a> 3798 </li> 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 <li> 3809 <a class="footer-link" href="/en/spanish-schools-spain/instituto-andalusi/" data-description="" gtm> 3810 Instituto Andalusà 3811 </a> 3812 </li> 3813 3814 3815 3816 3817 3818 3819 3820 <li> 3821 <a class="footer-link" href="/en/spanish-schools-spain/don-quijote-valencia/" data-description="" gtm> 3822 Don Quijote Valencia 3823 </a> 3824 </li> 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 <li> 3845 <a class="footer-link" href="/en/spanish-schools-spain/colegio-maravillas/" data-description="" gtm> 3846 Maravillas 3847 </a> 3848 </li> 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 </ul> 3862 </div> 3863 </div> 3864 </div> 3865 3866 <!-- Enlaces útiles --> 3867 <div class="col-lg-3 col-md-6 col-sm-6 footer-column"> 3868 <h3 class="footer-title">Useful links</h3> 3869 <ul class="footer-list"> 3870 <li> 3871 <a class="footer-link" href="/en/spanish-schools-spain/" data-description="" gtm> 3872 Schools 3873 </a> 3874 </li> 3875 <li> 3876 <a class="footer-link" href="/en/spanish-courses-spain/group-trips/" target="_blank" data-description="" gtm> 3877 Organized group trips 3878 </a> 3879 </li> 3880 <li> 3881 <a class="footer-link" href="http://blog.spanishcourseinspain.com/" target="_blank" data-description="" gtm> 3882 Blog 3883 </a> 3884 </li> 3885 <li> 3886 <a class="footer-link" href="/en/spanish-level-test/" target="_blank" data-description="" gtm> 3887 Level test 3888 </a> 3889 </li> 3890 <li> 3891 <a class="footer-link" href="/en/about-us/" target="_blank" data-description="" gtm> 3892 About us 3893 </a> 3894 </li> 3895 <li> 3896 <a class="footer-link login-link" href="/users/login/" target="_blank" data-description="footer-enter" gtm> 3897 Login 3898 </a> 3899 </li> 3900 </ul> 3901 </div> 3902 </div> 3903 3904 <!-- Segunda fila: Contacto -->
3905 <div class="row second-footer-row"> 3906 <!-- Datos de contacto --> 3907 <div class="col-lg-4 col-md-4 col-sm-12 contact-column"> 3908 <h3 class="footer-title">Contact</h3> 3909 <div class="contact-info"> 3910 <div class="address"> 3911 <strong>Office in Spain</strong><br> 3912 Calle Gran VÃa de Colón 10 1ºA<br> 3913 18010 - Granada 3914 </div> 3915 <div class="contact-details"> 3916 <strong>Customer service</strong>(from 9:00 am to 7:00 pm)<br> 3917 <a class="footer-link" href="tel:+34620847925">(+34) 620 84 79 25</a><br> 3918 <a class="footer-link" href="mailto:[email protected]">[email protected]</a> 3919 </div> 3920 </div> 3921 </div> 3922 3923 <!-- WhatsApp --> 3924 <div class="col-lg-4 col-md-4 col-sm-12 whatsapp-column"> 3925 <h3 class="footer-title">WhatsApp</h3> 3926 <div class="whatsapp-section"> 3927 <div class="whatsapp-links"> 3928 <a class="whatsapp-link" target="_blank" href="https://api.whatsapp.com/send?phone=34620847925&text=Hello,%20I%20would%20like%20to%20find%20out%20more%20about%20Spanish%20courses%20in%20Spain."> 3929 <img class="flag-icon" src="/static/img/icons/uk.png"> 3930 <div class="whatsapp-info"> 3931 <span class="language">English</span> 3932 <span class="number">(+34) 620 84 79 25</span> 3933 </div> 3934 </a> 3935 <a class="whatsapp-link" target="_blank" href="https://api.whatsapp.com/send?phone=620847925&text=Ciao,%20vorrei%20saperne%20di%20pi%C3%B9%20sui%20corsi%20di%20spagnolo%20in%20Spagna"> 3936 <img class="flag-icon" src="/static/img/icons/it.png"> 3937 <div class="whatsapp-info"> 3938 <span class="language">Italian</span> 3939 <span class="number">(+39) 05 221 685 888</span> 3940 </div> 3941 </a> 3942 <a class="whatsapp-link" target="_blank" href="https://api.whatsapp.com/send?phone=620847925&text=Hallo,%20ik%20wil%20graag%20meer%20informatie%20over%20cursussen%20Spaans%20in%20Spanje."> 3943 <img class="flag-icon" src="/static/img/icons/nl.png"> 3944 <div class="whatsapp-info"> 3945 <span class="language">Dutch</span> 3946 <span class="number">(+34) 620 84 79 25</span> 3947 </div> 3948 </a> 3949 </div> 3950 </div> 3951 </div> 3952 3953 <!-- Redes sociales --> 3954 <div class="col-lg-4 col-md-4 col-sm-12 social-column"> 3955 <h3 class="footer-title">Follow us</h3> 3956 <div class="social-section"> 3957 <div class="social-icons"> 3958 <a class="social-icon" href="https://www.linkedin.com/company/dencanto-community?trk=prof-following-company-logo" aria-label="LinkedIn"> 3959 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" viewBox="0 0 16 16"> 3960 <path d="M0 1.146C0 .513.526 0 1.175 0h13.65C15.474 0 16 .513 16 1.146v13.708c0 .633-.526 1.146-1.175 1.146H1.175C.526 16 0 15.487 0 14.854V1.146zm4.943 12.248V6.169H2.542v7.225h2.401zm-1.2-8.212c.837 0 1.358-.554 1.358-1.248-.015-.709-.52-1.248-1.342-1.248-.822 0-1.359.54-1.359 1.248 0 .694.521 1.248 1.327 1.248h.016zm4.908 8.212V9.359c0-.216.016-.432.08-.586.173-.431.568-.878 1.232-.878.869 0 1.216.662 1.216 1.634v3.865h2.401V9.25c0-2.22-1.184-3.252-2.764-3.252-1.274 0-1.845.7-2.165 1.193v.025h-.016a5.54 5.54 0 0 1 .016-.025V6.169h-2.4c.03.678 0 7.225 0 7.225h2.4z"/> 3961 </svg> 3962 </a> 3963 <a class="social-icon" href="https://www.facebook.com/dencanto.community/" aria-label="Facebook"> 3964 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" viewBox="0 0 16 16"> 3965 <path d="M16 8.049c0-4.446-3.582-8.05-8-8.05C3.58 0-.002 3.603-.002 8.05c0 4.017 2.926 7.347 6.75 7.951v-5.625
3965h-2.03V8.05H6.75V6.275c0-2.017 1.195-3.131 3.022-3.131.876 0 1.791.157 1.791.157v1.98h-1.009c-.993 0-1.303.621-1.303 1.258v1.51h2.218l-.354 2.326H9.25V16c3.824-.604 6.75-3.934 6.75-7.951z"/> 3966 </svg> 3967 </a> 3968 <a class="social-icon" href="https://www.instagram.com/dencanto.community/" aria-label="Instagram"> 3969 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" viewBox="0 0 16 16"> 3970 <path d="M8 0C5.829 0 5.556.01 4.703.048 3.85.088 3.269.222 2.76.42a3.917 3.917 0 0 0-1.417.923A3.927 3.927 0 0 0 .42 2.76C.222 3.268.087 3.85.048 4.7.01 5.555 0 5.827 0 8.001c0 2.172.01 2.444.048 3.297.04.852.174 1.433.372 1.942.205.526.478.972.923 1.417.444.445.89.719 1.416.923.51.198 1.09.333 1.942.372C5.555 15.99 5.827 16 8 16s2.444-.01 3.298-.048c.851-.04 1.434-.174 1.943-.372a3.916 3.916 0 0 0 1.416-.923c.445-.445.718-.891.923-1.417.197-.509.332-1.09.372-1.942C15.99 10.445 16 10.173 16 8s-.01-2.445-.048-3.299c-.04-.851-.175-1.433-.372-1.941a3.926 3.926 0 0 0-.923-1.417A3.911 3.911 0 0 0 13.24.42c-.51-.198-1.092-.333-1.943-.372C10.443.01 10.172 0 7.998 0h.003zm-.717 1.442h.718c2.136 0 2.389.007 3.232.046.78.035 1.204.166 1.486.275.373.145.64.319.92.599.28.28.453.546.598.92.11.281.24.705.275 1.485.039.843.047 1.096.047 3.231s-.008 2.389-.047 3.232c-.035.78-.166 1.203-.275 1.485a2.47 2.47 0 0 1-.599.919c-.28.28-.546.453-.92.598-.28.11-.704.24-1.485.276-.843.038-1.096.047-3.232.047s-2.39-.009-3.233-.047c-.78-.036-1.203-.166-1.485-.276a2.478 2.478 0 0 1-.92-.598 2.48 2.48 0 0 1-.6-.92c-.109-.281-.24-.705-.275-1.485-.038-.843-.046-1.096-.046-3.233 0-2.136.008-2.388.046-3.231.036-.78.166-1.204.276-1.486.145-.373.319-.64.599-.92.28-.28.546-.453.92-.598.282-.11.705-.24 1.485-.276.738-.034 1.024-.044 2.515-.045v.002zm4.988 1.328a.96.96 0 1 0 0 1.92.96.96 0 0 0 0-1.92zm-4.27 1.122a4.109 4.109 0 1 0 0 8.217 4.109 4.109 0 0 0 0-8.217zm0 1.441a2.667 2.667 0 1 1 0 5.334 2.667 2.667 0 0 1 0-5.334z"/> 3971 </svg> 3972 </a> 3973 <a class="social-icon" href="https://www.youtube.com/channel/UCmPvimp6Y4Ry5nZfu5OQDSg" aria-label="YouTube"> 3974 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" viewBox="0 0 16 16"> 3975 <path d="M8.051 1.999h.089c.822.003 4.987.033 6.11.335a2.01 2.01 0 0 1 1.415 1.42c.101.38.172.883.22 1.402l.01.104.022.26.008.104c.065.914.073 1.77.074 1.957v.075c-.001.194-.01 1.108-.082 2.06l-.008.105-.009.104c-.05.572-.124 1.14-.235 1.558a2.007 2.007 0 0 1-1.415 1.42c-1.16.312-5.569.334-6.18.335h-.142c-.309 0-1.587-.006-2.927-.052l-.17-.006-.087-.004-.171-.007-.171-.007c-1.11-.049-2.167-.128-2.654-.26a2.007 2.007 0 0 1-1.415-1.419c-.111-.417-.185-.986-.235-1.558L.09 9.82l-.008-.104A31.4 31.4 0 0 1 0 7.68v-.123c.002-.215.01-.958.064-1.778l.007-.103.003-.052.008-.104.022-.26.01-.104c.048-.519.119-1.023.22-1.402a2.007 2.007 0 0 1 1.415-1.42c.487-.13 1.544-.21 2.654-.26l.17-.007.172-.006.086-.003.171-.007A99.788 99.788 0 0 1 7.858 2h.193zM6.4 5.209v4.818l4.157-2.408L6.4 5.209z"/> 3976 </svg> 3977 </a> 3978 <a class="social-icon" href="https://twitter.com/dencantocom" aria-label="Twitter"> 3979 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" viewBox="0 0 16 16"> 3980 <path d="M12.6.75h2.454l-5.36 6.142L16 15.25h-4.937l-3.867-5.07-4.425 5.07H.316l5.733-6.57L0 .75h5.063l3.495 4.633L12.601.75Zm-.86 13.028h1.36L4.323 2.145H2.865z"/> 3981 </svg> 3982 </a> 3983 <a class="social-icon" href="http://blog.spanishcourseinspain.com/" aria-label="Blog"> 3984 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" viewBox="0 0 16 16"> 3985 <path d="M12.633 7.653c0-.848-.305-1.435-.566-1.892l-.08-.13c-.317-.51-.594-.958-.594-1.48 0-.63.478-1.218 1.152-1.218.02 0 .039.002.058.003l.031.003A6.838 6.838 0 0 0 8 1.137 6.855 6.855 0 0 0 2.266 4.23c.16.005.313.009.442.009.717 0 1.828-.087 1.828-.087.37-.022.414.521.044.565 0 0-.371.044-.785.065l2.5 7.434 1.5-4.506-1.07-2.929c-.369-.022-.719-.065-.719-.065-.37-.022-.326-.588.043-.566 0 0 1.134.087 1.808.087.718 0 1.83-.087 1.83-.087.37-.022.413.522.043.566 0 0-.372.043-.785.065l2.48 7.377.684-2.287.054-.173c.27-.86.469-1.495.469-2.046zM1.137 8a6.864 6.864 0 0 0 3.868 6.176L1.73 5.206A6.837 6.837 0 0 0 1.137 8z"/><path d="M6.061 14.583 8.121 8.6l2.109 5.78c.014.033.03.064.049.094a6.854 6.854 0 0 1-4.218.109zm7.96-9.876c.03.219.047.453.047.706 0 .696-.13 1.479-.522 2.458l-2.096 6.06a6.86 6.86 0 0 0 2.572-9.224z"/><path fill-rule="evenodd" d="M0 8c0-4.411 3.589-8 8-8 4.41 0 8 3.589 8 8s-3.59 8-8 8c-4.411 0-8-3.589-8-8zm.367 0c0 4.209 3.424 7.633 7.633 7.633 4.208 0 7.632-3.424 7.632-7.633C15.632 3.79 12.208.367 8 .367 3.79.367.367 3.79.367 8z"/> 3986 </svg> 3987 </a> 3988 </div> 3989 </div> 3990 </div> 3991 </div> 3992
3993 <!-- Tercera fila: Legal --> 3994 <div class="row third-footer-row"> 3995 <div class="col-md-6 col-sm-12 copyright-column"> 3996 <div class="copyright"> 3997 <span>© 2026 Dencanto community. All Rights Reserved.</span> 3998 </div> 3999 </div> 4000 <div class="col-md-6 col-sm-12 legal-column"> 4001 <div class="legal-links"> 4002 <a href="/en/site-map/" target="_blank" class="legal-link">Site map</a> 4003 <a href="/en/legal-notice/" target="_blank" class="legal-link">Legal notice</a> 4004 <a href="/en/privacy-policy/" target="_blank" class="legal-link">Privacy policy</a> 4005 <a href="/en/cookies-policy/" target="_blank" class="legal-link">Cookies policy</a> 4006 <a href="/en/terms-and-conditions/" target="_blank" class="legal-link">Terms and conditions</a> 4007 </div> 4008 </div> 4009 </div> 4010 </div> 4011</footer> 4012 4013<section id="subventions_home"> 4014 <div class="container"> 4015 <div class="row"> 4016 <div class="w-100"> 4017 <div class="subvention_logos"> 4018 <img loading="lazy" width="5%" src="/static/img/logos/enisa.png" alt="Enisa"/> 4019 <img loading="lazy" width="10%" src="/static/img/logos/financiado_eu_horizontal_color.png" alt="Unión Europea"/> 4020 <img loading="lazy" width="10%" src="/static/img/logos/logo-kit-digital.png" alt="Kit digital"> 4021 <img loading="lazy" width="10%" src="/static/img/logos/logo_PRTR_COLOR.png" alt="Xpande"> 4022 </div> 4023 </div> 4024 </div> 4025 </div> 4026</section> 4027 4028 4029 4030 4031<!-- Contenedor global para todas las pantallas de cookies --> 4032<div id="cookie-container-cookies" style="display: none;"> 4033 <!-- Pantalla Previa para aceptar o configurar --> 4034 <div id="cookie-welcome" class="cookie-overlay"> 4035 <div class="cookie-welcome-container-cookies"> 4036 <div> 4037 <span class="cookie-title">Manage cookies</span> 4038 <p class="text-cookies">Responsible use of cookies. You can accept their use to create your learning experience with Dencanto Community and read our 4039 <a href="/en/cookies-policy/">Cookies policy</a> 4040 to manage cookies, press the configuration button.</p> 4041 </div> 4042 <div class="cookie-welcome-buttons"> 4043 <button id="accept-all-welcome">Accept all</button> 4044 <button id="reject-all">Reject all</button> 4045 <button id="configure-cookies">Configure</button> 4046 </div> 4047 </div> 4048 </div> 4049 4050 <!-- Modal de Configuración de Cookies, inicialmente oculto --> 4051 <div id="cookie-configurator" class="cookie-overlay" style="display: none;"> 4052 <div class="cookie-container-cookies"> 4053 <span class="cookie-title">Manage cookies</span> 4054 <p>Use this panel to enable and disable trackers and analytics tools on our platform.</p> 4055 4056 <div class="cookie-options"> 4057 <label class="container-cookies">Necessary Cookies (always activated) 4058 <input type="checkbox" id="necessary" disabled checked> 4059 <span class="checkmark"></span> 4060 </label> 4061 <label class="container-cookies">Analysis cookies 4062 <input type="checkbox" id="analytics"> 4063 <span class="checkmark"></span> 4064 </label> 4065 <label class="container-cookies">Marketing Cookies 4066 <input type="checkbox" id="marketing"> 4067 <span class="checkmark"></span> 4068 </label> 4069 4070 </div> 4071 4072 <div class="cookie-buttons"> 4073 <button id="accept-all">Accept all</button> 4074<!-- <button id="reject-all">Rechazar todas</button>--> 4075 <button id="save-preferences">Save Preferences</button> 4076 </div> 4077 </div> 4078 </div> 4079</div> 4080 4081 4082 4083<style> 4084 .whatsapp-float { 4085 position:fixed; 4086 bottom:30px; 4087 right:30px; 4088 z-index:9999 4089} 4090.whatsapp-btn { 4091 display:flex; 4092 align-items:center; 4093 justify-content:center; 4094 width:70px; 4095 height:70px; 4096 border-radius:50%; 4097 background:#25d366; 4098 box-shadow:0 4px 20px rgba(37,211,102,.4); 4099 text-decoration:none!important; 4100 position:relative; 4101 animation:2.5s infinite whatsappPulse 4102} 4103.whatsapp-btn:hover { 4104 transform:scale(1.12) translateY(-3px); 4105 box-shadow:0 8px 30px rgba(37,211,102,.6) 4106} 4107.whatsapp-tooltip, 4108.whatsapp-tooltip::after { 4109 position:absolute; 4110 top:50%; 4111 transform:translateY(-50%) 4112} 4113.whatsapp-tooltip { 4114 right:80px; 4115 background:rgba(0,0,0,.88); 4116 color:#fff; 4117 padding:10px 18px; 4118 border-radius:8px; 4119 font-size:14px; 4120 font-weight:500; 4121 font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif; 4122 white-space:nowrap; 4123 opacity:0; 4124 pointer-events:none; 4125 letter-spacing:.3px 4126} 4127.whatsapp-tooltip::after {
4128 content:''; 4129 right:-8px; 4130 border-left:8px solid rgba(0,0,0,.88); 4131 border-top:8px solid transparent; 4132 border-bottom:8px solid transparent 4133} 4134.whatsapp-btn:hover .whatsapp-tooltip { 4135 opacity:1; 4136 right:90px 4137} 4138@keyframes whatsappPulse { 4139 0% { 4140 box-shadow:0 0 0 0 rgba(37,211,102,.5) 4141 } 4142 70% { 4143 box-shadow:0 0 0 20px rgba(37,211,102,0) 4144 } 4145 100% { 4146 box-shadow:0 0 0 0 rgba(37,211,102,0) 4147 } 4148} 4149@media (max-width:768px) { 4150 .whatsapp-float { 4151 bottom:20px; 4152 right:20px 4153 } 4154 .whatsapp-btn { 4155 width:60px; 4156 height:60px 4157 } 4158 .whatsapp-btn img { 4159 width:30px; 4160 height:30px 4161 } 4162 .whatsapp-tooltip { 4163 display:none 4164 } 4165} 4166@media (max-width:480px) { 4167 .course-info { 4168 font-size:.85rem 4169 } 4170 .whatsapp-float { 4171 bottom:15px; 4172 right:15px 4173 } 4174 .whatsapp-btn { 4175 width:55px; 4176 height:55px 4177 } 4178 .whatsapp-btn img { 4179 width:28px; 4180 height:28px 4181 } 4182} 4183</style> 4184<div class="whatsapp-float"> 4185 4186 <a class="whatsapp-btn" target="_blank" id="long-landing" 4187 href="https://api.whatsapp.com/send?phone=34620847925&text=Hello,%20I%20want%20more%20information%20to%20learn%20Spanish%20in%20Spain" 4188 aria-label="Contactar por WhatsApp"> 4189 <img src="/static/img/logos/whatsapp_white.svg" 4190 alt="Whatsapp contact" 4191 width="40" height="40" 4192 loading="lazy"> 4193 <span class="whatsapp-tooltip">ð¬ Chat with us</span> 4194 </a> 4195 4196 </div> 4197<form id="whatsapp-lead-form" 4198 action="https://dencantocomm.my.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8" 4199 method="POST" 4200 target="whatsapp-lead-iframe" 4201 style="display: none;"> 4202 4203 <!-- OID de Salesforce (mismo que tu formulario) --> 4204 <input type="hidden" name="oid" value="00D7Q0000094QG2"> 4205 4206 <!-- RetURL (donde redirigir después del envÃo) --> 4207 4208 4209 <input type=hidden name="retURL" value="https://www.spanishcourseinspain.com/en/learn-spanish-spain/thank-you"> 4210 4211 4212 4213 <!-- Datos prefijados para el lead de WhatsApp --> 4214 <input type="hidden" id="whatsapp_first_name" name="first_name" value="Lead WhatsApp"> 4215 <input type="hidden" id="whatsapp_email" name="email" value="[email protected]"> 4216 4217 <!-- Teléfono (el del botón de WhatsApp) --> 4218 <input type="hidden" id="whatsapp_phone" name="phone" value=""> 4219 4220 <!-- Idioma (se rellenará con JavaScript) --> 4221 <input type="hidden" id="whatsapp_language" name="00N7Q00000D0K5s" value=""> 4222 4223 <!-- URL de origen (se rellenará con JavaScript) --> 4224 <input type="hidden" id="whatsapp_url_origen" name="00N7Q00000HSAxV" value="/en/"> 4225 4226 <!-- Fuente UTM (se rellenará con JavaScript) --> 4227 <input type="hidden" id="whatsapp_utm_source" name="00N7Q00000D0K2t" value="whatsapp"> 4228 4229 <!-- GCLID y FBCLID (se rellenan automáticamente) --> 4230 <input type="hidden" id="whatsapp_gclid" name="00N7Q00000HSAxL" value=""> 4231 <input type="hidden" id="whatsapp_fbclid" name="00N7Q00000HSAxQ" value=""> 4232</form> 4233 4234<!-- Iframe oculto para el envÃo del formulario --> 4235<iframe name="whatsapp-lead-iframe" style="display: none;"></iframe> 4236
4237<script> 4238document.addEventListener('DOMContentLoaded', function() { 4239 4240 // Obtener todos los botones de WhatsApp 4241 const whatsappBtns = document.querySelectorAll('.whatsapp-btn'); 4242 4243 // Función para obtener parámetros de la URL 4244 function getUrlParams() { 4245 const params = new URLSearchParams(window.location.search); 4246 return { 4247 gclid: params.get('gclid') || '', 4248 fbclid: params.get('fbclid') || '', 4249 utm_source: params.get('utm_source') || '', 4250 utm_medium: params.get('utm_medium') || '', 4251 utm_campaign: params.get('utm_campaign') || '' 4252 }; 4253 } 4254 4255 // Función para obtener el idioma actual del sitio 4256 function getCurrentLanguage() { 4257 // Primero intentar obtener el idioma del HTML 4258 const htmlLang = document.documentElement.lang; 4259 4260 // Mapeo de códigos de idioma a códigos cortos 4261 if (htmlLang) { 4262 if (htmlLang.startsWith('it')) return 'it'; 4263 if (htmlLang.startsWith('nl')) return 'nl'; 4264 if (htmlLang.startsWith('en')) return 'en'; 4265 if (htmlLang.startsWith('es')) return 'es'; 4266 } 4267 4268 // Si no se detecta del HTML, intentar de Django 4269 const djangoLang = 'en'; 4270 if (djangoLang) { 4271 if (djangoLang.startsWith('it')) return 'it'; 4272 if (djangoLang.startsWith('nl')) return 'nl'; 4273 if (djangoLang.startsWith('en')) return 'en'; 4274 if (djangoLang.startsWith('es')) return 'es'; 4275 } 4276 4277 // Idioma por defecto 4278 return 'en'; 4279 } 4280 4281 // Función para obtener el teléfono correcto según idioma 4282 function getWhatsAppPhone(language) { 4283 const phoneMap = { 4284 'en': '34620847925', 4285 'it': '3905221685888', 4286 'nl': '34620847925', 4287 'es': '34620847925' 4288 }; 4289 return phoneMap[language] || '34620847925'; 4290 } 4291 4292 // Función para obtener el mensaje correcto según idioma 4293 function getWhatsAppMessage(language) { 4294 const messages = { 4295 'en': 'Hi! I\'d like to get more information about learning Spanish in Spain.', 4296 'it': 'Ciao! Vorrei ricevere maggiori informazioni per imparare lo spagnolo in Spagna.', 4297 'nl': 'Hoi! Ik zou graag meer informatie willen over het leren van Spaans in Spanje', 4298 'es': 'Hi! I\'d like to get more information about learning Spanish in Spain.' 4299 }; 4300 return messages[language] || messages['en']; 4301 } 4302 4303 // Función para enviar el lead a Salesforce usando el formulario con iframe 4304 function sendWhatsAppLead(language, urlOrigen) { 4305 const params = getUrlParams(); 4306 const phone = getWhatsAppPhone(language); 4307 const languageName = { 4308 'en': 'Ingles', 4309 'it': 'Italiano', 4310 'nl': 'Neerlandés', 4311 'es': 'Español' 4312 }[language] || 'Ingles'; 4313 4314 // Actualizar retURL según idioma 4315 const retURLInput = document.querySelector('input[name="retURL"]'); 4316 if (retURLInput) { 4317 let retURL = ''; 4318 if (language === 'it') { 4319 retURL = 'https://www.spanishcourseinspain.com/it/campi-estivi/grazie'; 4320 } else if (language === 'en') { 4321 retURL = 'https://www.spanishcourseinspain.com/en/learn-spanish-spain/thank-you'; 4322 } else if (language === 'nl') { 4323 retURL = 'https://www.spanishcourseinspain.com/nl/leren-spaans-spanje/bedankt'; 4324 } else { 4325 retURL = 'https://www.spanishcourseinspain.com/en/learn-spanish-spain/thank-you'; 4326 } 4327 retURLInput.value = retURL; 4328 } 4329 4330 // Rellenar el formulario 4331 document.getElementById('whatsapp_phone').value = phone; 4332 document.getElementById('whatsapp_language').value = languageName; 4333 document.getElementById('whatsapp_utm_source').value = params.utm_source || 'whatsapp'; 4334 document.getElementById('whatsapp_gclid').value = params.gclid; 4335 document.getElementById('whatsapp_fbclid').value = params.fbclid; 4336 4337 // Enviar el formulario (se enviará al iframe, no redirigirá la página principal) 4338 const form = document.getElementById('whatsapp-lead-form'); 4339 form.submit(); 4340 } 4341 4342 // Añadir evento a cada botón de WhatsApp 4343 whatsappBtns.forEach(btn => { 4344 btn.addEventListener('click', function(e) { 4345 e.preventDefault(); 4346 4347 // Obtener el idioma actual 4348 const language = getCurrentLanguage(); 4349 4350 // Debug - puedes quitar esto después de verificar 4351 console.log('Idioma detectado:', language); 4352 console.log('Mensaje que se usará:', getWhatsAppMessage(language)); 4353 4354 // Obtener la URL de origen 4355 const urlOrigen = window.location.href; 4356 4357 // Obtener teléfono y mensaje según idioma 4358 const phone = getWhatsAppPhone(language); 4359 const message = encodeURIComponent(getWhatsAppMessage(language)); 4360 4361 // Construir URL de WhatsApp con el mensaje correcto
4362 const whatsappUrl = `https://api.whatsapp.com/send?phone=${phone}&text=${message}`; 4363 4364 // ENVIAR LEAD A SALESFORCE usando el formulario con target iframe 4365 sendWhatsAppLead(language, urlOrigen); 4366 4367 // ABRIR WHATSAPP inmediatamente (el formulario se procesa en el iframe) 4368 window.open(whatsappUrl, '_blank'); 4369 }); 4370 }); 4371 4372 // Debug inicial - puedes quitar esto después de verificar 4373 console.log('Botones WhatsApp encontrados:', whatsappBtns.length); 4374 console.log('Idioma detectado al cargar:', getCurrentLanguage()); 4375}); 4376</script>
4376 4377 4378 4379 4380
4380<script defer src="/static/js/bootstrap_home/js/bootstrap.bundle.min.js"></script>
4380 4381
4381<script defer src="/static/js/public/index/toggle_cities.js"></script>
4381 4382
4382<script defer src="/static/js/public/base/contactForm.js"></script>
4382 4383
4383<script defer src="/static/js/commons/cookies.js"></script>
4383 4384 4385 </body> 4386</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.