/*
 * Almisk Hello – estilos del tema.
 * Índice: 1 Fuentes · 2 Base · 3 Botones · 4 Barra superior y cabecera · 5 Pie · 6 Kit de secciones para
 * Elementor · 7 Páginas (viajes, contacto, ficha, blog) · 8 Formularios · 9 Responsive.
 *
 * Los colores salen de la maqueta y son los mismos que usa el plugin (variables --amk-*).
 */

/* =========================================================================
   1. Fuentes alojadas en el propio servidor (sin Google Fonts: RGPD + velocidad)
   ========================================================================= */
@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-weight: 400 800; font-display: swap; src: url(../fonts/plus-jakarta-sans-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-weight: 400 800; font-display: swap; src: url(../fonts/plus-jakarta-sans-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Fraunces'; font-style: normal; font-weight: 500 700; font-display: swap; src: url(../fonts/fraunces-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Fraunces'; font-style: normal; font-weight: 500 700; font-display: swap; src: url(../fonts/fraunces-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Noto Naskh Arabic'; font-style: normal; font-weight: 400 700; font-display: swap; src: url(../fonts/noto-naskh-arabic.woff2) format('woff2'); unicode-range: U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+1EE00-1EEFF; }

/* =========================================================================
   2. Base
   ========================================================================= */
:root {
	/* Paleta (la misma del plugin; se repite aquí por si el plugin estuviera desactivado) */
	--amk-verde-950: #052117; --amk-verde-900: #0a3524; --amk-verde-800: #0e4a31; --amk-verde-700: #136343; --amk-verde-600: #1a8455;
	--amk-verde-claro: #eaf6ec; --amk-oro: #c9971b; --amk-oro-texto: #8a6410; --amk-oro-claro: #ffcc00; --amk-oro-suave: #fbf3df; --amk-granate: #660000;
	--amk-gris: #5e6f66; --amk-tinta: #12211b; --amk-linea: #e4e8e5; --amk-crema: #fbf9f4; --amk-radio: 14px;
	--amk-sombra: 0 10px 30px rgba(6, 40, 26, .08); --amk-sombra-alta: 0 22px 55px rgba(6, 40, 26, .16);
	--amk-fuente-titulos: 'Fraunces', Georgia, serif;
	--amk-ancho: 1210px;
	--amk-margen: 26px;
	--fuente-texto: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
html { scroll-behavior: smooth; }
body {
	margin: 0; font-family: var(--fuente-texto); color: var(--amk-tinta, #12211b); background: #fff;
	font-size: 16px; line-height: 1.65; -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, h5, h6 { font-family: var(--amk-fuente-titulos); line-height: 1.18; font-weight: 600; letter-spacing: -0.01em; font-optical-sizing: auto; color: var(--amk-verde-950, #052117); }
a { color: var(--amk-verde-700, #136343); }
img { max-width: 100%; height: auto; }
.ar, [lang="ar"] { font-family: 'Noto Naskh Arabic', serif; direction: rtl; }
::selection { background: var(--amk-oro-claro, #fc0); color: var(--amk-verde-950, #052117); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible {
	outline: 2px solid var(--amk-verde-600, #1a8455); outline-offset: 2px;
}
.contenedor { max-width: var(--amk-ancho); margin: 0 auto; padding: 0 var(--amk-margen); }
.skip-link:focus { z-index: 999; background: #fff; padding: 10px 16px; }

/* Contenedores de Elementor con el mismo ancho que la maqueta y sin relleno por defecto
   (cada sección pone el suyo con sus clases: así todo queda alineado a la misma línea) */
.elementor .e-con {
	--content-width: calc(var(--amk-ancho) - 2 * var(--amk-margen));
	--container-default-padding-top: 0px; --container-default-padding-right: 0px;
	--container-default-padding-bottom: 0px; --container-default-padding-left: 0px;
}
.elementor .e-con.e-parent { --padding-left: var(--amk-margen); --padding-right: var(--amk-margen); }

/* =========================================================================
   3. Botones (los del tema y los del widget «Botón» de Elementor con clase)
   ========================================================================= */
.btn, [class*="boton-"] .elementor-button {
	display: inline-flex; align-items: center; justify-content: center; gap: 9px;
	padding: 14px 28px; border-radius: 999px; font-family: var(--fuente-texto); font-weight: 700;
	font-size: 13.5px; letter-spacing: .06em; text-transform: uppercase; line-height: 1.2;
	border: 2px solid transparent; transition: background .2s, color .2s, border-color .2s; white-space: nowrap; text-decoration: none;
}
.btn--sm { padding: 10px 20px; font-size: 12px; }
.btn--oro { background: var(--amk-oro-claro); color: var(--amk-verde-950); border-color: var(--amk-oro-claro); }
.btn--oro:hover { background: #ffd633; border-color: #ffd633; color: var(--amk-verde-950); }
.btn--linea { background: transparent; border-color: rgba(255, 255, 255, .55); color: #fff; }
.btn--linea:hover { background: rgba(255, 255, 255, .1); border-color: #fff; color: #fff; }
.btn--verde, .boton-verde .elementor-button { background: var(--amk-verde-700); color: #fff; border-color: var(--amk-verde-700); }
.btn--verde:hover, .boton-verde .elementor-button:hover { background: var(--amk-verde-800); border-color: var(--amk-verde-800); color: #fff; }
.boton-oro .elementor-button { background: var(--amk-oro-claro); color: var(--amk-verde-950); border-color: var(--amk-oro-claro); }
.boton-oro .elementor-button:hover { background: #ffd633; color: var(--amk-verde-950); }
.boton-linea .elementor-button { background: transparent; border-color: rgba(255, 255, 255, .55); color: #fff; }
.boton-linea .elementor-button:hover { background: rgba(255, 255, 255, .1); color: #fff; border-color: #fff; }
.boton-linea-verde .elementor-button { background: transparent; border-color: var(--amk-verde-700); color: var(--amk-verde-800); }
.boton-linea-verde .elementor-button:hover { background: var(--amk-verde-700); color: #fff; }
.boton-wa .elementor-button { background: #25d366; color: #053b1c; border-color: #25d366; }
.boton-wa .elementor-button:hover { background: #1fbe5b; color: #053b1c; }
.boton-ancho .elementor-button { width: 100%; }
.elementor-button .elementor-button-icon svg { width: 14px; height: 14px; fill: currentColor; }
/* Iconos de línea subidos como SVG (los de la maqueta): trazo del color del texto, sin relleno.
   Los de Font Awesome (.e-font-icon-svg) siguen usando relleno. */
.elementor-button .elementor-button-icon svg:not(.e-font-icon-svg) { fill: none; stroke: currentColor; }
.elementor-button-content-wrapper { gap: 9px; align-items: center; }

/* =========================================================================
   4. Barra superior y cabecera
   ========================================================================= */
.topbar { background: var(--amk-verde-950); color: #9fbcae; font-size: 13px; }
.topbar .contenedor { display: flex; justify-content: space-between; align-items: center; gap: 20px; min-height: 44px; }
.topbar b { color: #fff; font-weight: 600; }
.topbar a { color: inherit; text-decoration: none; }
.topbar-izq, .topbar-der { display: flex; align-items: center; gap: 10px 22px; }
.topbar-izq .amk-ico { width: 15px; height: 15px; color: var(--amk-oro-claro); }
.topbar .sep { width: 1px; height: 16px; background: rgba(255, 255, 255, .18); }

.site-cabecera { position: sticky; top: -44px; z-index: 50; }
.admin-bar .site-cabecera { top: -12px; }
/* Alto de la parte fija de la cabecera (la del tema o la hecha con Elementor, que mide lo mismo):
   la caja de reserva de la ficha se pega justo debajo y la cabecera ya no tapa sus fechas. */
body.almisk-hello { --amk-tope-fijo: 93px; }
@media (max-width: 1024px) { body.almisk-hello { --amk-tope-fijo: 77px; } }
@media (min-width: 783px) { body.almisk-hello.admin-bar { --amk-tope-fijo: 125px; } }
@media (min-width: 783px) and (max-width: 1024px) { body.almisk-hello.admin-bar { --amk-tope-fijo: 109px; } }
.cabecera { background: #fff; border-bottom: 1px solid var(--amk-linea); }
.cabecera .contenedor { display: flex; align-items: center; justify-content: space-between; gap: 26px; height: 92px; }
.logo { display: block; flex: none; }
.logo-img { height: 66px; width: auto; display: block; }
.nav-lista { display: flex; align-items: center; gap: 26px; list-style: none; margin: 0; padding: 0; }
.nav-lista > li { position: relative; }
.nav-lista a {
	display: block; font-size: 13px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase;
	color: var(--amk-verde-900); padding: 6px 0; position: relative; text-decoration: none;
}
.nav-lista a:hover { color: var(--amk-verde-600); }
.nav-lista .current-menu-item > a, .nav-lista .current-menu-ancestor > a, .nav-lista .current-page-ancestor > a { color: var(--amk-verde-600); }
.nav-lista .current-menu-item > a::after, .nav-lista .current-menu-ancestor > a::after, .nav-lista .current-page-ancestor > a::after {
	content: ''; position: absolute; left: 0; right: 0; bottom: -2px; height: 2px; background: var(--amk-oro-claro);
}
.nav-lista .sub-menu {
	position: absolute; left: -16px; top: 100%; min-width: 250px; list-style: none; margin: 0; padding: 10px 0;
	background: #fff; border: 1px solid var(--amk-linea); border-radius: 12px; box-shadow: var(--amk-sombra-alta);
	opacity: 0; visibility: hidden; transform: translateY(6px); transition: .2s; z-index: 60;
}
.nav-lista li:hover > .sub-menu, .nav-lista li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.nav-lista .sub-menu a { padding: 9px 18px; font-size: 12px; }
.nav-lista .menu-item-has-children > a { padding-right: 14px; }
.nav-lista .menu-item-has-children > a::before { content: ''; position: absolute; right: 0; top: 50%; margin-top: -3px; border: 4px solid transparent; border-top-color: currentColor; border-bottom: 0; opacity: .5; }
.nav-movil, .sub-boton { display: none; }
.cab-cta { display: flex; align-items: center; gap: 16px; }
.cab-tel { text-align: right; line-height: 1.3; }
.cab-tel span { display: block; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--amk-gris); }
.cab-tel a { text-decoration: none; }
.cab-tel b { font-size: 18px; color: var(--amk-verde-800); font-family: var(--amk-fuente-titulos); font-weight: 600; }
.menu-boton, .menu-boton:hover, .menu-boton:focus, .menu-boton:active {
	display: none; align-items: center; justify-content: center; width: 46px; height: 46px; padding: 0; flex: none;
	background: #fff; border: 1.5px solid var(--amk-linea); border-radius: 12px; color: var(--amk-verde-900); cursor: pointer;
	transition: background .2s, border-color .2s, color .2s;
}
.menu-boton:hover { border-color: var(--amk-verde-700); }
/* Tres rayas que se convierten en una X al abrir */
.menu-barras { position: relative; display: block; width: 20px; height: 14px; }
.menu-barras span { position: absolute; left: 0; width: 100%; height: 2px; border-radius: 2px; background: currentColor; transition: transform .25s, opacity .2s, top .25s, width .25s; }
.menu-barras span:nth-child(1) { top: 0; }
.menu-barras span:nth-child(2) { top: 6px; }
.menu-barras span:nth-child(3) { top: 12px; width: 65%; }
.menu-abierto .menu-boton, .menu-abierto .menu-boton:hover, .menu-abierto .menu-boton:focus { background: var(--amk-verde-950); border-color: var(--amk-verde-950); color: #fff; }
.menu-abierto .menu-barras span:nth-child(1) { top: 6px; transform: rotate(45deg); }
.menu-abierto .menu-barras span:nth-child(2) { opacity: 0; }
.menu-abierto .menu-barras span:nth-child(3) { top: 6px; width: 100%; transform: rotate(-45deg); }

/* =========================================================================
   5. Pie
   ========================================================================= */
.pie { background: var(--amk-verde-950); color: #9fbcae; padding: 72px 0 0; font-size: 14.5px; }
.pie a { color: inherit; text-decoration: none; }
.pie a:hover { color: var(--amk-oro-claro); }
.pie-grid { display: grid; grid-template-columns: 1.35fr .8fr .8fr .8fr; gap: 44px; }
.pie-titulo { color: #fff; font-family: var(--fuente-texto); font-size: 12.5px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; margin: 0 0 22px; }
.pie ul { list-style: none; margin: 0; padding: 0; }
.pie-col li { padding: 6px 0; }
.pie-logo img { height: 54px; width: auto; margin-bottom: 20px; }
.pie-dato { display: flex; gap: 12px; padding: 8px 0; margin: 0; align-items: flex-start; }
.pie-dato .amk-ico { width: 17px; height: 17px; color: var(--amk-oro-claro); flex: none; margin-top: 4px; }
.pie-dato b { color: #fff; font-weight: 600; }
.redes { display: flex; gap: 10px; margin-top: 22px !important; }
.redes a { width: 36px; height: 36px; border-radius: 50%; background: rgba(255, 255, 255, .08); display: flex; align-items: center; justify-content: center; color: #cfe0d7; }
.redes .amk-ico { width: 16px; height: 16px; }
.pie-bajo { margin-top: 56px; border-top: 1px solid rgba(255, 255, 255, .1); padding: 22px 0; display: flex; justify-content: space-between; gap: 18px; font-size: 13px; flex-wrap: wrap; }
.pie-legal { display: flex; gap: 6px 16px; flex-wrap: wrap; }

.wa-flotante {
	position: fixed; right: 26px; bottom: calc(26px + env(safe-area-inset-bottom, 0px)); width: 58px; height: 58px; border-radius: 50%;
	background: #25d366; color: #fff; display: flex; align-items: center; justify-content: center;
	box-shadow: 0 8px 24px rgba(37, 211, 102, .45); z-index: 60; transition: transform .2s;
}
.wa-flotante:hover { transform: scale(1.06); color: #fff; }
.wa-flotante .amk-ico { width: 30px; height: 30px; }

/* =========================================================================
   6. Kit de secciones para Elementor (clases en «Avanzado › Clases CSS»)
   ========================================================================= */
.sec { --padding-top: 86px; --padding-bottom: 86px; }
.sec--crema { background-color: var(--amk-crema); }
.sec--verde { background-color: var(--amk-verde-950); color: #dce9e2; }
.sec--sin-arriba { --padding-top: 0px; }

/* Titulares */
.eyebrow .elementor-heading-title {
	display: block; font-family: var(--fuente-texto); font-size: 12px; letter-spacing: .22em; text-transform: uppercase;
	color: var(--amk-oro-texto); font-weight: 700; line-height: 1.4;
}
.titulo-sec { --gap: 0px; text-align: center; max-width: 760px; margin: 0 auto 52px; }
.titulo-sec .eyebrow { margin-bottom: 12px; }
.titulo-sec h2.elementor-heading-title { font-size: 41px; margin: 0 0 16px; }
.titulo-sec .elementor-widget-text-editor { color: var(--amk-gris); font-size: 16.5px; }
.titulo-sec .elementor-widget-text-editor p { margin: 0; }
.sec--verde .titulo-sec h2.elementor-heading-title { color: #fff; }
.sec--verde .titulo-sec .elementor-widget-text-editor { color: #a9c3b6; }
.centro { text-align: center; }
.centro .elementor-button-wrapper, .elementor-widget-button.centro { text-align: center; }
.mt-48 { margin-top: 48px; }

/* Hero de Inicio */
.hero { position: relative; color: #fff; --padding-top: 104px; --padding-bottom: 0px; min-height: 0; }
.hero .elementor-background-overlay, .hero::before { pointer-events: none; }
.hero::before {
	content: ''; position: absolute; inset: 0; z-index: 0; border-radius: inherit;
	background:
		linear-gradient(180deg, rgba(5, 33, 23, .55) 0%, rgba(5, 33, 23, 0) 22%, rgba(5, 33, 23, .55) 74%, rgba(5, 33, 23, .92) 100%),
		linear-gradient(105deg, rgba(5, 33, 23, .95) 0%, rgba(5, 33, 23, .82) 44%, rgba(5, 33, 23, .46) 100%);
}
.hero > .e-con-inner { position: relative; z-index: 1; }
.hero-txt { max-width: 700px; --gap: 0px; }
.kicker .elementor-heading-title {
	display: inline-flex; align-items: center; gap: 10px; font-family: var(--fuente-texto); font-size: 11.5px; letter-spacing: .24em;
	text-transform: uppercase; font-weight: 700; color: var(--amk-oro-claro); margin-bottom: 22px; line-height: 1.55;
}
.kicker .elementor-heading-title::before { content: ''; width: 38px; height: 2px; background: var(--amk-oro-claro); }
.hero h1.elementor-heading-title { font-size: 64px; line-height: 1.06; margin: 0 0 10px; color: #fff; }
.hero h1 em, .acento em { font-style: normal; color: var(--amk-oro-claro); }
.ar-hero { font-size: 24px; color: #bfd6c9; margin: 0 0 20px; }
.ar-hero p { margin: 0; }
.lead { font-size: 18.5px; color: #d8e6de; max-width: 590px; margin-bottom: 34px; }
.lead p { margin: 0; }
.hero-botones { --gap: 14px; margin-bottom: 52px; }

/* Tira de garantías */
.tira { --gap: 0px; position: relative; z-index: 1; background: rgba(255, 255, 255, .07); backdrop-filter: blur(6px); border-top: 1px solid rgba(255, 255, 255, .14); margin: 0 calc(-1 * var(--amk-margen)); padding: 0 var(--amk-margen); width: auto !important; }
.elementor .tira .elementor-icon-box-wrapper, .elementor .pq .elementor-icon-box-wrapper, .elementor .datos-contacto .elementor-icon-box-wrapper { display: flex; flex-direction: row; text-align: start; }
.elementor .serv .elementor-icon-box-wrapper { text-align: start; }
.tira .elementor-icon-box-wrapper { align-items: center; gap: 13px; }
.tira .elementor-widget-icon-box { padding: 24px 22px; border-right: 1px solid rgba(255, 255, 255, .12); }
.tira .elementor-widget-icon-box:first-child { padding-left: 0; }
.tira .elementor-widget-icon-box:last-child { border-right: 0; }
.tira .elementor-icon-box-icon { margin: 0 !important; line-height: 0; }
.tira .elementor-icon { font-size: 26px; color: var(--amk-oro-claro); fill: var(--amk-oro-claro); }
.tira .elementor-icon { color: var(--amk-oro-claro); }
.tira .elementor-icon svg { width: 24px; height: 24px; fill: var(--amk-oro-claro); }
.tira .elementor-icon-box-title { font-family: var(--fuente-texto); font-size: 14.5px; color: #fff; font-weight: 700; margin: 0; line-height: 1.35; }
.tira .elementor-icon-box-description { font-size: 12.5px; color: #a9c3b6; margin: 0; }

/* Barra «Próxima salida» */
.prox { background-color: var(--amk-oro-claro); --padding-top: 0px; --padding-bottom: 0px; }

/* Nosotros */
.nosotros { --gap: 66px; --align-items: center; align-items: center; }
.nosotros-img { position: relative; }
.nosotros-img img { border-radius: var(--amk-radio); box-shadow: var(--amk-sombra-alta); width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.nosotros-img::after { content: ''; position: absolute; inset: -18px -18px auto auto; width: 72%; height: 72%; border: 3px solid var(--amk-oro-claro); border-radius: var(--amk-radio); z-index: -1; }
.sello { position: absolute !important; left: -26px; bottom: 26px; width: auto !important; max-width: 250px; background: #fff; border-radius: var(--amk-radio); box-shadow: var(--amk-sombra-alta); --padding-top: 18px; --padding-bottom: 18px; --padding-left: 24px !important; --padding-right: 24px !important; flex-direction: row !important; align-items: center; --gap: 14px; }
.sello .cifra-num .elementor-heading-title { font-family: var(--amk-fuente-titulos); font-size: 34px; color: var(--amk-verde-700); line-height: 1; font-weight: 600; }
.sello .cifra-txt { font-size: 12.5px; color: var(--amk-gris); line-height: 1.35; max-width: 110px; }
.sello .cifra-txt p { margin: 0; }
.nosotros-txt { --gap: 0px; }
.nosotros-txt h2.elementor-heading-title { font-size: 41px; margin: 12px 0 18px; }
.nosotros-txt .elementor-widget-text-editor { color: var(--amk-gris); font-size: 16.5px; }
.cita-ar { background: var(--amk-verde-claro); border-right: 4px solid #33cc33; padding: 18px 22px; border-radius: 10px; font-size: 17px; color: var(--amk-verde-900); margin: 10px 0 30px; font-family: 'Noto Naskh Arabic', serif; direction: rtl; }
.cita-ar p { margin: 0; }

/* Servicios */
.servicios { --gap: 26px; }
.serv { background: #fff; border: 1px solid var(--amk-linea); border-radius: var(--amk-radio); padding: 34px 30px; transition: box-shadow .25s, border-color .25s; }
.serv:hover { box-shadow: var(--amk-sombra-alta); border-color: transparent; }
.serv .elementor-icon-box-wrapper { text-align: left; }
.serv .elementor-icon-box-icon { margin-bottom: 20px !important; display: inline-flex; }
.serv .elementor-icon { width: 58px; height: 58px; border-radius: 14px; background: var(--amk-verde-claro); display: flex; align-items: center; justify-content: center; }
.serv .elementor-icon { color: var(--amk-verde-700); }
.serv .elementor-icon svg { width: 24px; height: 24px; fill: var(--amk-verde-700); }
.serv .elementor-icon-box-title { font-size: 21px; margin: 0 0 10px; color: var(--amk-verde-950); }
.serv .elementor-icon-box-description { color: var(--amk-gris); font-size: 15px; margin: 0; }
.serv--destacado { background: var(--amk-verde-900); border-color: var(--amk-verde-900); }
.serv--destacado .elementor-icon { background: rgba(255, 255, 255, .12); }
.serv--destacado .elementor-icon { color: var(--amk-oro-claro); }
.serv--destacado .elementor-icon svg { fill: var(--amk-oro-claro); }
.serv--destacado .elementor-icon-box-title { color: #fff; }
.serv--destacado .elementor-icon-box-description { color: #a9c3b6; }

/* Por qué Almisk */
.porque { --gap: 34px 40px; }
.pq .elementor-icon-box-wrapper { gap: 18px; align-items: flex-start; }
.pq .elementor-icon-box-icon { margin: 0 !important; flex: none; }
.pq .elementor-icon { width: 52px; height: 52px; border-radius: 50%; border: 2px solid var(--amk-oro-claro); display: flex; align-items: center; justify-content: center; }
.pq .elementor-icon { color: var(--amk-oro-claro); }
.pq .elementor-icon svg { width: 22px; height: 22px; fill: var(--amk-oro-claro); }
.pq .elementor-icon-box-title { font-size: 19px; margin: 0 0 8px; color: #fff; }
.pq .elementor-icon-box-description { font-size: 15px; color: #a9c3b6; margin: 0; }

/* Qué incluye (Inicio) */
.incluye-wrap { --gap: 46px; align-items: start; }
.caja-inc { background: #fff; border-radius: var(--amk-radio); padding: 30px 28px; box-shadow: var(--amk-sombra); --gap: 0px; }
.caja-inc h3.elementor-heading-title { font-size: 19px; display: flex; align-items: center; gap: 10px; margin: 0 0 18px; }
.caja-inc h3.elementor-heading-title::before { content: '✓'; width: 26px; height: 26px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 800; color: #fff; background: var(--amk-verde-600); font-family: var(--fuente-texto); }
.caja-inc--no h3.elementor-heading-title::before { content: '✕'; background: #c0553f; }
.caja-inc--info h3.elementor-heading-title::before { content: 'i'; background: var(--amk-oro); }
.caja-inc .elementor-icon-list-items { font-size: 14.5px; color: var(--amk-gris); }
.caja-inc .elementor-icon-list-item { padding: 7px 0 !important; border-bottom: 1px dashed var(--amk-linea); align-items: flex-start !important; }
.caja-inc .elementor-icon-list-item:last-child { border-bottom: 0; }
.caja-inc .elementor-icon-list-icon svg { width: 8px !important; height: 8px !important; fill: #33cc33; margin-top: 8px; }
.caja-inc--no .elementor-icon-list-icon svg, .caja-inc--info .elementor-icon-list-icon svg { fill: #e0b4a8; }
.caja-inc .elementor-icon-list-text { color: var(--amk-gris); padding-left: 12px !important; }
.precios-caja { background: var(--amk-verde-900); color: #fff; border-radius: var(--amk-radio); padding: 32px 30px; --gap: 0px; }
.precios-caja h3.elementor-heading-title { font-size: 22px; color: #fff; margin: 0 0 6px; }
.precios-caja .sub { font-size: 13.5px; color: #a9c3b6; margin-bottom: 18px; }
.precios-caja table { width: 100%; border-collapse: collapse; font-size: 15px; margin: 0; }
.precios-caja td { padding: 13px 0; border: 0; border-bottom: 1px solid rgba(255, 255, 255, .13); background: none !important; color: #fff; }
.precios-caja td:last-child { text-align: right; font-weight: 800; color: var(--amk-oro-claro); font-size: 16px; }
.precios-caja tr:last-child td { border-bottom: 0; }
.precios-caja .nota { font-size: 12.5px; color: #9fbcae; margin: 6px 0 22px; padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, .13); }

/* Estadísticas */
.stat { text-align: center; --gap: 10px; align-items: center; }
.stat .cifra-num .elementor-heading-title { font-family: var(--amk-fuente-titulos); font-size: 52px; color: var(--amk-oro-claro); line-height: 1; font-weight: 600; }
.stat .cifra-txt { font-size: 13.5px; letter-spacing: .1em; text-transform: uppercase; color: #a9c3b6; line-height: 1.4; }
.stat .cifra-txt p { margin: 0; }

/* Hajj */
.hajj { --gap: 0px; border-radius: 18px; overflow: hidden; box-shadow: var(--amk-sombra-alta); align-items: stretch; }
.hajj-img { min-height: 390px; position: relative; --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px !important; --padding-right: 0px !important; }
.hajj-img > .elementor-widget-image { position: absolute !important; inset: 0; width: 100% !important; height: 100%; margin: 0 !important; }
.hajj-img img { width: 100%; height: 100% !important; object-fit: cover; display: block; }
.hajj-txt { background: var(--amk-verde-900); color: #fff; --padding-top: 56px; --padding-bottom: 56px; --padding-left: 52px !important; --padding-right: 52px !important; --gap: 0px; justify-content: center; }
.hajj-txt .eyebrow .elementor-heading-title { color: var(--amk-oro-claro); font-size: 11.5px; letter-spacing: .24em; }
.hajj-txt h2.elementor-heading-title { font-size: 38px; margin: 14px 0 16px; color: #fff; }
.hajj-txt .elementor-widget-text-editor { color: #a9c3b6; font-size: 16px; }
.hajj-lista { margin-bottom: 30px; }
.hajj-lista .elementor-icon-list-item { padding: 6px 0 !important; align-items: flex-start !important; }
.hajj-lista .elementor-icon-list-icon svg { width: 16px !important; height: 16px !important; fill: #33cc33; margin-top: 5px; }
.hajj-lista .elementor-icon-list-text { color: #dce9e2; font-size: 15px; padding-left: 10px !important; }

/* Blog: rejilla y tarjetas de artículo (inicio, índice del blog y «Más artículos»).
   La rejilla se llama .entradas y no .blog porque WordPress pone la clase «blog» en el <body>. */
.entradas { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.post-tarjeta { background: #fff; border-radius: var(--amk-radio); overflow: hidden; box-shadow: var(--amk-sombra); border: 1px solid var(--amk-linea); display: flex; flex-direction: column; }
.post-foto { aspect-ratio: 16 / 10; overflow: hidden; position: relative; display: block; isolation: isolate; background: #e6ece8; }
.post-foto img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.1s cubic-bezier(.22, .61, .36, 1); will-change: transform; backface-visibility: hidden; }
.post-tarjeta:hover .post-foto img { transform: scale(1.05); }
.post-cat { position: absolute; left: 14px; bottom: 14px; background: var(--amk-verde-700); color: #fff; font-size: 10.5px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; padding: 6px 12px; border-radius: 6px; }
.post-cuerpo { padding: 24px 24px 26px; display: flex; flex-direction: column; flex: 1; }
.post-fecha { display: block; font-size: 12.5px; color: var(--amk-gris); letter-spacing: .04em; margin-bottom: 9px; }
.post-titulo { font-size: 20px; margin: 0 0 10px; line-height: 1.3; }
.post-titulo a { color: var(--amk-verde-950); text-decoration: none; }
.post-titulo a:hover { color: var(--amk-verde-600); }
.post-tarjeta p { font-size: 14.5px; color: var(--amk-gris); margin: 0 0 14px; }
.post-tarjeta .enlace { margin-top: auto; }
.enlace { font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--amk-verde-700); text-decoration: none; }

/* Banda final con foto */
.cta-banda { color: #fff; text-align: center; --padding-top: 86px; --padding-bottom: 86px; }
.cta-banda h2.elementor-heading-title { font-size: 43px; margin: 0 0 14px; color: #fff; }
.cta-banda .elementor-widget-text-editor { color: #c7dad0; font-size: 17.5px; max-width: 610px; margin: 0 auto 32px; }
.cta-banda .elementor-widget-text-editor p { margin: 0; }
.botonera { --gap: 14px; justify-content: center; }

/* =========================================================================
   7. Páginas
   ========================================================================= */
/* Cabecera de página interior (Viajes, Pedir precio) */
.cab-pagina { color: #fff; --padding-top: 56px; --padding-bottom: 62px; }
.cab-pagina::before { content: ''; position: absolute; inset: 0; z-index: 0; background: linear-gradient(90deg, rgba(5, 33, 23, .93), rgba(5, 33, 23, .62)); pointer-events: none; }
.cab-pagina > .e-con-inner { position: relative; z-index: 1; --gap: 0px; }
.cab-pagina h1.elementor-heading-title { font-size: 46px; color: #fff; margin: 0 0 14px; line-height: 1.12; }
.cab-pagina .elementor-widget-text-editor { color: #c7dad0; font-size: 17px; max-width: 640px; }
.cab-pagina .elementor-widget-text-editor p { margin: 0; }
.migas, .migas .elementor-widget-container { font-size: 12.5px; color: #a9c3b6; letter-spacing: .04em; margin-bottom: 18px; }
.migas a { color: inherit; text-decoration: none; }
.migas a:hover { color: var(--amk-oro-claro); }
.migas .breadcrumb_last { color: #fff; }
.datos-contacto { --gap: 14px 34px; margin-top: 24px; }
.datos-contacto .elementor-icon-box-wrapper { gap: 10px; align-items: flex-start; }
.datos-contacto .elementor-icon-box-icon { margin: 0 !important; }
.datos-contacto .elementor-icon { color: var(--amk-oro-claro); }
.datos-contacto .elementor-icon svg { width: 18px; height: 18px; fill: var(--amk-oro-claro); }
.datos-contacto .elementor-icon-box-title { font-family: var(--fuente-texto); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: #a9c3b6; font-weight: 600; margin: 0; }
.datos-contacto .elementor-icon-box-description { font-size: 15px; font-weight: 700; color: #fff; margin: 0; }
.datos-contacto a { color: #fff; text-decoration: none; }

/* Filtros por anclas */
.chips { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; margin-bottom: 50px; }
.chip { padding: 11px 22px; border-radius: 999px; border: 1.5px solid var(--amk-linea); background: #fff; font-size: 13px; font-weight: 700; letter-spacing: .04em; color: var(--amk-verde-800); transition: .2s; text-decoration: none; }
.chip:hover { border-color: var(--amk-verde-600); color: var(--amk-verde-800); }
.chip.on { background: var(--amk-verde-800); border-color: var(--amk-verde-800); color: #fff; }

/* Cabecera de cada grupo de viajes */
.grupo { scroll-margin-top: 120px; margin-bottom: 76px; --gap: 0px; flex-wrap: nowrap; } /* sin wrap: en móvil Chrome dejaba ~250px vacíos bajo las tarjetas */
.grupo-cabeza { --gap: 24px; align-items: flex-end; justify-content: space-between; --padding-bottom: 18px; margin-bottom: 30px; border-bottom: 2px solid var(--amk-linea); flex-wrap: wrap; }
.grupo-cabeza > .e-con { width: auto; flex: 1 1 340px; --gap: 0px; }
.grupo-cabeza > .elementor-widget-text-editor { flex: 0 1 430px; }
.grupo-cabeza h2.elementor-heading-title { font-size: 31px; margin: 6px 0 0; }
.grupo-cabeza .eyebrow .elementor-heading-title { font-size: 11.5px; letter-spacing: .2em; font-weight: 800; }
.grupo-cabeza .elementor-widget-text-editor { color: var(--amk-gris); font-size: 15px; max-width: 430px; }
.grupo-cabeza .elementor-widget-text-editor p { margin: 0; }

/* Ficha del paquete (plantilla del tema) */
body .site-main.ficha-paquete, body:not([class*="elementor-page-"]) .site-main.ficha-paquete { padding: 0; max-width: none; width: 100%; margin: 0; }
.ficha-cuerpo { padding-top: 64px; padding-bottom: 80px; }
.ficha-paquete .amk-ficha-grid { gap: 52px; }
.ficha-paquete .amk-bloque > .amk-titulo { font-size: 29px; }
.ficha-paquete .amk-descripcion p { color: var(--amk-gris); font-size: 16px; }

/* Contacto */
.contacto-grid { --gap: 52px; --align-items: start; align-items: start; }
.formulario { background: #fff; border: 1px solid var(--amk-linea); border-radius: 18px; --padding-top: 38px; --padding-bottom: 34px; --padding-left: 38px !important; --padding-right: 38px !important; box-shadow: var(--amk-sombra); --gap: 0px; }
.formulario h2.elementor-heading-title { font-size: 29px; margin: 0 0 8px; }
.formulario .intro { color: var(--amk-gris); font-size: 15.5px; margin-bottom: 28px; }
.tarjetas-contacto { --gap: 18px; }
.tc { background: #fff; border: 1px solid var(--amk-linea); border-radius: var(--amk-radio); --padding-top: 26px; --padding-bottom: 26px; --padding-left: 26px !important; --padding-right: 26px !important; box-shadow: var(--amk-sombra); --gap: 0px; }
.tc--verde { background: var(--amk-verde-900); border-color: var(--amk-verde-900); color: #fff; }
.tc h3.elementor-heading-title { font-size: 20px; margin: 0 0 14px; }
.tc--verde h3.elementor-heading-title { color: #fff; }
.tc .elementor-icon-list-item { align-items: flex-start !important; padding: 7px 0 !important; }
.tc .elementor-icon-list-icon { color: var(--amk-verde-600); }
.tc .elementor-icon-list-icon svg { width: 16px !important; height: 16px !important; fill: var(--amk-verde-600); margin-top: 4px; }
.tc--verde .elementor-icon-list-icon { color: var(--amk-oro-claro); }
.tc--verde .elementor-icon-list-icon svg { fill: var(--amk-oro-claro); }
.tc .elementor-icon-list-text { font-size: 14.5px; color: var(--amk-gris); padding-left: 10px !important; }
.tc--verde .elementor-icon-list-text { color: #a9c3b6; }
.tc .elementor-icon-list-text b { display: block; color: var(--amk-verde-800); font-size: 15px; }
.tc--verde .elementor-icon-list-text b { color: #fff; }
.tc .elementor-widget-button { margin-top: 16px; }
.horario-tabla { width: 100%; border-collapse: collapse; font-size: 14.5px; margin: 0; }
.horario-tabla td, .horario-tabla th { padding: 9px 0; border: 0; border-bottom: 1px dashed var(--amk-linea); color: var(--amk-gris); background: none !important; text-align: left; font-weight: 400; }
.horario-tabla td { text-align: right; font-weight: 700; color: var(--amk-verde-800); }
.horario-tabla tr:last-child td, .horario-tabla tr:last-child th { border-bottom: 0; }
.horario-tabla .cerrado { color: #b4544a; }
.faq-pagina { max-width: 900px; margin: 0 auto; width: 100%; }
/* Mapa de la oficina (imagen estática + enlace a Google Maps: sin incrustar, sin cookies de terceros) */
.mapa { margin-top: 64px; border-radius: 18px; overflow: hidden; box-shadow: var(--amk-sombra); border: 1px solid var(--amk-linea); background: #fff; --gap: 0px; }
.mapa .mapa-img img { width: 100%; height: 400px; object-fit: cover; display: block; }
.mapa-pie { flex-direction: row !important; flex-wrap: wrap; align-items: center; justify-content: space-between; --gap: 16px; --padding-top: 20px; --padding-bottom: 20px; --padding-left: 26px; --padding-right: 26px; }
.mapa-pie .elementor-widget-text-editor p { margin: 0; }
.mapa-pie b { display: block; font-family: var(--amk-fuente-titulos); font-size: 16px; color: var(--amk-verde-950); }
.mapa-pie .elementor-widget-text-editor span { display: block; font-size: 14px; color: var(--amk-gris); }
.mapa-pie .elementor-widget-text-editor .mapa-credito { font-size: 11.5px; margin-top: 4px; }
.faq-pagina .amk-faq { border-top: 1px solid var(--amk-linea); }
.faq-pagina details { border-bottom: 1px solid var(--amk-linea); padding: 18px 0; }
.faq-pagina summary { font-family: var(--amk-fuente-titulos); font-size: 18px; font-weight: 600; cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 16px; align-items: center; color: var(--amk-verde-900); }
.faq-pagina summary::-webkit-details-marker { display: none; }
.faq-pagina summary::after { content: '+'; color: var(--amk-verde-600); font-size: 22px; line-height: 1; font-family: var(--fuente-texto); }
.faq-pagina details[open] summary::after { content: '–'; }
.faq-pagina details p { margin: 12px 0 0; color: var(--amk-gris); font-size: 15px; }

/* Páginas sin Elementor (aviso legal, privacidad…): plantilla sencilla de Hello */
.page-template-default .site-main { max-width: 820px; margin: 0 auto; padding: 56px var(--amk-margen) 80px; }
.page-template-default .page-header .entry-title { font-size: 40px; }
.page-template-default .page-content p { color: #33443c; font-size: 17px; }

/* Cabecera con foto de las plantillas del tema (índice del blog, archivos y artículos) */
body .site-main.blog-indice, body .site-main.articulo { max-width: none; width: 100%; margin: 0; padding: 0; }
.cab-tema { position: relative; overflow: hidden; color: #fff; background: var(--amk-verde-950); }
.cab-tema--foto::before { content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(5, 33, 23, .93), rgba(5, 33, 23, .62)); }
.cab-tema-foto { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; }
.cab-tema-in { position: relative; z-index: 2; padding-top: 56px; padding-bottom: 62px; }
.cab-tema .migas { font-size: 12.5px; color: #a9c3b6; letter-spacing: .04em; margin-bottom: 18px; }
.cab-tema .migas a { color: inherit; text-decoration: none; }
.cab-tema .migas a:hover { color: var(--amk-oro-claro); }
.cab-tema .migas .breadcrumb_last { color: #fff; }
.cab-tema-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin: 0 0 16px; font-size: 13px; color: #c7dad0; }
.cab-tema-cat { background: var(--amk-oro-claro); color: var(--amk-verde-950); font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; padding: 6px 12px; border-radius: 6px; text-decoration: none; }
.cab-tema-cat:hover { background: #ffd633; color: var(--amk-verde-950); }
.cab-tema-titulo { font-size: clamp(31px, 4.6vw, 46px); line-height: 1.12; color: #fff; margin: 0 0 14px; max-width: 900px; text-wrap: balance; }
.cab-tema-intro { color: #c7dad0; font-size: 17px; max-width: 640px; text-wrap: pretty; }
.cab-tema-intro p { margin: 0; }

.blog-indice-cuerpo { padding-top: 76px; padding-bottom: 90px; }
.blog-vacio { text-align: center; color: var(--amk-gris); }
.paginacion { margin-top: 52px; }
.paginacion .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.paginacion .page-numbers { min-width: 44px; height: 44px; padding: 0 16px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; border: 1.5px solid var(--amk-linea); color: var(--amk-verde-800); font-weight: 700; font-size: 14px; text-decoration: none; }
.paginacion a.page-numbers:hover { border-color: var(--amk-verde-600); }
.paginacion .page-numbers.current { background: var(--amk-verde-800); border-color: var(--amk-verde-800); color: #fff; }

/* Artículo */
.articulo-cuerpo { padding-top: 64px; padding-bottom: 80px; }
.articulo-texto { max-width: 760px; margin: 0 auto; font-size: 17px; color: #33443c; }
.articulo-texto > *:first-child { margin-top: 0; }
.articulo-texto p { margin: 0 0 20px; }
.articulo-texto h2 { font-size: 28px; margin: 44px 0 14px; }
.articulo-texto h3 { font-size: 22px; margin: 32px 0 10px; }
.articulo-texto ul, .articulo-texto ol { padding-left: 22px; margin: 0 0 20px; }
.articulo-texto li { margin-bottom: 8px; }
.articulo-texto img { border-radius: var(--amk-radio); }
/* Enlaces dentro del texto: subrayados para que no se distingan solo por el color (WCAG 1.4.1). */
.articulo-texto a { color: var(--amk-verde-700); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.articulo-texto a:hover, .articulo-texto a:focus-visible { text-decoration-thickness: 2px; }
.articulo-mas { padding-top: 76px; padding-bottom: 90px; }
.articulo-mas > h2 { font-size: 31px; margin: 0 0 30px; }

/* Banda «¿Pensando en hacer la Umrah?» de las plantillas del tema */
.cta-tema { background: var(--amk-verde-900); color: #fff; text-align: center; }
.cta-tema-in { max-width: 720px; margin: 0 auto; padding: clamp(50px, 7vw, 80px) var(--amk-margen); }
.cta-tema h2 { color: #fff; font-size: clamp(28px, 4vw, 38px); margin: 0 0 12px; }
.cta-tema p { color: #c7dad0; margin: 0 0 28px; font-size: 16.5px; text-wrap: balance; }
.cta-tema-botones { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; }

/* =========================================================================
   8. Formularios (Contact Form 7)
   ========================================================================= */
.wpcf7 .campos { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 20px; }
.wpcf7 .campo { display: flex; flex-direction: column; margin: 0; }
.wpcf7 .campo--ancho { grid-column: 1 / -1; }
.wpcf7 .campo > label, .wpcf7 .campo > .etiqueta { font-size: 11.5px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--amk-gris); margin-bottom: 8px; display: block; }
.wpcf7 .req { color: #c0553f; }
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 select, .wpcf7 textarea {
	font-family: inherit; font-size: 15px; color: var(--amk-tinta); border: 1.5px solid var(--amk-linea); border-radius: 10px;
	padding: 13px 15px; background: #fff; width: 100%; box-sizing: border-box;
}
.wpcf7 textarea { min-height: 110px; height: 120px; resize: vertical; }
.wpcf7 select { appearance: none; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8'><path d='M1 1l5 5 5-5' stroke='%235E6F66' stroke-width='1.8' fill='none' stroke-linecap='round'/></svg>"); background-repeat: no-repeat; background-position: right 15px center; padding-right: 38px; }
.wpcf7 .wpcf7-radio { display: flex; gap: 10px; flex-wrap: wrap; }
.wpcf7 .wpcf7-list-item { margin: 0; }
.wpcf7 .wpcf7-radio label { display: inline-flex; align-items: center; gap: 8px; padding: 11px 18px; border: 1.5px solid var(--amk-linea); border-radius: 10px; font-size: 14.5px; cursor: pointer; background: #fff; }
.wpcf7 .wpcf7-radio label:has(input:checked) { border-color: var(--amk-verde-600); background: var(--amk-verde-claro); font-weight: 700; color: var(--amk-verde-800); }
.wpcf7 .wpcf7-radio input { accent-color: var(--amk-verde-600); margin: 0; }
.wpcf7 .form-pie { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--amk-linea); flex-wrap: wrap; }
.wpcf7 .legal { font-size: 12.5px; color: var(--amk-gris); max-width: 360px; margin: 0; }
.wpcf7 .wpcf7-acceptance label { display: flex; gap: 8px; align-items: flex-start; font-size: 12.5px; color: var(--amk-gris); }
.wpcf7 .wpcf7-acceptance a { text-decoration: underline; }
.wpcf7 .wpcf7-submit { display: inline-flex; padding: 14px 28px; border-radius: 999px; font-weight: 700; font-size: 13.5px; letter-spacing: .06em; text-transform: uppercase; background: var(--amk-oro-claro); color: var(--amk-verde-950); border: 2px solid var(--amk-oro-claro); cursor: pointer; font-family: inherit; }
.wpcf7 .wpcf7-submit:hover { background: #ffd633; }
.wpcf7 .wpcf7-not-valid-tip { font-size: 12.5px; color: #b4544a; margin-top: 6px; }
.wpcf7 .wpcf7-response-output { border-radius: 10px; margin: 18px 0 0 !important; padding: 12px 16px !important; font-size: 14px; }
.wpcf7 p { margin: 0; }
.wpcf7 br { display: none; }

/* =========================================================================
   9. Responsive
   ========================================================================= */
@media (max-width: 1180px) {
	.cab-tel { display: none; }
	.nav-lista { gap: 20px; }
}
@media (max-width: 1024px) {
	.cabecera .contenedor { height: 76px; }
	.logo-img { height: 58px; }
	.topbar-der .horario, .topbar .sep { display: none; }
	.menu-boton, .menu-boton:hover, .menu-boton:focus, .menu-boton:active { display: inline-flex; }
	.cab-cta { margin-left: auto; }
	.menu-boton { position: relative; z-index: 80; }

	/* Menú del móvil y la tableta: se despliega justo debajo de la cabecera (el logo y la X
	   siguen a la vista). tema.js mide dónde acaba la cabecera y lo guarda en --amk-menu-top. */
	.nav {
		position: fixed; top: var(--amk-menu-top, 114px); right: 0; bottom: 0; left: 0; z-index: 70;
		display: flex; flex-direction: column; overflow-y: auto; overscroll-behavior: contain;
		background: var(--amk-crema); border-top: 1px solid var(--amk-linea);
		padding: 6px var(--amk-margen) calc(28px + env(safe-area-inset-bottom, 0px));
		opacity: 0; visibility: hidden; transform: translateY(-10px);
		transition: opacity .22s ease, transform .22s ease, visibility 0s linear .22s;
	}
	.menu-abierto .nav { opacity: 1; visibility: visible; transform: none; transition: opacity .22s ease, transform .22s ease, visibility 0s; }
	/* La capa oscura va por debajo de la cabecera (que contiene el panel del menú) */
	.menu-abierto::after { content: ''; position: fixed; inset: 0; background: rgba(5, 33, 23, .45); z-index: 45; }
	.menu-abierto .site-cabecera { top: 0; }
	.menu-abierto { overflow: hidden; }

	/* Apartados principales: grandes, con la letra de los títulos */
	.nav-lista { flex-direction: column; align-items: stretch; gap: 0; }
	.nav-lista > li { display: flex; flex-wrap: wrap; align-items: center; border-bottom: 1px solid var(--amk-linea); }
	.nav-lista > li > a {
		flex: 1; display: flex; align-items: center; min-height: 64px; padding: 8px 0;
		font-family: var(--amk-fuente-titulos); font-size: 23px; font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--amk-verde-950);
	}
	.nav-lista > li > a::after,
	.nav-lista .current-menu-item > a::after, .nav-lista .current-menu-ancestor > a::after, .nav-lista .current-page-ancestor > a::after {
		content: ''; position: static; flex: none; width: 9px; height: 9px; margin: 0 8px 0 auto; background: none;
		border: solid var(--amk-oro); border-width: 2px 2px 0 0; transform: rotate(45deg);
	}
	.nav-lista > .menu-item-has-children > a::after { display: none; }
	.nav-lista .menu-item-has-children > a::before { display: none; }
	/* La página en la que estás: en verde y con un punto dorado delante */
	.nav-lista > .current-menu-item > a, .nav-lista > .current-menu-ancestor > a, .nav-lista > .current-page-ancestor > a { color: var(--amk-verde-700); }
	.nav-lista > .current-menu-item > a::before, .nav-lista > .current-menu-ancestor > a::before, .nav-lista > .current-page-ancestor > a::before {
		content: ''; display: block; position: static; flex: none; width: 8px; height: 8px; margin: 0 12px 0 0; border: 0; border-radius: 50%; background: var(--amk-oro-claro); opacity: 1;
	}

	/* Submenú plegable (tema.js añade el botón; sin JavaScript se ve abierto) */
	.sub-boton, .sub-boton:hover, .sub-boton:focus, .sub-boton:active {
		display: inline-flex; align-items: center; justify-content: center; flex: none; width: 44px; height: 44px; padding: 0;
		background: #fff; border: 1.5px solid var(--amk-linea); border-radius: 50%; color: var(--amk-verde-800); cursor: pointer;
	}
	.sub-boton:hover { border-color: var(--amk-verde-700); }
	.sub-boton::before { content: ''; width: 8px; height: 8px; margin-top: -4px; border: solid currentColor; border-width: 0 2px 2px 0; transform: rotate(45deg); transition: transform .2s, margin .2s; }
	.sub-abierto > .sub-boton::before { margin-top: 4px; transform: rotate(-135deg); }
	.nav-lista .sub-menu {
		flex-basis: 100%; position: static; opacity: 1; visibility: visible; transform: none; min-width: 0;
		margin: 0 0 16px; padding: 4px 0; background: #fff; border: 1px solid var(--amk-linea); border-radius: var(--amk-radio); box-shadow: var(--amk-sombra);
	}
	/* Con el menú cerrado el submenú tampoco se puede tocar ni enfocar (hereda el «oculto» del panel) */
	.nav-lista .sub-menu, .nav-lista li:hover > .sub-menu, .nav-lista li:focus-within > .sub-menu { visibility: inherit; }
	.con-acordeon .menu-item-has-children:not(.sub-abierto) > .sub-menu { display: none; }
	.nav-lista .sub-menu a {
		display: flex; align-items: center; gap: 12px; padding: 14px 18px; border-bottom: 1px solid var(--amk-linea);
		font-size: 15px; font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--amk-verde-900);
	}
	.nav-lista .sub-menu li:last-child > a { border-bottom: 0; }
	.nav-lista .sub-menu a::before { content: ''; flex: none; width: 6px; height: 6px; border-radius: 50%; background: var(--amk-oro); }
	.nav-lista .sub-menu a::after { display: none; }

	/* Botones y contacto al final del menú */
	.nav-movil {
		display: block; margin-top: 26px; padding: 24px 22px 22px; border-radius: 18px; color: #b9d1c5;
		background: var(--amk-verde-950) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cg fill='none' stroke='%23ffcc00' stroke-opacity='.16' stroke-width='1.6'%3E%3Crect x='22' y='22' width='56' height='56'/%3E%3Crect x='22' y='22' width='56' height='56' transform='rotate(45 50 50)'/%3E%3Ccircle cx='50' cy='50' r='13'/%3E%3C/g%3E%3C/svg%3E") no-repeat right -46px bottom -46px / 190px;
	}
	.nav-movil-botones { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 22px; }
	.nav-movil-botones .btn { width: 100%; padding: 13px 10px; font-size: 12.5px; }
	.btn--wa { background: transparent; border-color: rgba(255, 255, 255, .35); color: #fff; }
	.btn--wa:hover { background: rgba(255, 255, 255, .08); border-color: #fff; color: #fff; }
	.btn--wa .amk-ico { width: 18px; height: 18px; color: #25d366; }
	.nav-movil-eti { margin: 0 0 2px; font-size: 11.5px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--amk-oro-claro); }
	.nav-movil-tel { display: inline-block; margin-bottom: 10px; font-family: var(--amk-fuente-titulos); font-size: 27px; font-weight: 600; color: #fff; text-decoration: none; }
	.nav-movil-tel:hover { color: var(--amk-oro-claro); }
	.nav-movil-dato { display: flex; gap: 10px; margin: 8px 0 0; font-size: 14px; line-height: 1.5; }
	.nav-movil-dato .amk-ico { flex: none; width: 17px; height: 17px; margin-top: 2px; color: var(--amk-oro-claro); }
	.pie-grid { grid-template-columns: 1fr 1fr; }
	.entradas { grid-template-columns: repeat(2, 1fr); }
	.hero h1.elementor-heading-title { font-size: 50px; }
	.tira .elementor-widget-icon-box { border-right: 0; }
	.nosotros-img::after { display: none; }
	.hajj-txt { --padding-left: 34px !important; --padding-right: 34px !important; }
}
/* En la tableta el menú es un panel a la derecha */
@media (min-width: 768px) and (max-width: 1024px) {
	.nav { left: auto; width: 440px; border-left: 1px solid var(--amk-linea); box-shadow: var(--amk-sombra-alta); }
}
@media (max-width: 767px) {
	:root { --amk-margen: 20px; }
	.sec { --padding-top: 56px; --padding-bottom: 56px; }
	.topbar-der .horario, .topbar-izq span, .topbar .sep { display: none; }
	.topbar .contenedor { justify-content: flex-end; min-height: 38px; }
	.cab-cta .btn { padding: 9px 14px; font-size: 11px; letter-spacing: .04em; }
	.cabecera .contenedor { gap: 12px; }
	.logo-img { height: 52px; }
	.hero { --padding-top: 56px; }
	.hero h1.elementor-heading-title { font-size: 36px; }
	.lead { font-size: 16px; }
	.hero-botones { margin-bottom: 38px; }
	.titulo-sec h2.elementor-heading-title, .nosotros-txt h2.elementor-heading-title, .cta-banda h2.elementor-heading-title { font-size: 30px; }
	.tira .elementor-widget-icon-box { padding: 18px 0; }
	.sello { left: 12px; bottom: 12px; --padding-top: 12px; --padding-bottom: 12px; --padding-left: 16px !important; --padding-right: 16px !important; }
	.sello .cifra-num .elementor-heading-title { font-size: 28px; }
	.entradas, .pie-grid { grid-template-columns: 1fr; }
	.hajj-txt { --padding-left: 26px !important; --padding-right: 26px !important; --padding-top: 38px; --padding-bottom: 38px; }
	.hajj-txt h2.elementor-heading-title { font-size: 30px; }
	.hajj-img { min-height: 240px; }
	.cab-pagina h1.elementor-heading-title { font-size: 32px; }
	.grupo-cabeza h2.elementor-heading-title { font-size: 25px; }
	.chips { justify-content: flex-start; }
	.wpcf7 .campos { grid-template-columns: 1fr; }
	.formulario, .tc { --padding-left: 22px !important; --padding-right: 22px !important; }
	.stats .elementor-counter-number-wrapper { font-size: 44px; }
	.ficha-cuerpo { padding-top: 40px; padding-bottom: 56px; }
	.wa-flotante { right: 16px; width: 54px; height: 54px; }
	.site-cabecera { top: -38px; }
	.admin-bar .site-cabecera { top: -38px; }
	.cab-tema-in { padding-top: 40px; padding-bottom: 46px; }
	.cab-tema-intro { font-size: 16px; }
	.blog-indice-cuerpo, .articulo-mas { padding-top: 52px; padding-bottom: 60px; }
	.articulo-cuerpo { padding-top: 44px; padding-bottom: 56px; }
	.articulo-texto { font-size: 16.5px; }
	.articulo-texto h2 { font-size: 24px; margin-top: 36px; }
	.articulo-mas > h2 { font-size: 26px; }
}
@media (max-width: 359px) {
	.logo-img { height: 42px; }
	.cab-cta .btn { padding: 8px 10px; }
}
/* Carga de imágenes: skeleton con brillo mientras llega la foto (la foto lo tapa al cargar; se para tras 6 pasadas). */
.amk-tarjeta-foto, .amk-galeria a, .nosotros-img .elementor-widget-image, .hajj-img .elementor-widget-image { isolation: isolate; position: relative; overflow: hidden; background-color: #e6ece8; }
.nosotros-img .elementor-widget-image { border-radius: 14px; }
.post-foto::after, .amk-tarjeta-foto::after, .amk-galeria a::after, .nosotros-img .elementor-widget-image::after, .hajj-img .elementor-widget-image::after {
	content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background: linear-gradient(100deg, transparent 20%, rgba(255, 255, 255, .55) 50%, transparent 80%);
	transform: translateX(-100%); animation: amk-skeleton 1.5s ease-in-out 6;
}
@keyframes amk-skeleton { to { transform: translateX(100%); } }

/* Zoom de las tarjetas de viaje y de la galería: lento y con salida suave (el del blog está en la sección 7). */
.amk-tarjeta-foto img, .amk-galeria img { transition: transform 1.1s cubic-bezier(.22, .61, .36, 1); will-change: transform; backface-visibility: hidden; }
.amk-tarjeta:hover .amk-tarjeta-foto img, .amk-galeria a:hover img { transform: scale(1.05); }
.amk-tarjeta { transition: box-shadow .45s ease, transform .45s cubic-bezier(.22, .61, .36, 1); }

/* Guías antiguas: sus fotos de cabecera son pequeñas; un leve desenfoque bajo el velo verde disimula el pixelado. */
body.single-post:not(.postid-2354):not(.postid-2355):not(.postid-2356) .cab-tema-foto { filter: blur(3px); transform: scale(1.06); }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.nav, .menu-abierto .nav, .serv, .wa-flotante, .post-foto img, .menu-barras span, .sub-boton::before, .amk-tarjeta-foto img, .amk-galeria img, .amk-tarjeta { transition: none; }
	.post-foto::after, .amk-tarjeta-foto::after, .amk-galeria a::after, .nosotros-img .elementor-widget-image::after, .hajj-img .elementor-widget-image::after { animation: none; }
}

/* =========================================================================
   10. Secciones con foto de fondo (hero, cabeceras de página, cifras, banda final)
   La foto es un widget «Imagen» con la clase «fondo-abs»: así es una <img> real que el
   navegador descubre pronto (mejor LCP) y se puede cambiar desde Elementor.
   ========================================================================= */
.con-fondo { position: relative; overflow: hidden; --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px !important; --padding-right: 0px !important; }
.con-fondo > .fondo-abs { position: absolute !important; inset: 0; z-index: 0; width: 100% !important; height: 100%; margin: 0 !important; }
.con-fondo > .fondo-abs img { width: 100%; height: 100% !important; object-fit: cover; display: block; }
.con-fondo::before { content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.con-fondo > .e-con { position: relative; z-index: 2; --padding-left: var(--amk-margen) !important; --padding-right: var(--amk-margen) !important; }
.hero-in .tira { margin: 0 calc(-1 * var(--amk-margen)); padding: 0 var(--amk-margen); }
.hero.con-fondo::before {
	background:
		linear-gradient(180deg, rgba(5, 33, 23, .55) 0%, rgba(5, 33, 23, 0) 22%, rgba(5, 33, 23, .55) 74%, rgba(5, 33, 23, .92) 100%),
		linear-gradient(105deg, rgba(5, 33, 23, .95) 0%, rgba(5, 33, 23, .82) 44%, rgba(5, 33, 23, .46) 100%);
}
.hero.con-fondo > .fondo-abs img { object-position: center 45%; }
.hero-in { --padding-top: 104px; --padding-bottom: 0px; --gap: 0px; }
.cab-pagina.con-fondo::before { background: linear-gradient(90deg, rgba(5, 33, 23, .93), rgba(5, 33, 23, .62)); }
.cab-pagina-in { --padding-top: 56px; --padding-bottom: 62px; --gap: 0px; color: #fff; }
.stats.con-fondo::before { background: rgba(5, 33, 23, .9); }
.stats-in { --padding-top: 72px; --padding-bottom: 72px; }
.cta-banda.con-fondo::before { background: linear-gradient(0deg, rgba(5, 33, 23, .9), rgba(5, 33, 23, .66)); }
.cta-banda-in { --padding-top: 86px; --padding-bottom: 86px; --gap: 0px; text-align: center; color: #fff; }
.caja-inc .tit-info h3.elementor-heading-title::before { content: 'i'; background: var(--amk-oro); }
.caja-inc .tit-info { margin-top: 22px; }
@media (max-width: 767px) {
	.hero-in { --padding-top: 56px; }
	.stats-in { --padding-top: 52px; --padding-bottom: 52px; }
	.cta-banda-in { --padding-top: 60px; --padding-bottom: 60px; }
}

/* La ficha trae su propia barra de reserva en móvil: el botón flotante sobra ahí */
@media (max-width: 879px) {
	.single-amk_paquete.amk-con-barra .wa-flotante { display: none; }
}
.menu-abierto .wa-flotante { display: none; }
/* Sobre fondo oscuro el titular pequeño va en dorado claro (el oscuro no contrasta) */
.sec--verde .eyebrow .elementor-heading-title, .con-fondo .eyebrow .elementor-heading-title, .tc--verde .eyebrow .elementor-heading-title { color: var(--amk-oro-claro); }

/* =========================================================================
   11. Anchos y márgenes de widgets: Elementor fija «max-width: 100%» y los márgenes de los
   widgets con selectores muy específicos (.elementor.elementor .e-con > .elementor-widget),
   así que estas reglas necesitan la misma fuerza para aplicarse.
   ========================================================================= */
.elementor .e-con .lead.elementor-widget { max-width: 590px; margin-bottom: 34px; }
.elementor .e-con .cab-pagina-in .elementor-widget.elementor-widget-text-editor { max-width: 640px; }
.elementor .e-con .cta-banda-in .elementor-widget.elementor-widget-text-editor { max-width: 610px; margin: 0 auto 32px; }

/* Iconos de línea (SVG subidos) dentro de las cajas de icono y listas: sin relleno, trazo del color */
.elementor .elementor-icon svg:not(.e-font-icon-svg),
.elementor .elementor-icon-list-icon svg:not(.e-font-icon-svg) { fill: none !important; stroke: currentColor; }

.elementor .e-con .faq-pagina.elementor-widget { max-width: 900px; margin-left: auto; margin-right: auto; width: 100%; }
@media (max-width: 767px) { .mapa .mapa-img img { height: 260px; } .mapa { margin-top: 44px; } }

/* =========================================================================
   12. Iconos como fuente (<i>): si en Elementor está desactivado «Iconos de fuente en línea»
   (webs antiguas), los iconos de Font Awesome salen como <i> en lugar de <svg>.
   Mismo tamaño y color en los dos casos.
   ========================================================================= */
.elementor-button .elementor-button-icon i { font-size: 14px; }
.tira .elementor-icon i { font-size: 24px; color: var(--amk-oro-claro); }
.serv .elementor-icon i { font-size: 24px; color: var(--amk-verde-700); }
.serv--destacado .elementor-icon i { color: var(--amk-oro-claro); }
.pq .elementor-icon i, .datos-contacto .elementor-icon i { font-size: 20px; color: var(--amk-oro-claro); }
.caja-inc .elementor-icon-list-icon i { font-size: 8px !important; width: 8px !important; color: #33cc33; margin-top: 8px; }
.caja-inc--no .elementor-icon-list-icon i, .caja-inc--info .elementor-icon-list-icon i { color: #e0b4a8; }
.hajj-lista .elementor-icon-list-icon i { font-size: 15px !important; width: 16px !important; color: #33cc33; margin-top: 5px; }
.tc .elementor-icon-list-icon i { font-size: 15px !important; width: 16px !important; color: var(--amk-verde-600); margin-top: 4px; }
.tc--verde .elementor-icon-list-icon i { color: var(--amk-oro-claro); }
