/* ==========================================================================
   AM Vivencial Tours v2 - sistema de diseno y motor visual
   Blue Nova Consulting

   GUIA DE UTILIDADES Y COMPONENTES COMPARTIDOS (owner: global-core)
   --------------------------------------------------------------------------
   PALETA (manual de marca)
     --am-green #374631 · --am-beige #E1C5AF · --am-wine #360500 · --am-terracotta #A2573A
     --am-olive #5F6A30 · --am-coffee #251E18 · --am-cream-brand #FAEDE4
     Alias heredados: --am-sand = crema del manual, --am-caramel = terracota, --am-moss = oliva,
     --am-green-900 = cafe (las .am-section--dark son cafe calido).
     REGLAS: nunca terracota sobre verde (1,9:1). Beige sobre terracota u oliva solo en titulos de 24px o mas.
     Terracota como texto solo sobre crema/blanco (4,6:1).

   SECCIONES
     <section class="am-section am-section--sand|--cream|--green|--dark|--coffee|--wine">
     .am-contours           textura de curvas de nivel (beige al 10%) para verdes y cafe.
                            Las secciones --dark/--green/--coffee/--wine que traian .am-grain la reciben sola.
                            En una seccion CLARA ya no hace falta: la textura automatica de abajo la sustituye.
     .am-community-band     banda de turismo comunitario: vino + emblema de marca de agua + olas.
       <section class="am-section am-community-band">
         <div class="am-container">
           <?php echo am_brand('separador-olas', 'am-waves'); ?>
           <h2 class="am-h2 am-title-duo"><span class="am-title-duo__strong">Turismo</span>
               <span class="am-title-duo__light">con <mark class="am-mark">comunidades</mark></span></h2>
       (el emblema sale solo por CSS; si se prefiere controlar su tamano, imprimir
        am_brand('emblema-circular', 'am-watermark') dentro de la seccion)
     .am-watermark          SVG absoluto recortado a la derecha, beige al 8%.
     .am-waves              separador de olas (48px alto, terracota; beige en fondos cafe/verde). Se dibuja al entrar.

   TEXTURA DE LAS SECCIONES CLARAS (automatica, no hay que tocar las plantillas)
     Toda .am-section que NO sea --dark/--coffee/--wine/--green ni .am-community-band recibe:
       ::before de la seccion            foto del cliente en duotono verde/sepia (--am-tex-photo, la pone core.php)
       ::before de su > .am-container    curvas de nivel del manual en oliva
     .am-tex                clase para forzar la misma textura en un bloque que no sea .am-section.
     .am-tex-off            la quita de una seccion clara concreta (p. ej. si lleva su propio fondo).
     Variables: --am-tex-photo --am-tex-photo-a --am-tex-line --am-tex-line-a --am-tex-size.
     .am-film               grano fijo sobre toda la vista; core.php imprime el div en wp_footer.
     Sin animacion: es relieve. El contraste AA esta comprobado sobre el pixel mas oscuro (ver el bloque en el CSS).

   TIPOGRAFIA
     Titulos Jost (300/500/600) · cuerpo Source Sans 3 (400/600). Strenuous NO como webfont (licencia).
     .am-eyebrow            Jost 500 mayusculas (var --am-eyebrow-fs: 14px movil -> 17px 1440), hoja del manual como vineta.
                            Terracota en claro, beige en oscuro.
     Variables r22: --am-sec-y / --am-sec-y-tight (aire de .am-section), --am-eyebrow-fs (antetitulos).
     html.am-lite (am.js): equipo lento o ahorro de datos -> sin lineas animadas, sin parallax, sin grano fijo.
     .am-title-duo          firma de dos pesos del manual:
       <h2 class="am-h2 am-title-duo" data-split>
         <span class="am-title-duo__strong">Vive el bosque</span>
         <span class="am-title-duo__light">con quienes lo cuidan</span></h2>
     .am-display .am-h2 .am-h3 .am-lead .am-mark (resaltado; en oscuro es subrayado terracota)
     .am-sr                 texto solo para lectores de pantalla

   ESCALA FLUIDA (regla del sistema, r7 - owner global-core)
     Todo clamp() fluido alcanza su TOPE exactamente en 1440px: coeficiente vw = tope_px / 1440 * 100.
     Motivo: antes varios topes se alcanzaban entre 1167 y 1345px, asi que de 1280 a 1366 el tamano
     quedaba congelado y en proporcion se veia MAS grande que en 1440 (queja del cliente en 1280-1366).
     Con la regla, 1280 y 1366 son una reduccion proporcional de 1440: se ve igual, solo mas estrecho.
     Si agregas un clamp fluido nuevo, respeta la regla (p. ej. tope 48px -> 3.333vw).
     --am-gutter:clamp(20px,5.6vw,100px) da el aire lateral: ~72px en 1280, ~77px en 1366.
     En 1440 y mas arriba manda el tope --am-container (1240px), asi que el margen sigue en 100px.

   PRECIO (lo imprime am_tour()['price_html'])
     <span class="am-price"><small>Desde</small> $30 <small class="am-price__note">por persona + IVA</small></span>

   BOTONES  .am-btn + --primary|--light|--ghost|--outline|--wa|--sm · grupo .am-btns

   COMPONENTES (ver am.js)
     Pasos de reserva   <?php am_render_steps(array('tone' => 'light', 'wa' => $wa, 'form' => $form)); ?>  -> .am-steps
     Calculadora        <?php am_render_rate_calc($t['name'], $t['precios']); ?>  -> .am-rc [data-rate-calc]
     Contador           <strong class="am-counter" data-counter>500</strong>  (solo anima el numero del HTML)
     Lightbox           <div data-lightbox><figure data-full="grande.jpg" data-cap="Momoto · Foto: Carlos">...</figure></div>
                        Abre en 2048/full; si no hay data-full-srcset hereda el srcset de la miniatura.
     Filtro             <div data-filter-scope><button data-gfilter="*">..</button> ... <figure data-groups="av exp19">
                        data-groups admite varios ejes (tema + experiencia); data-group sigue valiendo.
     Ver mas            <div class="am-gal2" data-more="24" data-more-step="24"> + <button data-more-btn>
                        + <p data-more-count>. Lo plegado lleva .is-over y sigue en el recorrido del visor.
     Progreso carrusel  dentro de [data-swiper-scope]: <div class="swiper-pagination"></div>  (o <div class="am-swiper-progress"></div>)
   ========================================================================== */
:root{
  --am-green:#374631; --am-green-900:#251E18; --am-green-800:#1f2a1b; --am-green-700:#2b3826;
  --am-beige:#E1C5AF;
  --am-wine:#360500; --am-terracotta:#A2573A; --am-terracotta-700:#8A4A31; --am-olive:#5F6A30; --am-coffee:#251E18; --am-cream-brand:#FAEDE4;
  --am-moss:#5F6A30; --am-caramel:#A2573A;
  --am-sand:#FAEDE4; --am-cream:#fbf8f3; --am-ink:#251E18; --am-muted:#5d675f; --am-line:#e6dccf;
  --am-font-display:'Jost','Century Gothic',sans-serif; --am-font-body:'Source Sans 3','Segoe UI',sans-serif;
  --am-r-sm:10px; --am-r:18px; --am-r-lg:28px; --am-r-pill:999px;
  --am-shadow:0 18px 44px rgba(37,30,24,.16); --am-shadow-lg:0 30px 70px rgba(37,30,24,.28);
  --am-ease:cubic-bezier(.22,1,.36,1);
  --am-container:1240px; --am-gutter:clamp(20px,5.6vw,100px);
  --am-hd:92px;
}
@media (max-width:1080px){ :root{ --am-hd:74px; } }

/* ---------- Correcciones del tema en las vistas propias ---------- */
/* El tema pone overflow-x:hidden en html/body: convierte al body en contenedor de scroll y rompe
   position:sticky, Lenis y ScrollTrigger. clip evita el scroll horizontal sin ese efecto. */
html:has(body.am-v2), body.am-v2{ overflow-x:clip !important; overflow-y:visible !important; }
body.am-v2 .wrapper, body.am-v2 .inner-wrapper{ overflow:visible !important; overflow-x:clip !important; float:none !important; width:100% !important; }
body.am-v2-view #header-wrapper{ display:none !important; }
body.am-v2-view #main{ padding:0 !important; margin:0 !important; float:none !important; width:100% !important; }
body.am-v2-view #main > .container,
body.am-v2-view #main > .wdt-elementor-container-fluid{ max-width:none !important; width:100% !important; padding:0 !important; margin:0 !important; float:none !important; }
body.am-flush{ padding-top:0 !important; }
.lenis.lenis-smooth [data-lenis-prevent]{ overscroll-behavior:contain; }

/* Tipografia de cuerpo en todo el sitio (am-brand.php fija Mulish en body/p/li; misma especificidad, gana por orden) */
body.am-v2{ font-family:var(--am-font-body); }
:where(body.am-v2) p, :where(body.am-v2) li, :where(body.am-v2) td, :where(body.am-v2) input,
:where(body.am-v2) textarea, :where(body.am-v2) select{ font-family:var(--am-font-body); }

/* ---------- Base ---------- */
/* el foco con Tab (y los anclas) no quedan escondidos debajo del header fijo */
html:has(body.am-v2-view){ scroll-padding-top:calc(var(--am-hd,92px) + 16px); }
/* skip link del tema en ingles apuntando al wrapper: queda solo .am-skip */
body.am-v2-view .skip-link.screen-reader-text{ display:none !important; }
/* cursor del tema (cursor:none !important en * y un punto de 6px): core.php lo desengancha en las vistas propias.
   Respaldo solo si su HTML llegara a imprimirse (p. ej. una pagina vieja en cache): cursor nativo otra vez.
   El cursor del sitio (ave de la marca) esta en el bloque "Cursor del ave" mas abajo. */
body.am-v2-view .wdt-cursor-wrapper{ display:none !important; }
/* select nativos (sin select2): el tema les quita la flecha con appearance:none; se dibuja un chevron cafe.
   Especificidad alta a proposito: page.css usa background:... !important en .am-form select */
body.am-v2-view .am-page select:not([multiple]):not([size]){ -webkit-appearance:none; appearance:none; padding-right:46px !important; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1.5l6 6 6-6' fill='none' stroke='%23251E18' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important; background-position:right 18px center !important; background-size:14px 9px !important; text-overflow:ellipsis; }
html:has(body.am-v2-view .wdt-cursor-wrapper) *{ cursor:auto !important; }
html:has(body.am-v2-view .wdt-cursor-wrapper) :is(a[href],button:not(:disabled),summary,label[for],select,[role=button]){ cursor:pointer !important; }
html:has(body.am-v2-view .wdt-cursor-wrapper) :is(input:not([type=checkbox],[type=radio],[type=submit],[type=button]),textarea){ cursor:text !important; }
.am-page{ font-family:var(--am-font-body); font-size:1.0625rem; line-height:1.65; color:var(--am-ink); background:var(--am-cream); overflow-x:clip; }
.am-page *, .am-page *::before, .am-page *::after{ box-sizing:border-box; }
.am-page img{ max-width:100%; height:auto; }
.am-page h1,.am-page h2,.am-page h3,.am-page h4{ font-family:var(--am-font-display); color:var(--am-green-800); margin:0; letter-spacing:-.01em; line-height:1.08; font-weight:600; text-transform:none; }
.am-page p{ margin:0 0 1em; line-height:1.65; color:var(--am-muted); }
.am-page a{ text-decoration:none; }
.am-sr{ position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.am-container{ width:100%; max-width:calc(var(--am-container) + var(--am-gutter)*2); margin:0 auto; padding:0 var(--am-gutter); }
/* Aire vertical de las secciones (r22, 29-sep): pedido del cliente "menos espacio entre secciones, sobre todo en
   computadora, sutil". Antes 72 -> 156px por lado (312px entre dos secciones en 1440); ahora 60 -> 120px.
   Las vistas que fijan su propio padding pueden usar estas variables para ir a la par. */
:root{ --am-sec-y:clamp(60px,8.333vw,120px); --am-sec-y-tight:clamp(40px,5vw,72px); }
.am-section{ position:relative; padding:var(--am-sec-y) 0; }
.am-section--tight{ padding:var(--am-sec-y-tight) 0; }
.am-section--sand{ background:var(--am-sand); }
.am-section--cream{ background:var(--am-cream); }
.am-section--dark, .am-section--coffee{ background:var(--am-coffee); color:#e9e1d6; }
.am-section--wine{ background:radial-gradient(120% 90% at 85% 20%,#4a1a0c 0%,#360500 38%,#251E18 100%); background-color:var(--am-wine); color:#FAEDE4; }
.am-section--dark h1,.am-section--dark h2,.am-section--dark h3,.am-section--dark h4,
.am-section--coffee h1,.am-section--coffee h2,.am-section--coffee h3,.am-section--coffee h4,
.am-section--wine h1,.am-section--wine h2,.am-section--wine h3,.am-section--wine h4{ color:#FAEDE4; }
.am-section--dark p,.am-section--dark li,.am-section--coffee p,.am-section--coffee li{ color:#d9cfc3; }
.am-section--wine p,.am-section--wine li{ color:#eadccf; }
.am-section--green{ background:var(--am-green); color:#eee6db; }
.am-section--green h2,.am-section--green h3{ color:#fff; }
.am-section--green p{ color:#e4dacd; }
/* en fondos oscuros el cuerpo nunca baja de 400 */
.am-section--dark, .am-section--coffee, .am-section--wine, .am-section--green, .am-on-media{ font-weight:400; }

/* grano sutil: queda para fotos y CTAs */
.am-grain::after{ content:''; position:absolute; inset:0; pointer-events:none; opacity:.07; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }

/* ---------- Texturas de marca ---------- */
.am-contours,
.am-section--dark.am-grain, .am-section--green.am-grain, .am-section--coffee.am-grain, .am-section--wine.am-grain{ position:relative; isolation:isolate; }
.am-contours::before,
.am-section--dark.am-grain::before, .am-section--green.am-grain::before, .am-section--coffee.am-grain::before, .am-section--wine.am-grain::before{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background-color:var(--am-contours-color,var(--am-beige)); opacity:var(--am-contours-opacity,.13);
  -webkit-mask:url(brand/patron-curvas-tile.svg) 0 var(--am-contours-y,0px)/640px 320px repeat; mask:url(brand/patron-curvas-tile.svg) 0 var(--am-contours-y,0px)/640px 320px repeat; }
.am-section--dark.am-grain::after, .am-section--green.am-grain::after, .am-section--coffee.am-grain::after, .am-section--wine.am-grain::after{ display:none; }
@media (max-width:640px){ .am-contours::before, .am-section.am-grain::before{ -webkit-mask-size:420px 210px; mask-size:420px 210px; } }
/* ondas en movimiento: la textura fluye despacio hacia un lado (el parallax vertical de am.js sigue funcionando via --am-contours-y) */
@keyframes am-contours-flow{ from{ -webkit-mask-position:0 var(--am-contours-y,0px); mask-position:0 var(--am-contours-y,0px); } to{ -webkit-mask-position:-640px var(--am-contours-y,0px); mask-position:-640px var(--am-contours-y,0px); } }
@keyframes am-contours-flow-sm{ from{ -webkit-mask-position:0 var(--am-contours-y,0px); mask-position:0 var(--am-contours-y,0px); } to{ -webkit-mask-position:-420px var(--am-contours-y,0px); mask-position:-420px var(--am-contours-y,0px); } }
@media (prefers-reduced-motion:no-preference){
  .am-contours::before,
  .am-section--dark.am-grain::before, .am-section--green.am-grain::before, .am-section--coffee.am-grain::before, .am-section--wine.am-grain::before{ animation:am-contours-flow 14s linear infinite; }
  .am-section--wine.am-grain::before, .am-community-band.am-contours::before{ animation-direction:reverse; animation-duration:18s; }
}
@media (prefers-reduced-motion:no-preference) and (max-width:640px){
  .am-contours::before, .am-section.am-grain::before{ animation-name:am-contours-flow-sm; animation-duration:12s; }
}

.am-brand{ display:block; }
.am-watermark{ position:absolute; right:-12%; top:50%; translate:0 -50%; width:clamp(420px,60vw,900px); height:auto; color:var(--am-beige); opacity:.08; pointer-events:none; z-index:-1; }
.am-section:has(> .am-watermark), .am-has-watermark{ isolation:isolate; overflow:clip; }
.am-waves{ display:block; height:48px; width:auto; max-width:100%; color:var(--am-terracotta); margin:0 0 22px; }
.am-section--dark .am-waves, .am-section--coffee .am-waves, .am-section--green .am-waves{ color:rgba(225,197,175,.6); }
@media (max-width:640px){ .am-waves{ height:38px; } }

/* Banda de turismo comunitario: la unica con vino + emblema */
.am-community-band{ position:relative; isolation:isolate; overflow:clip;
  background:radial-gradient(120% 90% at 85% 20%,#4a1a0c 0%,#360500 38%,#251E18 100%); background-color:var(--am-wine); color:#FAEDE4; }
.am-community-band::after{ content:""; position:absolute; z-index:-1; pointer-events:none; right:-14%; top:50%; translate:0 -50%;
  width:clamp(420px,62vw,920px); aspect-ratio:1; background:var(--am-beige); opacity:.08;
  -webkit-mask:url(brand/emblema-circular.svg) center/contain no-repeat; mask:url(brand/emblema-circular.svg) center/contain no-repeat; }
.am-community-band:has(.am-watermark)::after{ content:none; }
.am-community-band h1,.am-community-band h2,.am-community-band h3,.am-community-band h4{ color:#FAEDE4; }
.am-community-band p,.am-community-band li{ color:#eadccf; }
.am-page .am-community-band .am-eyebrow{ color:var(--am-beige); }
.am-community-band .am-waves{ color:var(--am-terracotta); }
@media (max-width:760px){ .am-community-band::after{ right:-38%; top:auto; bottom:-12%; translate:none; width:min(120vw,560px); } }

/* ---------- Texturas de las secciones claras ---------- */
/* Tres capas de marca, ninguna decorativa por encima del texto:
   1) foto del cliente (la elige am_texture_photo() en core.php) en duotono verde/sepia al 3,4-4,5 %,
   2) curvas de nivel del manual (brand/patron-curvas-tile.svg) en oliva al 4-5 %,
   3) el grano fino de .am-film, que va fijo sobre toda la vista.
   Contraste comprobado sobre el pixel mas oscuro de la mezcla (foto + linea):
     crema  #fbf8f3 -> #e6e5dc   terracota-700 5,35  ·  texto apagado 4,65  ·  tinta 13,0
     beige  #FAEDE4 -> #ece1d5   terracota-700 5,25  ·  texto apagado 4,56* ·  tinta 12,8
   (*) por eso en las secciones con textura el .am-eyebrow pasa a terracota-700: el terracota normal
   se quedaba en 4,2 y dejaba de cumplir AA. Sin animacion a proposito: es relieve, no movimiento. */
:root{
  --am-tex-photo:none;              /* core.php escribe aqui la url de la foto */
  --am-tex-photo-a:.055;            /* opacidad de la foto */
  --am-tex-line:var(--am-olive);    /* color de las curvas de nivel */
  --am-tex-line-a:.062;             /* opacidad de las curvas */
  --am-tex-size:1180px;             /* ancho de la baldosa de curvas (el alto es la mitad) */
}
/* .am-tex fuerza la textura en cualquier bloque; .am-tex-off la quita de una seccion clara. */
.am-page .am-section:not(:is(.am-section--dark,.am-section--coffee,.am-section--wine,.am-section--green,.am-community-band,.am-on-media,.am-tex-off)),
.am-page .am-tex{ position:relative; isolation:isolate; }

/* capa 1: la foto, a sangre y desvanecida en los bordes para que no se vea el corte entre secciones */
.am-page .am-section:not(:is(.am-section--dark,.am-section--coffee,.am-section--wine,.am-section--green,.am-community-band,.am-on-media,.am-tex-off))::before,
.am-page .am-tex::before{
  content:''; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background-image:var(--am-tex-photo,none); background-size:cover; background-position:50% 58%; background-repeat:no-repeat;
  opacity:var(--am-tex-photo-a);
  filter:grayscale(1) sepia(.78) hue-rotate(26deg) saturate(1.2) contrast(1.02);
  -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 8%,#000 92%,transparent 100%);
          mask-image:linear-gradient(to bottom,transparent 0,#000 8%,#000 92%,transparent 100%);
  /* Si la seccion clara trae ademas .am-contours (portada, experiencias), ese ::before es el mismo pseudo:
     hay que soltar su color de fondo, el tamano de baldosa y la animacion o el degradado se repetiria en bandas. */
  background-color:transparent; animation:none;
  -webkit-mask-size:100% 100%; mask-size:100% 100%;
  -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat;
  -webkit-mask-position:0 0; mask-position:0 0;
}
/* capa 2: las curvas de nivel. Van en el pseudo del contenedor (el de la seccion lo ocupa la foto) y,
   como .am-container no esta posicionado, inset:0 cubre igualmente toda la seccion. */
.am-page .am-section:not(:is(.am-section--dark,.am-section--coffee,.am-section--wine,.am-section--green,.am-community-band,.am-on-media,.am-tex-off)) > .am-container::before,
.am-page .am-tex > .am-container::before{
  content:''; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background-color:var(--am-tex-line); opacity:var(--am-tex-line-a);
  /* en longhand a proposito: el atajo mask no acepta bien un calc() con barra dentro del tamano */
  -webkit-mask-image:url(brand/patron-curvas-tile.svg); mask-image:url(brand/patron-curvas-tile.svg);
  -webkit-mask-size:var(--am-tex-size) calc(var(--am-tex-size) / 2); mask-size:var(--am-tex-size) calc(var(--am-tex-size) / 2);
  -webkit-mask-position:50% 0; mask-position:50% 0;
  -webkit-mask-repeat:repeat; mask-repeat:repeat;
}
/* el beige del manual ya es un fondo con color: la textura baja para no comerse el contraste */
.am-page .am-section--sand{ --am-tex-photo-a:.036; --am-tex-line-a:.044; }
@media (max-width:1080px){ :root{ --am-tex-size:820px; } }
@media (max-width:640px){  :root{ --am-tex-size:620px; } }
/* r24 (30-sep) · Galeria: las curvas de las secciones claras tambien se mueven (el cliente anoto "no hay animacion
   de las lineas de fondo" y solo se movia la seccion cafe del mosaico). Solo en /galeria/, solo con movimiento
   completo y sin modo liviano: en suave, ninguna, prefers-reduced-motion o html.am-lite quedan quietas como antes.
   Se mueve con transform (lo hace la tarjeta grafica, sin repintar): la capa mide una baldosa mas de ancho y avanza
   justo una baldosa (--am-tex-size) por vuelta, asi el bucle no salta. Animar mask-position bajaba de 61 a 42-47
   cuadros por segundo en la prueba y podia encender el modo liviano. ~45 px/s, como las secciones oscuras. */
@keyframes am-tex-drift{ from{ transform:translate3d(0,0,0); } to{ transform:translate3d(calc(-1 * var(--am-tex-size)),0,0); } }
@media (prefers-reduced-motion:no-preference){
  html.am-motion-full:not(.am-lite) .am-page--galeria .am-section:not(:is(.am-section--dark,.am-section--coffee,.am-section--wine,.am-section--green,.am-community-band,.am-on-media,.am-tex-off)),
  html.am-motion-full:not(.am-lite) .am-page--galeria .am-tex{ overflow-x:clip; }
  html.am-motion-full:not(.am-lite) .am-page--galeria .am-section:not(:is(.am-section--dark,.am-section--coffee,.am-section--wine,.am-section--green,.am-community-band,.am-on-media,.am-tex-off)) > .am-container::before,
  html.am-motion-full:not(.am-lite) .am-page--galeria .am-tex > .am-container::before{
    right:auto; width:calc(100% + var(--am-tex-size)); will-change:transform; animation:am-tex-drift 26s linear infinite; }
}
@media (prefers-reduced-motion:no-preference) and (max-width:1080px){
  html.am-motion-full:not(.am-lite) .am-page--galeria .am-section > .am-container::before{ animation-duration:18s; }
}
@media (prefers-reduced-motion:no-preference) and (max-width:640px){
  html.am-motion-full:not(.am-lite) .am-page--galeria .am-section > .am-container::before{ animation-duration:14s; }
}
}
/* en las secciones con textura el volado sube a terracota-700 para mantener AA */
.am-page .am-section:not(:is(.am-section--dark,.am-section--coffee,.am-section--wine,.am-section--green,.am-community-band,.am-on-media,.am-tex-off)) .am-eyebrow,
.am-page .am-tex .am-eyebrow{ color:var(--am-terracotta-700); }

/* grano de pelicula sobre toda la vista (core.php imprime el div en el pie).
   Es una sola capa fija: le quita el brillo plano de pantalla a los fondos claros sin tocar el contraste. */
.am-film{ position:fixed; inset:0; z-index:9998; pointer-events:none; opacity:.06;
  background-repeat:repeat; background-size:180px 180px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 .145 0 0 0 0 .118 0 0 0 0 .094 .33 .33 .33 0 -.12'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E"); }
@media print{ .am-film{ display:none; } }

/* ---------- Tipografia ---------- */
/* r22 (29-sep): antetitulos y titulos de seccion mas grandes para que se distingan (pedido del cliente).
   Antetitulo 12,5px -> 14px en movil y 17px en 1440+ (tope en 1440 segun la regla de la escala fluida).
   --am-eyebrow-fs queda disponible para los antetitulos propios de cada vista (kicker, label...). */
:root{ --am-eyebrow-fs:clamp(.875rem,1.181vw,1.0625rem); }
.am-eyebrow{ display:inline-flex; align-items:center; gap:12px; font-family:var(--am-font-display); font-size:var(--am-eyebrow-fs); font-weight:500;
  letter-spacing:.18em; text-transform:uppercase; color:var(--am-terracotta); margin:0 0 20px; line-height:1.3; }
.am-eyebrow::before{ content:''; flex:none; width:.56em; height:1.3em; background:currentColor;
  -webkit-mask:url(brand/hoja.svg) center/contain no-repeat; mask:url(brand/hoja.svg) center/contain no-repeat; }
.am-section--dark .am-eyebrow, .am-section--wine .am-eyebrow, .am-section--coffee .am-eyebrow, .am-section--green .am-eyebrow, .am-on-media .am-eyebrow{ color:var(--am-beige); }
.am-display{ font-size:clamp(2.6rem,6.667vw,6rem) !important; line-height:.98 !important; letter-spacing:-.025em !important; font-weight:600; }
/* H2 de seccion: 32 -> 34px en movil, 59 -> 64px en monitores grandes (en laptops ver el bloque del final) */
.am-h2{ font-size:clamp(2.15rem,4.444vw,4rem) !important; line-height:1.02 !important; letter-spacing:-.02em !important; }
.am-h3{ font-size:clamp(1.3rem,2vw,1.8rem) !important; line-height:1.15 !important; }
.am-lead{ font-size:clamp(1.08rem,1.444vw,1.3rem) !important; line-height:1.65 !important; color:var(--am-muted); max-width:62ch; }
.am-section--dark .am-lead, .am-section--coffee .am-lead, .am-section--wine .am-lead, .am-on-media .am-lead{ color:#eadfd2; }
/* firma de dos pesos del manual */
.am-title-duo{ display:flex; flex-direction:column; }
.am-title-duo__strong{ display:block; font-weight:600; text-transform:uppercase; letter-spacing:.01em; }
.am-title-duo__light{ display:block; font-weight:300; text-transform:none; letter-spacing:-.005em; }
.am-title-duo .am-line{ display:block; }

.am-mark{ color:inherit; background-image:linear-gradient(var(--am-beige),var(--am-beige)); background-repeat:no-repeat;
  background-position:0 88%; background-size:0% 34%; transition:background-size 1.3s var(--am-ease) .35s; padding:0 .06em; }
.am-mark.is-in, .am-no-motion .am-mark, .am-fallback .am-mark{ background-size:100% 34%; }
mark.am-mark{ background-color:transparent; }
/* en parrafos claros el texto resaltado pasa a cafe: gris sobre beige daba 3,6:1 */
.am-page :is(p,li) .am-mark{ color:var(--am-coffee); }
.am-page :is(.am-section--dark,.am-section--coffee,.am-section--wine,.am-section--green,.am-community-band,.am-on-media) :is(p,li) .am-mark{ color:inherit; }
/* en oscuro: subrayado terracota de 4px (el bloque beige translucido se veia gris) */
.am-section--dark .am-mark, .am-section--coffee .am-mark, .am-section--wine .am-mark, .am-on-media .am-mark{
  background-image:linear-gradient(var(--am-terracotta),var(--am-terracotta)); background-repeat:no-repeat; background-size:0% 4px; background-position:0 96%; }
.am-section--dark .am-mark.is-in, .am-section--coffee .am-mark.is-in, .am-section--wine .am-mark.is-in, .am-on-media .am-mark.is-in,
.am-no-motion .am-section--dark .am-mark, .am-no-motion .am-section--wine .am-mark, .am-no-motion .am-on-media .am-mark,
.am-fallback .am-section--dark .am-mark, .am-fallback .am-section--wine .am-mark, .am-fallback .am-on-media .am-mark{ background-size:100% 4px; }
/* banda comunitaria: resaltado terracota al 35% */
.am-community-band .am-mark{ background-image:linear-gradient(rgba(162,87,58,.35),rgba(162,87,58,.35)); background-position:0 80%; background-size:0% 36%; }
.am-community-band .am-mark.is-in, .am-no-motion .am-community-band .am-mark, .am-fallback .am-community-band .am-mark{ background-size:100% 36%; }
.am-script{ font-style:italic; font-weight:500; color:var(--am-terracotta); }
/* tamano minimo legible (baja especificidad: las vistas que fijan su propio tamano deben usar max(12px, ...)) */
.am-page :where(small, [class*="__label"]){ font-size:max(.75rem,12px); }

/* ---------- Botones ---------- */
.am-btn{ --b-bg:var(--am-green); --b-fg:#fff; --b-bd:var(--am-green);
  display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:52px; padding:0 28px;
  border-radius:var(--am-r-pill); border:1.5px solid var(--b-bd); background:var(--b-bg); color:var(--b-fg) !important;
  font-family:var(--am-font-display); font-weight:600; font-size:.98rem; letter-spacing:.02em; line-height:1; white-space:nowrap;
  cursor:pointer; position:relative; overflow:hidden; isolation:isolate; transition:color .35s var(--am-ease), border-color .35s, transform .35s var(--am-ease); }
.am-btn::before{ content:''; position:absolute; inset:0; z-index:-1; background:var(--b-hover,var(--am-green-800)); transform:translateY(101%); border-radius:inherit; transition:transform .5s var(--am-ease); }
.am-btn:hover::before{ transform:translateY(0); }
.am-btn:hover{ color:var(--b-hfg,#fff) !important; border-color:var(--b-hover,var(--am-green-800)); }
.am-btn__arrow{ display:inline-block; transition:transform .45s var(--am-ease); }
.am-btn:hover .am-btn__arrow{ transform:translateX(5px); }
.am-btn .am-ico{ width:19px; height:19px; }
.am-btn--primary{ --b-bg:var(--am-green); --b-bd:var(--am-green); --b-fg:#fff; --b-hover:var(--am-coffee); }
.am-btn--light{ --b-bg:var(--am-beige); --b-bd:var(--am-beige); --b-fg:var(--am-coffee); --b-hover:#fff; --b-hfg:var(--am-coffee); }
.am-btn--ghost{ --b-bg:rgba(255,255,255,.08); --b-bd:rgba(255,255,255,.7); --b-fg:#fff; --b-hover:#fff; --b-hfg:var(--am-coffee); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
.am-btn--outline{ --b-bg:transparent; --b-bd:var(--am-green); --b-fg:var(--am-green); --b-hover:var(--am-green); --b-hfg:#fff; }
/* verde WhatsApp oscurecido: blanco encima 5,4:1 (el #25D366 daba 1,98:1) */
.am-btn--wa{ --b-bg:#0E7A42; --b-bd:#0E7A42; --b-fg:#fff; --b-hover:#0A6034; --b-hfg:#fff; }
.am-btn--terracotta{ --b-bg:var(--am-terracotta); --b-bd:var(--am-terracotta); --b-fg:#fff; --b-hover:var(--am-terracotta-700); --b-hfg:#fff; }
.am-btn--sm{ min-height:44px; padding:0 20px; font-size:.9rem; }
.am-btns{ display:flex; flex-wrap:wrap; gap:12px; align-items:center; }

/* ---------- Chips, tags, precio ---------- */
.am-chip{ display:inline-flex; align-items:center; gap:8px; padding:10px 18px; border-radius:var(--am-r-pill); border:1px solid var(--am-line);
  background:#fff; color:var(--am-green-800) !important; font-family:var(--am-font-display); font-size:.9rem; font-weight:500; white-space:nowrap;
  transition:all .3s var(--am-ease); }
.am-chip:hover{ border-color:var(--am-green); transform:translateY(-2px); }
.am-chip.is-active{ background:var(--am-green); border-color:var(--am-green); color:#fff !important; }
.am-tag{ display:inline-flex; align-items:center; gap:6px; padding:7px 13px; border-radius:var(--am-r-pill); background:rgba(37,30,24,.58);
  color:#fff; font-family:var(--am-font-display); font-size:.76rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase;
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.am-tag--light{ background:var(--am-beige); color:var(--am-coffee); backdrop-filter:none; }
.am-tag--olive{ background:var(--am-olive); color:#FAEDE4; backdrop-filter:none; }
.am-price{ font-family:var(--am-font-display); font-weight:600; color:var(--am-green); font-size:1.15rem; white-space:nowrap; }
.am-price small{ font-size:max(12px,.72em); font-weight:500; color:var(--am-muted); margin-right:4px; text-transform:uppercase; letter-spacing:.08em; }
.am-price .am-price__note{ display:block; margin:4px 0 0; font-size:max(.75rem,12px); font-weight:500; letter-spacing:.04em; text-transform:none; color:var(--am-muted); }
.am-price--quote{ font-size:1.05rem; font-weight:600; color:var(--am-green); }
.am-section--dark .am-price, .am-section--coffee .am-price, .am-section--wine .am-price{ color:var(--am-beige); }
.am-section--dark .am-price small, .am-section--coffee .am-price small, .am-section--wine .am-price small, .am-on-media .am-price small,
.am-section--dark .am-price__note, .am-section--coffee .am-price__note, .am-section--wine .am-price__note, .am-on-media .am-price__note{ color:rgba(250,237,228,.8); }
.am-ico{ flex:0 0 auto; }

/* ---------- Media ---------- */
.am-media{ position:relative; overflow:hidden; border-radius:var(--am-r-lg); background:var(--am-green-800); isolation:isolate; }
.am-media > img, .am-media > video, .am-media picture img{ width:100%; height:100%; object-fit:cover; display:block; }
.am-media--hover > img{ transition:transform 1.2s var(--am-ease); }
/* el zoom de hover solo con mouse: en tactil el :hover se queda pegado tras el toque y la foto seguia ampliada */
@media (hover:hover) and (pointer:fine){ .am-media--hover:hover > img{ transform:scale(1.06); } }
/* Tablet y celular (r22): fotos y videos a su encuadre real y centrados. El parallax (am.js) ampliaba la foto
   hasta un 24 % y la desplazaba en vertical, y la entrada partia de un zoom de 1,35: en pantallas tactiles o
   angostas se veian "expandidas" y descentradas. am.js ya no los aplica ahi; esto es el respaldo si la ventana
   se achica despues de cargar. */
@media (hover:none), (pointer:coarse), (max-width:1024px){
  .am-page [data-parallax]{ transform:none !important; translate:none !important; scale:none !important; }
}
.am-page video{ max-width:100%; }

/* ---------- Marquee ---------- */
.am-marquee{ overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.am-marquee__track{ display:flex; width:max-content; animation:am-marquee 38s linear infinite; }
.am-marquee--reverse .am-marquee__track{ animation-direction:reverse; }
.am-marquee:hover .am-marquee__track{ animation-play-state:paused; }
@keyframes am-marquee{ to{ transform:translate3d(-50%,0,0); } }

/* ---------- Estados de animacion (solo con JS) ---------- */
.am-js [data-reveal], .am-js [data-stagger] > *{ opacity:0; }
.am-js [data-split]{ visibility:hidden; }
.am-js [data-img-reveal]{ clip-path:inset(0 0 100% 0); }
.am-fallback [data-reveal], .am-fallback [data-stagger] > *, .am-no-motion [data-reveal], .am-no-motion [data-stagger] > *{ opacity:1 !important; transform:none !important; }
.am-fallback [data-split], .am-no-motion [data-split]{ visibility:visible !important; }
.am-fallback [data-img-reveal], .am-no-motion [data-img-reveal]{ clip-path:none !important; }
/* arranque tardio: lo que ya estaba a la vista no vuelve a ocultarse */
.am-js [data-am-shown][data-reveal], .am-js [data-am-shown][data-stagger] > *, .am-js [data-steps][data-am-shown] .am-steps__item{ opacity:1 !important; visibility:visible !important; transform:none !important; }
.am-js [data-am-shown][data-split]{ visibility:visible !important; }
.am-js [data-am-shown][data-img-reveal]{ clip-path:none !important; }
.am-js [data-steps][data-am-shown] .am-steps__fill{ stroke-dashoffset:0; }
/* movil: el H1 del hero se pinta con el primer frame (es el LCP) y solo sube 14px; no espera a GSAP ni a SplitText */
@media (max-width:640px){
  .am-js h1[data-split]{ visibility:visible; }
  .am-js h1[data-split]:not([data-am-shown]){ animation:am-h1-rise .9s var(--am-ease) both; }
}
.am-js [data-am-nosplit]{ visibility:visible; } /* si se gira el telefono a mas de 640px no vuelve a ocultarse */
@keyframes am-h1-rise{ from{ transform:translate3d(0,14px,0); } to{ transform:none; } }
.am-line{ padding-bottom:.08em; }
/* la mascara de SplitText cortaba tildes de mayusculas (ASÍ, ÁREA) */
[data-split] [class*="line-mask"]{ padding-top:.16em; margin-top:-.16em; }

/* barra de progreso de lectura */
.am-progress{ position:fixed; top:0; left:0; right:0; height:3px; z-index:100000; pointer-events:none; transform-origin:0 50%; transform:scaleX(0);
  background:linear-gradient(90deg,var(--am-terracotta-700),var(--am-terracotta)); }

/* ---------- Cursor del tema (bolita) en colores de marca ---------- */
.wdt-cursor-outer{ border-color:rgba(55,70,49,.55) !important; }
.wdt-cursor-inner{ background:var(--am-terracotta) !important; }
.wdt-cursor-link-hover.wdt-cursor-outer{ background:rgba(225,197,175,.28) !important; border-color:var(--am-beige) !important; }

/* ---------- Cursor del ave (r22, 29-sep) ----------
   Cabeza del ave del isotipo (brand/ave-flauta.svg) volteada y girada 40 grados: el pico apunta arriba a la
   izquierda como la flecha normal y es el punto activo (2,2). Cafe con halo crema: se lee en fondos claros y
   oscuros. El ave completa con la flauta y la cola no se distinguia a 32px, por eso solo la cabeza.
   Solo con mouse (hover:hover + pointer:fine): en tactil no hay cursor. Es CSS puro sobre <html>, sin JS ni
   capas encima, asi que traducir la pagina (GTranslate cambia el texto y las clases de <html>) no lo toca.
   Enlaces y botones conservan la mano; campos de texto, la barra I. */
@media (hover:hover) and (pointer:fine){
  :root{ --am-cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='32' viewBox='634 -45 444 585'%3E%3Cdefs%3E%3CclipPath id='c' clipPathUnits='userSpaceOnUse'%3E%3Cpolygon points='470,20 1100,20 1100,158 905,166 885,300 820,370 680,395 540,360 480,280'/%3E%3C/clipPath%3E%3Cfilter id='o' x='-20%25' y='-20%25' width='140%25' height='140%25'%3E%3CfeMorphology in='SourceAlpha' operator='dilate' radius='28' result='d'/%3E%3CfeFlood flood-color='%23FAEDE4'/%3E%3CfeComposite in2='d' operator='in'/%3E%3CfeMerge%3E%3CfeMergeNode/%3E%3CfeMergeNode in='SourceGraphic'/%3E%3C/feMerge%3E%3C/filter%3E%3C/defs%3E%3Cg filter='url(%23o)'%3E%3Cg transform='rotate(40 780 326) matrix(-1 0 0 1 1560 0)'%3E%3Cpath clip-path='url(%23c)' fill-rule='evenodd' fill='%23251E18' d='m747.6 28 14.4 4.8c3.4.4 6.7-1.7 10-2s6.6.6 10 0l14-3.9 10 7.9c4.7 1.8 12.7 1.7 18 3a59 59 0 0 1 14 5c3.3 1.9 5.3 5.9 8 7.7 2.4 1.7 5.8 1.9 8 3.2q3 1.7 5.1 4.3c2.8 3.1 8 9 11.7 14 4.2 5.6 10.7 16.1 13.2 19.5l2 .9c2.7.8 9.1 3.3 14 4.1 5.7 1 13.2 1.6 20 1.7 7.3.1 15.9-2.4 24-1.3 16.7 2.1 57 9.6 76 14a288 288 0 0 1 38 12.4l4 5.8 8 .4 5.2 6.5 6.2 4-1.4 3.2-8 2.1c-26.3 2.3-124 9.3-150 11.8-2.2.2-4.1 1.6-5.9 2.9-2.3 1.7-4.9 5.4-8.1 7.2-3.7 2-10.4 1.3-14 4.9a213 213 0 0 0-20.8 29.9 24 24 0 0 0-3.9 12c-.1 7 4.1 19.7 3.8 30s-4.7 25-5.7 32q-.6 5-.1 10c1 7.3 4.1 26.7 6 34 1 3.7 4.2 6.3 5.3 10 2.7 8.3 8.4 30.7 10.4 40a62 62 0 0 1 1.6 16c-.2 3.6-2.7 6.5-3.1 10-.6 4.7 1.4 12.1-.2 18s-7.1 11.7-9.6 18c-2.4 6.3-3.5 14.7-5.2 20-1.3 4.2-4.4 8.3-5 12-.5 3.4 1.4 6.7 1.6 10s.5 6.7-.4 10c-1.6 6.3-5.8 21.6-9.2 28-2.5 4.6-8.4 6.2-11.5 10.2s-4.5 9.3-7.4 13.8c-3.2 5-9.4 13-11.9 16-.9 1-2.6.9-3.4 2-4.2 6.3-17.6 27-22.3 36-3 5.7-4.7 13.3-5.8 18l-.8 10 9.6 10.3 4 2.6 2-.5 2-3.7 4-.2 6-3.5-.4-9 6.4-9.7 4 .3 10 8.8 10-2.5c2.7-.2 6 1 8 .8 1.5-.1 2.5-1.5 4-1.8 2-.2 5.3.5 8 .1 6.6-1.1 25.3-4.7 32-6.4 2.9-.7 5.1-2.7 8-3.5 7.7-2.2 29.3-6.9 38-9.4 4.9-1.5 9.7-4.7 14-5.8 4-1 8 .2 12-.8 11-2.9 43.3-13.7 54-16.6 3.3-.9 6.7 0 10-1 4.3-1.4 10.4-5 16-6.9 9-3.1 28.7-8 38-11.3 6.4-2.3 13-6.8 18-8.8 3.9-1.5 9.3-2 12-3 1.6-.7 2.3-2.7 4-3.2 2.3-.6 6.7.1 10-.8 5-1.4 16-5.7 20-7.4 1.5-.6 2.4-2.4 4-2.9l16-2.8v-5l-4.7-4.4.7-1.3 4 .8c2-.3 6-1.5 8-2.6l4-4 84-7.5c2.1-.2 4.3 1.2 6 1.1 1.5-.1 2.5-1.6 4-1.7 2.7-.4 9.7 0 12-.3.8-.1 1.2-1.3 2-1.4l72-6 4 4.9 6-1.3c7.3-.2 28.3.6 38 .1l20-3.3.2 2.5 4.5 2 2.6 8-1.3 2.5c-.9.7-2.5 1.7-4 2.1l-18 3.4-1.1 4-2.3 2 4 4-16.6 6.6c-12.8 4.3-41 12.6-60 19.1-18.5 6.3-44 15.7-54 19.6-2.2.9-3.7 2.9-6 3.7-2.7.9-6.7.6-10 1.7-3.7 1.3-7.7 4.6-12 6-5.7 1.8-17.7 3.5-22 4.8-1.7.6-2.3 2.8-4 3.5-2.3 1-6.7 1.1-10 2.3-6.3 2.2-21.3 8.8-28 11-3.9 1.3-8.1.6-12 2.1-4.7 1.7-10.7 6.4-16 8.3-5.2 1.8-10.7 1.3-16 2.8-8 2.2-24 7.3-32 10.8-5.9 2.5-10 7.6-16 10.1-6.3 2.5-15.3 3.2-22 5.3-6.3 2-13.3 6.1-18 7.3-3.3.9-6.7-.6-10 .1-5.3 1.1-16 4.4-22 6.7-5 1.9-9.1 4.9-14 7-5.3 2.2-13 5.4-18 6.4-4 .9-9-.6-12 0-2.4.5-3.7 3.2-6 3.8-2.7.7-6.7-.4-10 .3-7.7 1.8-29.3 8-36 10.2-1.6.6-2.4 2.4-4 3.1-3 1.2-10.3 3.4-14 4.2-2.7.6-5.3 0-8 .6-4 .8-12.7 3.1-16 4.4-1.6.6-2.4 2.6-4 3.3-3.3 1.3-11.2 1.6-16 4.6l-14 13.5-20-.8c-9.7 3.9-31 20.3-38 24.2-1.2.7-2.7.2-4-.3-2.7-1.1-8.3-5.4-12-6.4-3.3-.8-6.7.1-10 .9-11 2.9-40.8 11.1-56 16.3a202 202 0 0 0-35.5 14.9c-5.6 3.5-9.1 12-12.5 15-2.2 1.9-6 1.6-8 2.9l-4 4.7-4 .3-6 4.7-2-4.4-2-1-9.1 11.8-4.8 10 1.8 4c.4 4.3.8 14.5.7 22-.2 16.7-2.5 51.5-2 78 .6 28.7 4.9 75.7 5.6 94q.3 8-1.1 16c-.9 6-2.3 14.3-4.4 20a43 43 0 0 1-18.7 22 23 23 0 0 1-8 3.1l-8-.7-1.9 1.6-9.1 152c-3 38.9-9 89.7-11.9 114-1.3 11-7.9 21.2-5.4 32 2.9 12.7 17.3 31.3 22.9 44 4.5 10.5 8.1 24 10.2 32 1.4 5.3 1.1 10.7 2.4 16s4.4 10.3 5.5 16c1.9 9.7 5 30 5.5 42 .5 10.2-.7 21.3-2 30-1.1 7.6-3.2 15.3-5.5 22-2.2 6.4-4.1 12.7-8.3 18-5.3 6.7-17.3 16.7-23.3 22-4.2 3.6-10 6.6-13.1 9.6-2.4 2.4-2.7 6.5-5.5 8.4-6 3.9-22.4 12.2-30.5 15l-18 1.9-4-5.1-6 1.1c-6.3-1.2-25.9-6-32-7.8a8 8 0 0 1-4.4-3.1l-3.6-9.1h-2l-2 2.4-1.6-1.3 4.3-16a913 913 0 0 0 5.8-38c.7-6.1.2-11.9 1.2-18 1.5-9 5-27 7.6-36 1.9-6.4 5.8-13.7 8.1-18 1.4-2.9 4.2-4.9 5.3-8 1.3-3.7 1-9.4 2.5-14 5.2-15.7 21-62.3 28.3-80 3.9-9.5 12-19.7 15.4-26 2-3.9 4.4-7.6 4.7-12 2.9-33.7 9.7-141.3 12.7-190 2-34.7 4.2-83.9 4.9-102l-1.2-6.5-8-2.5-3.4-3-.9-6-3.7-2.6-.9-7.4c.2-5.6 1.6-20.7 1.7-26 0-2.1-1-3.9-.9-6 .5-6.3 3-21.1 3.7-32 .7-11 .1-25.3.6-34 .4-6.2 2.1-11.8 2.4-18 .8-17 2.2-65.7 2.5-84l-.9-26-2.2-.7c-2.7.6-9.3 2.8-14 4.3-5 1.7-12.3 4.1-16 5.6-2.2 1-3.7 3.1-6 3.8-4 1.2-12 1.7-18 3.4a526 526 0 0 0-34 11c-3.1 1.2-5.3 4.4-8 5.3-2.6.9-5.4-.5-8 .3-15.3 5-69 24.6-84 29.6-1.9.6-4.1-.2-6 .5-7 2.7-26.7 12.1-36 15.5-6.6 2.4-14.7 3-20 4.7-4.3 1.3-7.7 4-12 5.3-4.7 1.5-10.7 1.7-16 3.4-20 6.1-83.3 26.8-104 33.6-6.9 2.2-15.3 5.1-20 7.1-2.9 1.1-5 3.5-8 4.3-4 1.1-10.7.9-16 2.4l-70 21.1-.6-2.5 6.3-4-1.7-3.5-10 6.6-8.6-1.1 4.2-4-2.2-4 5.4-2-.8-2.4-4 .6-1.3-2.2 7.3-4.7v-3.9l-4 .2-6 6.8-3.9-.4 1.9-6.6-6 5-7.3 1.6.2-2 7.2-8-3.2-2-1.9-4 3.5-4-5.9-4 3.7-2-1-10-2.6-4 8.9-6 6.4-6.8 8 6 6-2.1 4.7.9-.8-4 4.5-6-.4-2.5-14 3.9v5.2l-8-2.7-1.5-1.9 3.1-2-1.6-1.9-10 .6v-1.3l12-6.2c6-1.8 16-2.6 24-4.9 11-3.2 32.7-11.6 42-14.2 4.6-1.3 9.5.2 14-1.3 5.3-1.7 13.3-7.4 18-9 3.2-1.2 6.7-.1 10-1 5.3-1.4 17-6.4 22-7.6l8 .2 8-7.3 10 .2c3.7-.6 9.3-2.7 12-3.8l4-2.8 4 .6c3.7-1.3 11.5-6.6 18-8.4 7.3-2 20.3-1.8 26-3.6 3.5-1.2 5-5.9 8-7.4s6.7-.5 10-1.6c4.4-1.5 11.7-5.8 16.4-7.3 3.8-1.2 7.8-.3 11.6-1.5 6.6-2 20.7-8.4 28-10.7 5.3-1.7 12.7-2.3 16-3.5l4-3.4 10-.2 26-9.9 2-3.4-10 1.4-.3-2.8 2.3-2.2 6 .7c2.3-.2 5.4-.8 8-1.8 4-1.6 10.3-5.7 16-7.5 6-1.9 13.4-1.7 20-3.6 10.7-3.1 34.3-12 44-14.7l14-1.7.5-9.2c-.6-4.9-3.2-13.1-4.2-20-1.2-7.3-2.2-15.8-2.5-24a717 717 0 0 1 0-44c.3-6.2 2.3-12.3 2.8-18 .5-5.4.5-12.3.3-16-.1-2.1-1.6-4-1.6-6s1.8-3.9 1.6-6c-.3-2.3-3-5.1-3.3-8-.5-7.7.6-25.1 0-38-.6-15-3.4-34.3-3.8-52-.6-20.7 0-55 .6-72 .3-10.2 3.3-23.3 2.9-30l-5.9-10 9.4-24c1.4-4.6 1.2-9.7 2.3-14 1.2-4.2 2.8-8.7 4.6-12 1.6-3.1 5.1-5.3 6.4-8 1.2-2.5.1-5.5 1.3-8 3.2-6.3 13.1-23 17.9-30 3.1-4.5 6.9-9 10.7-12 3.6-3 9.5-4.8 12-6.4a8 8 0 0 0 2.8-3.6c1.8-4.3 6.6-15 8-22 1.3-6.7-.7-13.7.4-20a70 70 0 0 1 6.4-18c3.6-7.3 11.8-20 14.8-26 1.6-3.2 1.5-7.3 3.2-10 1.6-2.6 5.1-3.4 6.7-6 2.6-4.3 5.1-13.6 9-20s11.4-14.2 14.7-18.8c2-2.9 2.9-6.6 4.9-9.2q3-3.8 7.1-6.3c3.2-1.9 8.2-3.2 12-5.5 4.3-2.7 10.1-6.2 13.9-10.2 3.7-4 5.3-10.4 8.6-14 3.2-3.4 8.6-5.1 11.5-7.3 2.3-1.8 3.4-5 6-6.3 3.3-1.7 9.7-1.6 14-4 5-2.9 12.3-10.9 16-13.2 1.7-1.1 4-.2 6-.8 2.3-.7 5.1-2.8 8-3.5 4-.9 11.1 0 16-2.2zM569.1 1052l.9-1.6 8 .9c2.7 1.2 5.7 4.9 8 6.3l6 1.9 2.3 4.5c.1 11.1-.7 40.9-1.6 62l-3.8 68-2.9 2.3-24 7.1V1162c.5-10.2 2.7-21.3 3.2-30 .5-7.5-.3-14.5 0-22 .5-8.3 2.2-21.3 2.5-28 .2-4.1-.9-7.9-.7-12 .2-5 1.6-14.7 2.1-18m13.4 170 3.5-.7.6 2.7c-1.2 12.8-5.6 58.3-7.7 74-1 7-4.2 13-5.1 20-1.1 8-.7 21.3-1.2 28-.3 4.1-1.2 8.8-2 12l-2.6 7.3-4 1.7-2.3-1c-2.1-2.5-8.2-11-10.1-14a7 7 0 0 1-1.3-4c.3-11 1.7-42.7 3.1-62 1.4-18.4 4.1-44.5 5.2-54l1.4-2.9z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E") 2 2, auto; }
  html{ cursor:var(--am-cursor); }
  :where(button:not(:disabled), summary, label[for], select, [role=button], [role=tab]){ cursor:pointer; }
  :where(input:not([type=checkbox],[type=radio],[type=submit],[type=button],[type=reset],[type=range],[type=file],[type=color],[type=image]), textarea, [contenteditable=""], [contenteditable="true"]){ cursor:text; }
  /* paginas donde el tema todavia imprime su punto (fuera de las vistas propias): se apaga y manda el ave */
  body.am-v2 .wdt-cursor-wrapper{ display:none !important; }
  html:has(body.am-v2 .wdt-cursor-wrapper){ cursor:var(--am-cursor) !important; }
  html:has(body.am-v2 .wdt-cursor-wrapper) *{ cursor:inherit !important; }
  html:has(body.am-v2 .wdt-cursor-wrapper) :is(a[href],button:not(:disabled),summary,label[for],select,[role=button]){ cursor:pointer !important; }
  html:has(body.am-v2 .wdt-cursor-wrapper) :is(input:not([type=checkbox],[type=radio],[type=submit],[type=button]),textarea){ cursor:text !important; }
}

/* sin numeros junto a categorias (pedido del cliente) */
.product-category .count, mark.count, .am-chip span.count{ display:none !important; }

/* ---------- Menu desplegable de Experiencias: solo texto, como indice editorial ---------- */
.am-hd-menu .sub-menu .am-mm-thumb{ display:none !important; } /* por si queda HTML en cache con miniaturas */
.am-hd-menu .sub-menu a{ display:flex !important; align-items:center; gap:12px; }
.am-hd-nav .am-hd-menu > li.menu-item-has-children > .sub-menu{ display:grid; grid-template-columns:1fr 1fr; gap:4px; min-width:520px; padding:12px; border-radius:18px; }
.am-hd-nav .am-hd-menu > li.menu-item-has-children > a::before{ content:''; position:absolute; right:-2px; top:50%; width:7px; height:7px; margin-top:-7px;
  border-right:1.6px solid currentColor; border-bottom:1.6px solid currentColor; transform:rotate(45deg); opacity:.7; }
.am-hd-nav .am-hd-menu > li.menu-item-has-children > a{ position:relative; padding-right:22px !important; }
.am-hd-nav .am-hd-menu > li.menu-item-has-children::after{ content:''; position:absolute; left:0; right:0; top:100%; height:14px; } /* puente de hover */
/* menu movil: 2 columnas de texto, filas de 48px con filete beige */
.am-hd-drawer .am-hd-menu--mobile li.is-sub-open > .sub-menu{ column-gap:clamp(14px,4vw,28px) !important; row-gap:0 !important; }
.am-hd-drawer .am-hd-menu--mobile .sub-menu a{ display:flex !important; align-items:center; min-height:48px; height:100%; padding:10px 0 !important; gap:0 !important;
  border-radius:0 !important; border-bottom:1px solid rgba(225,197,175,.18); font-family:var(--am-font-display) !important; font-size:16px !important; font-weight:500;
  line-height:1.25; letter-spacing:0; color:#FAEDE4 !important; }
.am-hd-drawer .am-hd-menu--mobile .sub-menu a:hover{ background:transparent !important; color:var(--am-beige) !important; }
.am-hd-drawer .am-hd-menu--mobile .sub-menu .current-menu-item > a{ color:var(--am-beige) !important; }

@media (prefers-reduced-motion:reduce){
  .am-marquee__track{ animation:none; }
  .am-btn, .am-btn::before{ transition:none; }
  .am-js h1[data-split]{ animation:none !important; }
}

/* ---------- Blindaje contra estilos heredados (tema + portada anterior) ---------- */
.am-page .am-section, .am-page section.am-section{ max-width:none !important; width:100% !important; margin:0 !important; }
.am-page button.am-round{ width:52px !important; height:52px !important; padding:0 !important; border-radius:50% !important; border:1.5px solid var(--am-line) !important;
  background:#fff !important; color:var(--am-green) !important; box-shadow:none !important; min-width:0 !important; line-height:1 !important; }
.am-page button.am-round:hover{ background:var(--am-green) !important; border-color:var(--am-green) !important; color:#fff !important; }
.am-section--dark button.am-round, .am-section--coffee button.am-round, .am-section--wine button.am-round, .am-section--green button.am-round{ background:transparent !important; border-color:rgba(225,197,175,.4) !important; color:var(--am-beige) !important; }
.am-page button.am-home-hero__bar{ background:transparent !important; border:0 !important; padding:0 !important; box-shadow:none !important; min-width:0 !important; border-radius:0 !important; }
.am-page button:focus-visible, .am-page a:focus-visible, .am-page [tabindex]:focus-visible{ outline:2px solid var(--am-terracotta); outline-offset:3px; }
.am-section--dark :is(a,button,[tabindex]):focus-visible, .am-section--coffee :is(a,button,[tabindex]):focus-visible, .am-section--wine :is(a,button,[tabindex]):focus-visible,
.am-section--green :is(a,button,[tabindex]):focus-visible, .am-community-band :is(a,button,[tabindex]):focus-visible, .am-on-media :is(a,button,[tabindex]):focus-visible{ outline-color:var(--am-beige); }
.am-fallback [data-reveal], .am-fallback [data-stagger] > *, .am-no-motion [data-reveal], .am-no-motion [data-stagger] > *{ visibility:visible !important; }
/* el tema agrega un separador en ::after a todos los items menos el ultimo y desalinea "Contacto" */
.am-hd-nav .am-hd-menu > li::before{ display:none !important; }
.am-hd-nav .am-hd-menu > li::after{ content:'' !important; position:absolute !important; left:0; right:0; top:100%; height:14px; background:none !important; border:0 !important; }
/* chips como <button>: el tema pinta todos los botones */
.am-page button.am-chip{ -webkit-appearance:none; appearance:none; font-family:var(--am-font-display) !important; font-size:.9rem !important; font-weight:500 !important;
  background:#fff !important; color:var(--am-green-800) !important; border:1px solid var(--am-line) !important; border-radius:999px !important;
  padding:10px 18px !important; box-shadow:none !important; min-height:44px !important; line-height:1.2 !important; text-transform:none !important; letter-spacing:0 !important; cursor:pointer; }
.am-page button.am-chip:hover{ border-color:var(--am-green) !important; }
.am-page button.am-chip.is-active{ background:var(--am-green) !important; border-color:var(--am-green) !important; color:#fff !important; }
.am-page :is(.am-section--green,.am-section--dark,.am-section--coffee,.am-section--wine) button.am-chip.is-active{ background:var(--am-beige) !important; border-color:var(--am-beige) !important; color:var(--am-coffee) !important; }
/* .am-page p ganaba en especificidad a .am-eyebrow (salia gris) */
.am-page .am-eyebrow{ color:var(--am-terracotta); }
.am-page .am-section--dark .am-eyebrow, .am-page .am-section--coffee .am-eyebrow, .am-page .am-section--wine .am-eyebrow,
.am-page .am-section--green .am-eyebrow, .am-page .am-on-media .am-eyebrow{ color:var(--am-beige); }
/* el tema usa naranja (#ff9933) como color primario: lo remapeamos a la paleta de marca en todo el sitio v2 */
body.am-v2{ --wdtPrimaryColor:#A2573A; --wdtPrimaryColorRgb:162,87,58; --wdtLinkHoverColor:#374631; --wdtLinkHoverColorRgb:55,70,49; --wdtQuaternaryColor:#374631; --wdtQuaternaryColorRgb:55,70,49; --wdtBodyBGColor:#fbf8f3; --wdtBodyBGColorRgb:251,248,243;
  --wdtFontTypo_Base:'Source Sans 3','Segoe UI',sans-serif; --wdtFontTypo_Alt:'Jost','Century Gothic',sans-serif; --wdtFontTypo_Ext:'Jost','Century Gothic',sans-serif; }
.am-page table:not(.am-promo-table):not(.am-tour-rates){ width:100%; border-collapse:collapse; background:transparent; border:0; }
.am-page table:not(.am-promo-table):not(.am-tour-rates) th{ background:transparent !important; color:var(--am-terracotta) !important; font-family:var(--am-font-display); font-size:.75rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; text-align:left; padding:10px 8px !important; border:0 !important; border-bottom:1px solid var(--am-line) !important; }
.am-page table:not(.am-promo-table):not(.am-tour-rates) td{ background:transparent !important; padding:11px 8px !important; border:0 !important; border-bottom:1px solid var(--am-line) !important; color:var(--am-coffee); }
.am-page table:not(.am-promo-table):not(.am-tour-rates) tr:last-child td{ border-bottom:0 !important; }
.am-section--dark table:not(.am-promo-table):not(.am-tour-rates) td, .am-section--coffee table:not(.am-promo-table):not(.am-tour-rates) td,
.am-section--green table:not(.am-promo-table):not(.am-tour-rates) td{ color:#efe6da; border-color:rgba(225,197,175,.18) !important; }
.am-section--dark table:not(.am-promo-table):not(.am-tour-rates) th, .am-section--coffee table:not(.am-promo-table):not(.am-tour-rates) th,
.am-section--green table:not(.am-promo-table):not(.am-tour-rates) th{ color:var(--am-beige) !important; }
/* el tema da padding-bottom:10px a todos los items menos el ultimo: "Contacto" quedaba 5px mas abajo */
.am-hd-nav .am-hd-menu > li{ padding:0 !important; margin:0 !important; }
.am-page table:not(.am-promo-table):not(.am-tour-rates) th, .am-page table:not(.am-promo-table):not(.am-tour-rates) td{ text-align:left !important; }
.am-page table:not(.am-promo-table):not(.am-tour-rates) th:last-child:not(:first-child), .am-page table:not(.am-promo-table):not(.am-tour-rates) td:last-child:not(:first-child){ text-align:right !important; }
/* menu movil: fondo solido (con transparencia se leia el contenido de atras) */
.am-hd-drawer{ background:linear-gradient(180deg,#2b3826 0%,#251E18 100%) !important; }

/* ---------- Correcciones del tema (auditoria v3) ---------- */
/* (a) el tema quita el padding del ultimo li: la ultima fila quedaba pegada al borde */
.am-page .am-home-community__list li, .am-page .am-contact2__list li{ padding-bottom:18px !important; }
.am-page .am-values-big li{ padding-bottom:clamp(22px,2.361vw,34px) !important; }
/* (b) 404 y alineacion heredada del tema (centra todo) */
body.error404.am-v2-view .wrapper{ padding:0 !important; background:var(--am-cream) !important; }
body.am-v2-view #main > .container, .am-page{ text-align:left; }
/* (d) blockquote del tema: borde, padding y fondo que dejaban una raya suelta en .am-quote-band */
.am-page blockquote{ border:0 !important; padding:0 !important; background:none !important; margin:0; quotes:none; }
.am-page blockquote::before, .am-page blockquote::after{ content:none !important; display:none !important; }
/* (e) titulos sin viudas; en textos cortos el ultimo renglon no queda con una sola palabra ("cotizar.", "IVA.") */
.am-page :is(h1,h2,h3,h4){ text-wrap:balance; }
.am-page :is(p,li,figcaption,small,dd,blockquote){ text-wrap:pretty; }

/* ==========================================================================
   COMPONENTES COMPARTIDOS
   ========================================================================== */

/* ---------- Reserva en 3 pasos (am_render_steps) ---------- */
.am-steps{ --st-accent:var(--am-terracotta); --st-line:var(--am-line); --st-title:var(--am-green-800); --st-text:var(--am-muted); --st-dot-bg:var(--am-cream);
  --st-y:clamp(86px,7.778vw,112px); position:relative; }
.am-steps--dark{ --st-accent:var(--am-beige); --st-line:rgba(225,197,175,.24); --st-title:#FAEDE4; --st-text:#e3d8cb; --st-dot-bg:var(--am-coffee); }
.am-steps__list{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(28px,5vw,72px); }
.am-steps__item{ position:relative; margin:0; padding:calc(var(--st-y) + 34px) 0 0; list-style:none; }
.am-steps__num{ position:absolute; left:-.04em; top:calc(var(--st-y) - 12px); translate:0 -100%; font-family:var(--am-font-display); font-weight:300;
  font-size:clamp(4rem,6.889vw,6.2rem); line-height:.8; letter-spacing:-.04em; color:var(--st-accent); font-variant-numeric:lining-nums; }
.am-steps__dot{ position:absolute; left:0; top:var(--st-y); width:13px; height:13px; margin-top:-6.5px; border-radius:50%;
  background:var(--st-dot-bg); box-shadow:inset 0 0 0 2px var(--st-accent); transition:background-color .5s var(--am-ease), scale .5s var(--am-ease); }
.am-steps__item.is-on .am-steps__dot, .am-no-motion .am-steps__dot, .am-fallback .am-steps__dot{ background:var(--st-accent); }
.am-page .am-steps__title{ margin:0 0 10px; font-family:var(--am-font-display); font-size:clamp(1.25rem,1.722vw,1.55rem); font-weight:500; line-height:1.15; letter-spacing:-.005em; color:var(--st-title); }
.am-page .am-steps__text{ margin:0; max-width:34ch; font-size:1.0625rem; line-height:1.6; color:var(--st-text); }
.am-steps__text a{ color:inherit; text-decoration:underline; text-decoration-color:var(--st-accent); text-decoration-thickness:2px; text-underline-offset:3px; }
.am-steps__text a:hover{ color:var(--st-title); }
.am-steps__line{ position:absolute; pointer-events:none; overflow:visible; }
.am-steps__line--h{ left:0; right:0; top:calc(var(--st-y) - 1px); width:100%; height:2px; }
.am-steps__line--v{ display:none; }
.am-steps__track{ stroke:var(--st-line); stroke-width:2; }
.am-steps__fill{ stroke:var(--st-accent); stroke-width:2; stroke-dasharray:1; stroke-dashoffset:0; }
.am-js .am-steps__fill{ stroke-dashoffset:1; }
.am-js .am-steps__item{ opacity:0; }
.am-no-motion .am-steps__item, .am-fallback .am-steps__item{ opacity:1 !important; visibility:visible !important; transform:none !important; }
.am-no-motion .am-steps__fill, .am-fallback .am-steps__fill{ stroke-dashoffset:0 !important; }
@media (max-width:760px){
  .am-steps{ --st-y:0px; }
  .am-steps__list{ grid-template-columns:1fr; gap:34px; }
  .am-steps__item{ padding:0 0 0 58px; }
  .am-steps__num{ position:static; display:block; translate:none; margin:0 0 6px; font-size:2.6rem; line-height:.9; }
  .am-steps__dot{ left:0; top:14px; margin-top:0; }
  .am-steps__line--h{ display:none; }
  .am-steps__line--v{ display:block; left:5.5px; top:20px; bottom:20px; width:2px; height:calc(100% - 40px); }
}

/* ---------- Calculadora de grupo (am_render_rate_calc / [data-rate-calc]) ---------- */
.am-rc{ --rc-bg:#fff; --rc-fg:var(--am-coffee); --rc-muted:var(--am-muted); --rc-line:var(--am-line); --rc-accent:var(--am-terracotta);
  display:grid; gap:14px; padding:clamp(20px,1.944vw,28px); border-radius:var(--am-r); background:var(--rc-bg); color:var(--rc-fg); border:1px solid var(--rc-line); }
.am-rc--dark{ --rc-bg:rgba(250,237,228,.06); --rc-fg:#FAEDE4; --rc-muted:#e3d8cb; --rc-line:rgba(225,197,175,.22); --rc-accent:var(--am-beige); }
.am-rc__head{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.am-page .am-rc__label{ font-family:var(--am-font-display); font-size:.95rem; font-weight:500; color:var(--rc-fg); }
.am-rc__stepper{ display:inline-flex; align-items:center; gap:6px; padding:4px; border-radius:var(--am-r-pill); border:1px solid var(--rc-line); }
.am-page button.am-rc__btn{ -webkit-appearance:none; appearance:none; display:grid; place-items:center; width:44px !important; height:44px !important; min-width:0 !important; min-height:0 !important;
  padding:0 !important; border-radius:50% !important; border:0 !important; background:transparent !important; color:var(--rc-fg) !important; box-shadow:none !important; cursor:pointer; line-height:1 !important; transition:background-color .25s; }
.am-page button.am-rc__btn:hover:not(:disabled){ background:var(--am-sand) !important; color:var(--am-coffee) !important; }
.am-page button.am-rc__btn:disabled{ opacity:.35; cursor:not-allowed; }
.am-rc__n{ min-width:2.2ch; text-align:center; font-family:var(--am-font-display); font-size:1.5rem; font-weight:500; font-variant-numeric:tabular-nums; }
.am-page .am-rc__price{ margin:0; font-family:var(--am-font-display); font-size:1rem; color:var(--rc-muted); line-height:1.3; }
.am-rc__price strong{ display:inline-block; margin-right:6px; font-size:clamp(1.9rem,2.667vw,2.4rem); font-weight:600; letter-spacing:-.02em; color:var(--rc-fg); font-variant-numeric:tabular-nums; }
.am-rc__price.is-quote strong{ font-size:1.25rem; letter-spacing:0; }
.am-page .am-rc__total{ margin:0; padding-top:12px; border-top:1px solid var(--rc-line); font-size:1rem; color:var(--rc-muted); font-variant-numeric:tabular-nums; }
.am-rc__total[hidden]{ display:none; }
.am-rc__wa{ width:100%; white-space:normal; text-align:center; line-height:1.2; }

/* ---------- Contadores ---------- */
.am-counter{ font-variant-numeric:tabular-nums; }

/* ---------- Carruseles: progreso ---------- */
.am-page .am-swiper-progress, .am-page .swiper-pagination.am-swiper-progress{ position:relative !important; inset:auto !important; width:auto !important;
  height:3px !important; border-radius:3px; background:var(--am-line); overflow:hidden; transform:none !important; }
.am-page :where(.am-swiper-progress){ margin:24px var(--am-gutter) 0; }
.am-page :where(.am-container) :where(.am-swiper-progress){ margin:24px 0 0; }
.am-page .am-swiper-progress .swiper-pagination-progressbar-fill{ background:var(--am-terracotta); border-radius:3px; }
.am-section--dark .am-swiper-progress, .am-section--coffee .am-swiper-progress, .am-section--wine .am-swiper-progress, .am-section--green .am-swiper-progress{ background:rgba(225,197,175,.2) !important; }
.am-section--dark .am-swiper-progress .swiper-pagination-progressbar-fill, .am-section--coffee .am-swiper-progress .swiper-pagination-progressbar-fill,
.am-section--wine .am-swiper-progress .swiper-pagination-progressbar-fill, .am-section--green .am-swiper-progress .swiper-pagination-progressbar-fill{ background:var(--am-beige); }

/* ---------- Galeria v2: creditos y verticales ---------- */
.am-gal2__item small.am-gal2__credit{ display:block; margin-top:4px; font-family:var(--am-font-body); font-size:max(.75rem,12px); font-weight:400; letter-spacing:.02em; opacity:.85; }
.am-gal2__item--tall img{ aspect-ratio:3/4; object-fit:cover; }
/* ---------- Galeria completa: filtros por tema y por experiencia + "Ver mas" ---------- */
.am-gfilters{ display:flex; flex-direction:column; gap:12px; margin-bottom:clamp(24px,2.778vw,40px); }
.am-gfilters .am-gfilter{ margin-bottom:0; align-items:center; }
.am-gfilter__label{ flex:none; align-self:center; font-family:var(--am-font-display); font-size:max(.74rem,12px); font-weight:500;
  letter-spacing:.2em; text-transform:uppercase; color:var(--am-muted); padding-right:4px; }
.am-page .am-chip .am-chip__n{ display:inline-block; margin-left:7px; font-size:max(.72rem,12px); font-weight:400;
  font-variant-numeric:tabular-nums; opacity:.6; }
.am-page .am-chip.is-active .am-chip__n{ opacity:.85; }
/* .is-over: fotos aun plegadas. Sin JS no se aplica (core.php imprime un <noscript> que las devuelve). */
.am-gal2__item.is-over{ display:none; }
/* Los pies vienen del texto alternativo de la biblioteca y a veces son largos: dos lineas y puntos suspensivos.
   El recorte va en el <span> interior, no en el <figcaption>: al estar en position:absolute el navegador
   convierte su display a flow-root y -webkit-line-clamp deja de aplicar. */
.am-gal2 .am-gal2__item figcaption{ overflow:hidden; }
.am-gal2 .am-gal2__item .am-gal2__cap{ display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
.am-gal2-more{ display:flex; flex-direction:column; align-items:center; gap:10px; margin-top:clamp(28px,3.056vw,44px); }
.am-gal2-more:has(> [data-more-btn][hidden]){ display:none; }
.am-gal2-more__n{ margin:0; font-size:.92rem; color:var(--am-muted); font-variant-numeric:tabular-nums; }
@media (max-width:760px){
  .am-gfilters{ gap:8px; }
  .am-gfilter__label{ font-size:max(.7rem,12px); letter-spacing:.16em; }
}
button.am-lbx-hit{ all:unset; position:absolute !important; inset:0 !important; z-index:3; display:block !important; width:auto !important; height:auto !important; margin:0 !important; padding:0 !important;
  background:transparent !important; border:0 !important; box-shadow:none !important; border-radius:inherit; cursor:zoom-in; }
button.am-lbx-hit:focus-visible{ outline:3px solid var(--am-terracotta) !important; outline-offset:-3px; }

/* ---------- Lightbox ([data-lightbox]) ---------- */
.am-lbx{ position:fixed; inset:0; z-index:100002; touch-action:none; overscroll-behavior:contain; display:grid; grid-template-rows:auto minmax(0,1fr) auto; background:#18130F; color:#FAEDE4;
  opacity:0; transition:opacity .35s var(--am-ease); font-family:var(--am-font-display); }
.am-lbx[hidden]{ display:none !important; }
.am-lbx.is-open{ opacity:1; }
.am-lbx__top{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px clamp(14px,3vw,32px); }
.am-lbx__count{ font-size:.95rem; font-weight:500; letter-spacing:.14em; font-variant-numeric:tabular-nums; color:var(--am-beige); }
.am-lbx__stage{ position:relative; display:grid; place-items:center; min-height:0; height:100%; overflow:hidden; padding:0 clamp(8px,7vw,96px); touch-action:none; user-select:none; }
.am-lbx__img{ max-width:100%; max-height:calc(100vh - 150px); max-height:calc(100dvh - 150px); width:auto; height:auto; object-fit:contain; border-radius:6px; box-shadow:0 30px 80px rgba(0,0,0,.45);
  transition:opacity .3s var(--am-ease), translate .45s var(--am-ease); }
.am-lbx__img.is-loading{ opacity:.25; }
.am-lbx__bar{ display:flex; align-items:baseline; gap:18px; padding:14px clamp(16px,3vw,32px) max(18px,env(safe-area-inset-bottom)); min-height:64px; }
.am-lbx__cap{ margin:0; font-family:var(--am-font-body); font-size:1.02rem; line-height:1.45; color:#FAEDE4; }
.am-lbx__btn{ -webkit-appearance:none; appearance:none; display:grid !important; place-items:center; width:48px !important; height:48px !important; min-width:0 !important; padding:0 !important;
  border-radius:50% !important; border:1px solid rgba(225,197,175,.35) !important; background:rgba(37,30,24,.55) !important; color:#FAEDE4 !important; cursor:pointer; box-shadow:none !important;
  transition:background-color .25s, color .25s, border-color .25s; }
.am-lbx__btn:hover{ background:var(--am-beige) !important; color:var(--am-coffee) !important; border-color:var(--am-beige) !important; }
.am-lbx__btn:focus-visible{ outline:2px solid var(--am-beige); outline-offset:3px; }
.am-lbx__btn svg{ width:22px; height:22px; }
.am-lbx__prev, .am-lbx__next{ position:absolute; top:50%; translate:0 -50%; z-index:2; }
.am-lbx__prev{ left:clamp(8px,2vw,28px); } .am-lbx__next{ right:clamp(8px,2vw,28px); }
@media (max-width:640px){
  .am-lbx__stage{ padding:0; }
  .am-lbx__img{ border-radius:0; }
  .am-lbx__prev, .am-lbx__next{ top:auto; bottom:12px; translate:none; position:fixed; }
  .am-lbx__bar{ padding-right:128px; }
  .am-lbx__prev{ left:auto; right:72px; } .am-lbx__next{ right:14px; }
}
@media (prefers-reduced-motion:reduce){ .am-lbx, .am-lbx__img{ transition:none; } }

/* ==========================================================================
   r22 (29-sep-2026) - ajustes globales de la reunion con el cliente
   ========================================================================== */

/* ---------- Iconos en los botones de reserva (los pone am.js: ctaIcons) ----------
   Todo enlace-boton que lleva al formulario (/contacto/#solicitud o "Solicitar cotizacion") recibe el sobre y todo
   enlace-boton de WhatsApp recibe su icono, en cualquier plantilla, sin tocar el HTML de cada vista.
   El JS marca el enlace con data-am-ico="mail|wa" y el icono con .am-ico--auto. Si una plantilla ya trae su
   icono (clase am-ico--mail / am-ico--whatsapp, o cualquier svg en los de WhatsApp) no se duplica. */
a[data-am-ico] > .am-ico--auto{ flex:0 0 auto; display:inline-block; width:1.2em; height:1.2em; vertical-align:-.24em; }
a[data-am-ico]:not(.am-btn) > .am-ico--auto{ margin-right:.5em; }
.am-btn[data-am-ico] > .am-ico--auto{ width:19px; height:19px; }

/* ---------- Antetitulos propios de algunas vistas: misma escala que .am-eyebrow ----------
   ("Promociones del mes", fichas). Si una vista quiere otro tamano, que use var(--am-eyebrow-fs) o quite su
   nombre de esta lista. r24 (30-sep): mision y vision (.am-purpose__label) salieron de aqui: el cliente los pidio
   MAS grandes que un antetitulo y su tamano lo manda page.css (18 px en celular, ~21-22 px en 1440). */
body.am-v2 .am-page :is(.am-promo-tarifa__kicker, .am-exp-empty__kicker, .am-tour-community__kicker){ font-size:var(--am-eyebrow-fs); letter-spacing:.16em; }

/* ---------- Modo liviano: equipos lentos o ahorro de datos ----------
   am.js pone html.am-lite si el navegador pide ahorrar datos (Save-Data, prefers-reduced-data), si la red es 2G,
   si el equipo es claramente limitado (2 nucleos o menos; 4 nucleos con 4 GB o menos) o si al cargar la pagina
   se mide que no llega a ~40 cuadros por segundo. NO usa effectiveType '3g' (Chrome Android lo reporta con datos
   moviles normales). Se apaga lo pesado para el procesador: las lineas de fondo en movimiento (mask-position
   se repinta en cada cuadro), el parallax y el grano fijo sobre toda la vista. Las entradas suaves se quedan.
   Si el visitante enciende "Animaciones" en el pie (am-motion-force), manda su eleccion y no hay modo liviano. */
html.am-lite .am-contours::before, html.am-lite .am-contours::after,
html.am-lite .am-section.am-grain::before, html.am-lite .am-section.am-grain::after,
html.am-lite .am-page--galeria .am-section > .am-container::before, html.am-lite .am-page--galeria .am-tex > .am-container::before{ animation:none !important; }
html.am-lite .am-film{ display:none !important; }
/* r24: con "Animaciones" apagadas en el pie (modo ninguna) las curvas de las secciones oscuras seguian moviendose */
html.am-motion-ninguna .am-contours::before, html.am-motion-ninguna .am-section.am-grain::before{ animation:none !important; }
html.am-lite [data-parallax]{ transform:none !important; }

/* ==========================================================================
   Laptops (28-sep-2026)
   Entre 1025 y 1599 px de ancho, o con menos de 900 px de alto, la escala
   pensada para monitores grandes se veía "muy grande" en las computadoras del
   cliente (Windows con escala 125-150 % deja 1280-1536 px útiles y ~720 de alto).
   Se baja la base un 6 % y se topan los titulares que crecen con el ancho,
   teniendo en cuenta también el alto de la pantalla.
   ========================================================================== */
@media (min-width:1025px) and (max-width:1599px), (min-width:1025px) and (max-height:900px){
  html{ font-size:94%; }
  body.am-v2 .am-display{ font-size:clamp(2.4rem,4.9vw,4.6rem) !important; }
  /* r22: el H2 sube ~12 % respecto al 28-sep (39,7 -> 44px en 1280; 43,6 -> 49px en 1440) sin volver a la escala de monitor */
  body.am-v2 .am-h2{ font-size:clamp(2rem,3.45vw,3.25rem) !important; }
  /* r22: en laptop (poca altura) el aire entre secciones baja un poco mas: 96px en 1280, 108px en 1440+ */
  :root{ --am-sec-y:clamp(60px,7.5vw,108px); }
  body.am-v2 .am-home-hero__title .am-title-duo__strong{ font-size:clamp(2rem,min(4.3vw,8.2vh),4.4rem); }
  body.am-v2 .am-home-hero__title .am-title-duo__light{ font-size:clamp(2.1rem,min(4.7vw,8.8vh),4.8rem); }
  body.am-v2.am-page--tour .am-tour-hero__title,
  body.am-v2 .am-page--tour .am-tour-hero__title{ font-size:clamp(2.4rem,min(5vw,9vh),4.4rem) !important; }
  body.am-v2 .am-home-community__title .am-title-duo__strong{ font-size:clamp(2.3rem,4.6vw,4.3rem); }
}

/* =========================================================================
   r23 · PIES DE FOTO (pedido del cliente, 29-sep)
   Discretos, en el color de la marca y visibles tambien en tablet y celular. Solo existen si hay texto
   (am_pie_tag() no imprime nada sin pie). Tres variantes:
     .am-pie--over   sobre la foto, con un degradado suave abajo (marcos con object-fit:cover)
     .am-pie--below  debajo de la foto, en terracota
     .am-pie--hero   esquina inferior del encabezado a sangre de las paginas internas
   Los pies automaticos de [am_img] (.am-pie--auto) se esconden si la figura ya trae su <figcaption> del editor.
   ========================================================================= */
.am-page .am-pie{ display:block; margin:10px 0 0; font-family:var(--am-font-display); font-weight:400; font-style:normal;
  font-size:max(.84rem,13px); line-height:1.4; letter-spacing:.005em; color:var(--am-terracotta-700); text-wrap:pretty; }
.am-page .am-pie--over{ position:absolute; left:0; right:0; bottom:0; z-index:3; margin:0;
  padding:clamp(28px,3vw,40px) clamp(12px,1.4vw,18px) clamp(9px,1.1vw,13px);
  font-size:max(14.4px,clamp(.9rem,1vw,1rem)); line-height:1.35; color:#FAEDE4; text-shadow:0 1px 8px rgba(20,16,12,.5);
  background:linear-gradient(to top, rgba(37,30,24,.72) 0%, rgba(37,30,24,.4) 55%, rgba(37,30,24,0) 100%); pointer-events:none; }
/* r24: el pie sobre la foto sube de 12,5 px a 14-15 px (acuerdo "pies de foto mas grandes", igual que Quienes somos) */
.am-page .am-pie--hero{ margin:clamp(14px,1.6vw,20px) 0 0; max-width:44ch;
  font-size:max(.8rem,12.5px); line-height:1.4; color:rgba(250,237,228,.9); text-shadow:0 1px 10px rgba(0,0,0,.55); }
.am-page .am-pie--hero::before{ content:''; display:inline-block; width:18px; height:1px; margin-right:9px; vertical-align:middle; background:currentColor; opacity:.7; }
:is(.am-section--dark,.am-section--coffee,.am-section--green,.am-section--wine) .am-pie:not(.am-pie--over):not(.am-pie--hero){ color:var(--am-beige); }
figure:has(> figcaption:not(.am-pie)) .am-pie--auto{ display:none; }
/* celular: el pie sobre la foto se queda en tres lineas como mucho (el texto completo sale en el visor) */
@media (max-width:640px){
  /* r24: el espacio de abajo va como borde transparente (no como relleno): overflow:hidden corta en el borde del
     relleno y asi no asoma media cuarta linea debajo de los puntos suspensivos; el degradado sigue llegando al borde */
  .am-page .am-pie--over{ padding-top:24px; padding-bottom:0; border-bottom:9px solid transparent; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; }
}

/* =========================================================================
   r26 · DIMENSIONES EN COMPUTADORA (pedido del cliente, 30-sep y 1-oct)
   "Poder ver por lo menos una seccion a la vez, completa", "margenes mas pequenos" y "las imagenes
   siguen muy cerca de los margenes, sobrepasandose". Medido en 1280x720, 1366x657, 1440x900 y
   1536x730 (Windows al 125-150 %): con 657 px de alto quedaban ~565 px utiles bajo la cabecera y las
   secciones median 700-900 px, casi todo aire vertical.
   - El aire entre secciones depende ahora tambien del ALTO de la ventana (vh), no solo del ancho.
   - La cabecera fija baja a 80 px cuando la ventana tiene poco alto (antes 92).
   - Ningun carrusel ni foto llega al borde de la ventana: se cortan en el borde del contenedor
     (las fotos de fondo a sangre siguen igual). Celular y tablet no cambian.
   ========================================================================= */
@media (min-width:1025px){
  :root{ --am-sec-y:clamp(44px,min(5.4vw,9.4vh),100px); --am-sec-y-tight:clamp(30px,min(3.4vw,6vh),60px); }
}
@media (min-width:1081px) and (max-height:820px){ :root{ --am-hd:80px; } }
/* titulos grandes: en pantallas bajas tambien se topan por el alto */
@media (min-width:1025px) and (max-height:820px){
  body.am-v2 .am-h2{ font-size:clamp(1.9rem,min(3.45vw,7vh),3.25rem) !important; }
  body.am-v2 .am-display{ font-size:clamp(2.2rem,min(4.9vw,9vh),4.6rem) !important; }
}

/* Carril de fotos de la ficha ("Aves en imagenes"): antes se salia hasta el borde de la ventana;
   ahora se corta en el borde del contenedor, con las flechas siempre a la vista arriba a la derecha. */
@media (min-width:1024px){
  body.am-v2 .am-page--tour .am-tour-bleed.swiper,
  body.am-v2.am-page--tour .am-tour-bleed.swiper{ overflow:hidden; }
  /* videos verticales "En movimiento": el alto tambien depende del alto de la ventana */
  body.am-v2 .am-tour-reels{ --am-reel-h:clamp(280px,min(34vw,calc(100svh - var(--am-hd) - 290px)),500px); }
}

/* =========================================================================
   r26 · REDES "FLOTANTES" EN TODO EL SITIO (pedido del cliente, 1-oct)
   "En el blog, como aparecen las redes sociales, asi lo queremos en todo lado, no con boton" y
   "estos botones nos gustaban mas como que flotaban": icono + nombre subrayado, sin pastilla ni borde.
   Aqui va el menu del celular (am-header.php); el pie lo trae am-footer.php y el blog blog.css.
   ========================================================================= */
body .am-hd-drawer__foot .am-hd-drawer__social{ gap:0 26px !important; }
body .am-hd-drawer__foot .am-hd-drawer__social a.am-hd-drawer__red{ min-height:48px; padding:0 !important; border:0 !important; border-radius:0 !important; background:none !important;
  gap:10px; font-size:1.02rem; font-weight:600; color:#FAEDE4 !important; }
body .am-hd-drawer__foot .am-hd-drawer__social a.am-hd-drawer__red > span:not(.am-sr){ text-decoration:underline !important; text-decoration-color:rgba(225,197,175,.5) !important;
  text-decoration-thickness:1.5px; text-underline-offset:6px; transition:text-decoration-color .3s var(--am-ease); }
body .am-hd-drawer__foot .am-hd-drawer__social a.am-hd-drawer__red:hover{ background:none !important; color:#fff !important; }
body .am-hd-drawer__foot .am-hd-drawer__social a.am-hd-drawer__red:hover > span:not(.am-sr){ text-decoration-color:var(--am-beige) !important; }
body .am-hd-drawer__foot .am-hd-drawer__social a.am-hd-drawer__red .am-hd-top__svg{ width:20px; height:20px; color:var(--am-beige); transition:transform .4s var(--am-ease); }
body .am-hd-drawer__foot .am-hd-drawer__social a.am-hd-drawer__red:hover .am-hd-top__svg{ transform:translateY(-2px); }
/* franja de arriba: mismo subrayado en el nombre (el icono ya iba sin caja) */
body .am-hd .am-hd-top__a .am-hd-top__n{ text-decoration:underline !important; text-decoration-color:rgba(162,87,58,.45); text-decoration-thickness:1px; text-underline-offset:4px; }
body .am-hd--over .am-hd-top__a .am-hd-top__n{ text-decoration-color:rgba(250,237,228,.45); }
body .am-hd .am-hd-top__a:hover{ background:none !important; }
@media (prefers-reduced-motion:reduce){
  body .am-hd-drawer__foot .am-hd-drawer__social a.am-hd-drawer__red .am-hd-top__svg, body .am-hd-drawer__foot .am-hd-drawer__social a.am-hd-drawer__red > span{ transition:none; }
}
html.am-no-motion:not(.am-motion-force) body .am-hd-drawer__foot .am-hd-drawer__social a.am-hd-drawer__red .am-hd-top__svg{ transition:none !important; transform:none !important; }
