/* Base v3 — CSS común que no hace falta para la primera pantalla (va en /v3/<tipo>.css, diferido). */
/* Flecha de Font Awesome (long-arrow-alt-right) como máscara: para los ::after de enlaces */
:root{--v3-flecha:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M313.9 216H12c-6.6 0-12 5.4-12 12v56c0 6.6 5.4 12 12 12h301.9v46.1c0 21.4 25.9 32.1 41 17l86.1-86.1c9.4-9.4 9.4-24.6 0-33.9l-86.1-86.1c-15.1-15.1-41-4.4-41 17V216z'/%3E%3C/svg%3E")}
/* ---------- Contacto y formulario ---------- */
.contacto{position:relative;margin-bottom:70px;padding:300px 0 150px;background:url("/_opt/v3/img/patron-569-569.909bac93.webp") 50% 50%/21% auto repeat;background-image:image-set(url(/v3/img/patron-569.avif) type("image/avif"),url("/_opt/v3/img/patron-569-569.909bac93.webp") type("image/webp"))}
.forma--contacto-arriba{top:-1px}
.forma--contacto-arriba svg{width:calc(250% + 1.3px);height:150px;transform:translateX(-50%) rotateY(180deg)}
.forma--contacto-abajo{bottom:-1px}
.forma--contacto-abajo svg{width:calc(300% + 1.3px);height:150px;transform:translateX(-50%)}
.contacto__in{position:relative;max-width:1140px;margin:-60px auto 0;padding:10px}
.contacto__titulo{margin-bottom:20px;font:700 44px/1.3 Restora,serif;color:#111}
.contacto__intro{margin:0 25% calc(1.6em + 40px) 0}
.contacto__intro a{color:#696953;font-weight:600}
.contacto__intro a:hover,.v2-aviso-datos a:hover{text-decoration:underline;text-decoration-color:#696953;text-decoration-thickness:2px;text-underline-offset:.13em;text-decoration-skip-ink:none}
.contacto__cols{display:flex;align-items:stretch}
.contacto__form{width:58%;padding:40px;border-radius:20px;background:rgba(255,255,255,.62)}
.contacto__otros{display:flex;flex-direction:column;align-items:center;justify-content:center;align-self:center;width:calc(42% - 80px);margin:0 0 0 80px;padding:44px 20px;border-radius:20px;background:rgba(255,255,255,.62)}
.contacto__otros .tarjeta__titulo{margin-bottom:50px;text-align:center}
.btn--contacto{padding:15px 30px;border-radius:15px;background:#fff;font:700 27px/1 Restora,serif;color:#111}
.btn--contacto:not(:last-child){margin-bottom:20px}
.btn--contacto.btn--email{padding:15px 50px}
.btn--contacto:hover,.btn--contacto:focus{background:#111;color:#fff}
/* Formulario: mismas clases que el de Elementor (las usan /v2/formulario.js y el envío) */
.elementor-form-fields-wrapper{display:flex;flex-wrap:wrap;margin:0 -5px -20px}
.elementor-field-group{display:flex;flex-wrap:wrap;align-items:center;width:100%;margin-bottom:20px;padding:0 5px}
.elementor-field-group.elementor-col-50{width:50%}
.elementor-field-group>label{display:block;width:100%;padding-bottom:10px;font-family:Restora,serif;font-size:24px;font-weight:700;color:#111;cursor:default}
.elementor-field-group .elementor-select-wrapper{position:relative;width:100%}
.elementor-field-type-recaptcha_v3{margin-bottom:0}
.elementor-field-type-recaptcha_v3 .elementor-field{width:100%}
.elementor-form input.elementor-field,.elementor-form textarea{width:100%;min-height:40px;margin:0;padding:11.25px;border:0;border-radius:15px;background:#fff;font:300 15px/21px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;color:#1f2124;outline:none}
.elementor-form textarea{padding:5px 14px;resize:vertical}
.elementor-form input.elementor-field:focus,.elementor-form textarea:focus{box-shadow:inset 0 0 0 1px rgba(0,0,0,.1)}
.elementor-form select{display:block;width:100%;height:50px;margin:0;padding:0 46px 0 14px;font-size:18px!important;border:0;border-radius:15px;background:#fff;font:inherit;color:#111;-webkit-appearance:none;appearance:none}
/* Mismo alto que tendrán al cargar /v2/formulario.js (sin salto) */
.elementor-form input.elementor-date-field{height:44px}
.e-form__buttons{justify-content:flex-end}
.elementor-form .elementor-button{display:inline-flex;align-items:flex-start;padding:15px 30px;border:0;border-radius:15px;background:#fff;font:700 20px/1 Restora,serif;color:#111;cursor:pointer;transition:color .3s,background-color .3s}
.elementor-form .elementor-button>span{display:flex;flex-direction:row-reverse}
.elementor-form .elementor-button-icon{display:flex;margin-left:10px}
.elementor-form .elementor-button:hover{background:#111;color:#fff}
.elementor-form .elementor-button[disabled]{opacity:.7;cursor:default}
.elementor-form-waiting{opacity:.45;transition:opacity .5s}
.v2-aviso-datos p{margin:6px 0 0;font-size:12.5px;line-height:1.5;font-weight:300;color:#6f6f6a}
.v2-aviso-datos a{color:#696953!important;font-weight:500;text-decoration:none}
.elementor-message{width:100%;margin:10px 0;font-size:1em;line-height:1}
.elementor-message::before{content:"";display:inline-block;width:1em;height:1em;margin-right:5px;vertical-align:middle;background:currentColor;-webkit-mask:var(--v3-ok) center/contain no-repeat;mask:var(--v3-ok) center/contain no-repeat}
.elementor-message-success{--v3-ok:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M173.9 439.4l-166.4-166.4c-10-10-10-26.2 0-36.2l36.2-36.2c10-10 26.2-10 36.2 0L192 312.7 432.1 72.6c10-10 26.2-10 36.2 0l36.2 36.2c10 10 10 26.2 0 36.2L210.1 439.4c-10 10-26.2 10-36.2 0z'/%3E%3C/svg%3E");color:#5cb85c}
.elementor-message-danger{--v3-ok:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Ccircle cx='256' cy='256' r='240'/%3E%3C/svg%3E");color:#d9534f}
/* Enviado: caja a todo el ancho del formulario con icono, titular y texto */
.elementor-message.v3-ok{display:flex;align-items:center;gap:16px;margin:22px 0 0;padding:18px 22px;border:1px solid rgba(134,135,66,.35);border-radius:15px;background:#f1f1e6;color:#111;line-height:1.4;flex-basis:100%;order:99}
.elementor-message.v3-ok::before{display:none}
.v3-ok__icono{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#868742}
.v3-ok__icono::before{content:"";width:20px;height:20px;background:#fff;-webkit-mask:var(--v3-ok) center/contain no-repeat;mask:var(--v3-ok) center/contain no-repeat}
.v3-ok__texto{display:flex;flex-direction:column;gap:3px}
.v3-ok__texto strong{font:700 20px/1.25 Restora,serif;color:#111}
.v3-ok__texto span{font-size:16px;color:#444}
/* Aparición: la caja sube con un fundido, el círculo crece con un pequeño rebote y el check se dibuja */
.elementor-message.v3-ok{animation:v3-ok-entra .55s cubic-bezier(.22,1,.36,1) both}
.v3-ok__icono{animation:v3-ok-icono .5s cubic-bezier(.34,1.56,.64,1) .12s both}
.v3-ok__icono::before{animation:v3-ok-check .35s ease-out .45s both}
.v3-ok__texto{animation:v3-ok-texto .5s ease .2s both}
@keyframes v3-ok-entra{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes v3-ok-icono{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}
@keyframes v3-ok-check{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}
@keyframes v3-ok-texto{from{opacity:0;transform:translateX(-6px)}to{opacity:1;transform:none}}
@media (max-width:767px){.elementor-message.v3-ok{gap:14px;padding:16px}.v3-ok__icono{width:38px;height:38px}.v3-ok__icono::before{width:17px;height:17px}.v3-ok__texto strong{font-size:17px}.v3-ok__texto span{font-size:15px}}
@media (prefers-reduced-motion:reduce){.elementor-message.v3-ok,.v3-ok__icono,.v3-ok__icono::before,.v3-ok__texto{animation:none}}
.elementor-help-inline{display:block;width:100%;margin-top:6px;font-size:.9em}
.elementor-help-inline::before{display:none}
@media (min-width:768px){
  .elementor-field-type-text,.elementor-field-type-tel,.elementor-field-type-email{flex-wrap:nowrap}
  /* Como en la v2: la etiqueta en una línea y el campo a su derecha (no alineados entre sí) */
  .elementor-field-type-text>label,.elementor-field-type-tel>label,.elementor-field-type-email>label{width:auto;margin-right:1.2em;white-space:nowrap}
  .elementor-field-type-text>input,.elementor-field-type-tel>input,.elementor-field-type-email>input{flex:1 1 100%;max-width:50%}
  /* Aviso de protección de datos a la izquierda del botón Enviar (como en la v2) */
  .elementor-form .elementor-field-type-submit{order:2;width:auto;margin-left:auto}
  .elementor-form .v2-aviso-datos{order:1;flex:1 1 0;width:auto;align-self:center;padding-right:24px}
  .elementor-form .v2-aviso-datos p{margin:0}
}
/* ---------- Pie ---------- */
.pie__arriba{padding:0 0 20px;border-bottom:1px solid #e2e1e7}
.pie__in{max-width:1140px;margin:0 auto;padding:10px}
.pie__logo{display:inline-block;margin-top:-50px;vertical-align:top}
.pie__logo img{width:250px}
.pie__cols{display:flex;margin-top:20px;padding-top:40px}
.pie__col{width:20%;padding:10px}
.pie__col h2,.pie__copy{font:700 24px/1.3 Restora,serif;color:#111}
.pie__col h2{margin-bottom:30px}
.pie__col ul{display:inline-block;vertical-align:top}
.pie__col--sitios ul{display:block}
.pie__col li:not(:last-child){padding-bottom:5px}
.pie__col li+li{margin-top:5px}
.pie__col a{display:block;font-family:Roboto,sans-serif;font-size:20px;font-style:italic;font-weight:300;color:#696953}
.pie__col a span{position:relative;transition:color .3s}
.pie__col a:hover span{color:#111}
.pie__col--sitios a:hover span{color:#696953}
.pie__col a span::before{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:#696953}
.pie__col a span:hover::before{width:100%}
.pie__col a span::after{content:"";position:absolute;right:-20px;top:4px;width:15.75px;height:18px;background:#696953;-webkit-mask:var(--v3-flecha) center/contain no-repeat;mask:var(--v3-flecha) center/contain no-repeat}
.pie__abajo{padding:10px 0 40px}
.pie__in--abajo{display:flex;align-items:center;padding:0}
.pie__copy{width:56.053%;padding:10px;font-weight:400}
.pie__copy b{font-weight:700}
.pie__sellos{display:flex;align-items:center;width:43.903%;padding:10px}
.pie__bv{width:39.953%;height:97px}
.pie__valoracion{width:60.047%;padding:10px 10px 10px 13px}
.v2-e-llena{stop-color:#fbbc04}
.v2-e-vacia{stop-color:#dadce0}
.v2-valoracion{display:inline-flex;align-items:center;gap:10px;white-space:nowrap;line-height:1;font-family:Roboto,system-ui,sans-serif;color:#696953!important}
.v2-valoracion__g{width:24px;height:24px;flex:none}
.v2-valoracion__nota{font-size:30px;font-weight:400;color:#696953;letter-spacing:-.5px}
.v2-valoracion__estrellas{width:112px;height:22px;flex:none}
.v2-valoracion__total{position:relative;margin-left:2px;font-size:20px;font-weight:300;font-style:italic;color:#696953}
.v2-valoracion__total::after{content:"";display:inline-block;width:15.75px;height:18px;margin-left:8px;vertical-align:-3px;background:#696953;-webkit-mask:var(--v3-flecha) center/contain no-repeat;mask:var(--v3-flecha) center/contain no-repeat}
.v2-valoracion__total::before{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:#696953}
.v2-valoracion:hover .v2-valoracion__total::before{width:100%}
/* ---------- Ventana "Opciones de privacidad" (Cookie Law Info con el diseño de la v2) ---------- */
.cli-modal{position:fixed;inset:0;z-index:99999;overflow:hidden;outline:0}
.cli-modal.cli-show{display:block}
body.cli-modal-open .cli-modal{overflow-x:hidden;overflow-y:auto}
.cli-modal-dialog{position:relative;display:flex;align-items:center;width:auto;max-width:640px;min-height:calc(100% - 3.5rem);margin:1.75rem auto;pointer-events:none;font-size:15px;font-weight:400;line-height:1.5;color:#212529;text-align:left}
.cli-modal.cli-blowup .cli-modal-dialog{animation:v3-crece .5s cubic-bezier(.165,.84,.44,1) forwards}
@keyframes v3-crece{0%{transform:scale(0)}100%{transform:scale(1)}}
.cli-modal .cli-modal-content{position:relative;display:flex;flex-direction:column;width:100%;padding:20px;border-radius:20px;background:#fff;pointer-events:auto;font-family:Roboto,system-ui,sans-serif}
.cli-modal-close{position:absolute;top:0;right:0;z-index:1;width:40px;height:40px;padding:10px;border:0;border-radius:50%;background:transparent;cursor:pointer}
.cli-modal-close svg{width:20px;height:20px;fill:#1d1d1b}
.wt-cli-sr-only{display:none}
.cli-container-fluid{padding:0 15px}
.cli-row{display:flex;flex-wrap:wrap;max-height:500px;overflow-y:auto;margin:0 -15px}
.cli-col-12{width:100%}
.cli-privacy-overview h4{margin:10px 0 8px;font:700 22px/1.25 Restora,Georgia,"Times New Roman",serif;color:#1d1d1b}
.cli-privacy-content{max-height:60px;overflow:hidden;transition:max-height .15s ease-out}
.cli-collapsed .cli-privacy-content{max-height:none}
.cli-privacy-content-text{font-size:14.5px;line-height:1.55;font-weight:300;color:#3a3a36}
a.cli-privacy-readmore{display:inline-block;margin-top:12px;font-size:12px;font-weight:500;color:#696953;cursor:pointer}
a.cli-privacy-readmore::before{content:attr(data-readmore-text)}
.cli-collapsed a.cli-privacy-readmore::before{content:attr(data-readless-text)}
a.cli-privacy-readmore:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.13em}
.cli-tab-section-container{padding-top:12px}
.cli-tab-section{margin-top:5px}
.cli-tab-header{display:flex;justify-content:space-between;align-items:center;padding:4px 6px;border-radius:14px;background:#f7f7f0;cursor:pointer}
.cli-tab-header:hover{background:#efefe6}
.cli-tab-header a.cli-nav-link{position:relative;display:flex;align-items:center;font:500 15px Roboto,system-ui,sans-serif;color:#1d1d1b;text-transform:capitalize;cursor:pointer}
.cli-tab-header a.cli-nav-link::before{content:"";width:7px;height:7px;margin-right:10px;border-right:1px solid #696953;border-bottom:1px solid #696953;transform:rotate(-45deg);transition:transform .2s ease-in-out}
.cli-tab-header.cli-tab-active .cli-nav-link::before{transform:rotate(45deg)}
.wt-cli-necessary-checkbox{display:none!important}
.cli-necessary-caption{font:400 13px Roboto,sans-serif;color:#6f6f6a}
.cli-switch{position:relative;display:inline-block;height:18px;padding-left:38px;font-size:14px;line-height:18px}
.cli-switch input[type=checkbox]{display:none}
.cli-switch .cli-slider{position:absolute;top:0;left:0;width:38px;height:20px;border-radius:34px;background:#e3e1e8;font-size:0;cursor:pointer;transition:.4s}
.cli-switch .cli-slider::before{content:"";position:absolute;left:3px;bottom:2px;width:15px;height:15px;border-radius:50%;background:#fff;transition:.4s}
.cli-switch .cli-slider::after{content:attr(data-cli-disable);position:absolute;right:50px;min-width:80px;font:400 13px Roboto,sans-serif;color:#6f6f6a;text-align:right}
.cli-switch input:checked+.cli-slider{background:#868742}
.cli-switch input:checked+.cli-slider::before{transform:translateX(17px)}
.cli-switch input:checked+.cli-slider::after{content:attr(data-cli-enable)}
.cli-tab-content{display:none;width:100%;padding:10px 20px 5px;background:#fff}
.wt-cli-cookie-description{font-size:14.5px;line-height:1.55;font-weight:300;color:#3a3a36}
table.cookielawinfo-winter{width:99%;margin:10px 0 20px 5px;border-collapse:collapse;border-radius:12px;overflow:hidden;background:#f3f5f7}
table.cookielawinfo-winter thead th{padding:10px 12px;border-bottom:1px solid #e7e6dc;background:#f7f7f0;font:600 13.5px Roboto,sans-serif;color:#1d1d1b;text-align:left}
table.cookielawinfo-winter tbody td{padding:10px 12px;border-bottom:1px solid #e7e6dc;background:#fff;font:300 13.5px/1.5 Roboto,sans-serif;color:#3a3a36;text-align:left}
.cookielawinfo-column-1{width:25%}
.cookielawinfo-column-3{width:15%}
.cookielawinfo-column-4{width:50%}
.cli-modal-footer{position:relative}
.cli-tab-footer{width:100%;padding:20px 0 0;text-align:right}
#cliSettingsPopup .wt-cli-privacy-accept-btn{display:inline-block;padding:15px 26px;border:0;border-radius:15px;background:#6e6f36;font:500 14.5px Roboto,sans-serif;color:#fff;cursor:pointer;transition:background-color .15s}
#cliSettingsPopup .wt-cli-privacy-accept-btn:hover{background:#6e6f36}
@media (max-width:575px){
  .cli-modal-dialog{margin:.5rem;min-height:calc(100% - 1rem)}
}
@media (max-width:800px){
  table.cookielawinfo-row-cat-table td,table.cookielawinfo-row-cat-table th{width:23%;word-wrap:break-word}
  table.cookielawinfo-row-cat-table .cookielawinfo-column-4{width:45%}
}
/* ---------- Botón de volver arriba ---------- */
.arriba{position:fixed;right:20px;bottom:20px;z-index:99;display:grid;place-items:center;width:48px;height:48px;padding:0;border:1px solid #e7e6dc;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(29,29,27,.06),0 12px 28px -12px rgba(29,29,27,.35);cursor:pointer}
.arriba:hover{background:#f7f7f0}
.arriba svg{width:18px;height:18px;fill:#696953;transform:rotate(180deg)}
/* ---------- Visor de fotos del carrusel ----------
   El propio <dialog> pinta el velo (cálido, translúcido y con desenfoque) y se funde al abrir y cerrar.
   Dos capas (.visor__capa) en la misma celda de la rejilla: la foto no se mueve, sólo se funde (al abrir, al
   cerrar y en fundido cruzado al pasar); el pie sube apenas unos píxeles con un leve retraso.
   v3.js sólo cambia clases cuando la foto ya está decodificada. */
.visor{position:fixed;inset:0;width:auto;max-width:none;height:auto;max-height:none;margin:0;padding:0;border:0;overflow:hidden;background:rgba(22,21,16,.62);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);color:#fff;opacity:0;transition:opacity .45s cubic-bezier(.22,.61,.36,1);touch-action:pinch-zoom;-webkit-tap-highlight-color:transparent}
.visor[open]{display:block}
.visor--visible{opacity:1}
.visor[open]:not(.visor--visible){transition-duration:.42s;transition-timing-function:cubic-bezier(.4,0,.6,1)}
/* al cerrar, el velo acompaña a la foto */
.visor::backdrop{background:transparent}
.visor__escena{position:absolute;inset:0;display:grid;place-items:center;padding:72px 104px 40px}
.visor__capa{position:relative;grid-area:1/1;display:flex;flex-direction:column;align-items:center;gap:16px;min-width:0;max-width:100%;margin:0;opacity:0;transition:opacity .5s cubic-bezier(.22,.61,.36,1),transform .5s cubic-bezier(.22,.61,.36,1);pointer-events:none;will-change:opacity}
.visor__capa--activa{opacity:1;pointer-events:auto}
.visor__capa--sale{transition-duration:.38s;transition-timing-function:cubic-bezier(.4,0,.6,1)}
.visor__capa--quieta,.visor__capa--quieta .visor__pie,.visor--arrastre .visor__capa{transition:none}
.visor__img{display:block;width:auto;height:auto;max-width:100%;max-height:calc(100vh - 112px - var(--pie-alto,48px));max-height:calc(100dvh - 112px - var(--pie-alto,48px));border-radius:20px;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}
/* Texto de la foto: panel oscuro translúcido y redondeado (como en la v2), debajo de la foto o, si no
   cabe, sobre su parte de abajo (.visor__capa--sobre, lo decide v3.js). El botón lo deja en "Ver texto". */
.visor__pie{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;width:max-content;max-width:min(680px,calc(100vw - 32px));padding:14px 46px 16px 22px;border-radius:18px;background:rgba(22,21,16,.74);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-align:center;opacity:0;transform:translate3d(0,10px,0);transition:opacity .45s ease .15s,transform .6s cubic-bezier(.22,.61,.36,1) .15s}
.visor__capa--activa .visor__pie{opacity:1;transform:none}
.visor__capa--sale .visor__pie{transform:none;transition-delay:0s}
.visor__titulo{font:italic 300 22px/1.2 Restora,serif;letter-spacing:.02em;color:rgba(255,255,255,.92)}
.visor__desc{max-width:62ch;margin-top:4px;font:300 15px/1.5 Roboto,sans-serif;color:rgba(255,255,255,.86)}
.visor__ocultar{position:absolute;top:8px;right:8px;display:flex;align-items:center;gap:6px;height:30px;min-width:30px;padding:0 8px;border:0;border-radius:15px;background:transparent;color:#fff;font:400 13px/1 Roboto,sans-serif;cursor:pointer;opacity:.8;transition:background-color .2s,opacity .2s}
.visor__ocultar:hover,.visor__ocultar:focus-visible{opacity:1;background:rgba(255,255,255,.12)}
.visor__ocultar svg{width:14px;height:14px;stroke-width:2;transition:transform .2s}
.visor--sin-texto .visor__pie{padding:0}
.visor--sin-texto .visor__titulo,.visor--sin-texto .visor__desc{display:none}
.visor--sin-texto .visor__ocultar{position:static;height:36px;padding:0 14px;opacity:1}
.visor--sin-texto .visor__ocultar svg{transform:rotate(180deg)}
/* Sin texto visible el botón es un círculo perfecto con la flecha centrada */
.visor:not(.visor--sin-texto) .visor__ocultar{justify-content:center;width:30px;padding:0;gap:0;border-radius:50%}
.visor__ocultar span:empty{display:none}
.visor__capa--sobre .visor__pie{position:absolute;left:0;right:0;bottom:14px;margin:0 auto;max-width:min(680px,calc(100% - 24px));max-height:45%;overflow-y:auto;overscroll-behavior:contain}
.visor__pie--corto{justify-content:flex-start;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.3) transparent}
/* al salir, el pie sólo se funde */
.visor__barra{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:14px 16px 0 32px;pointer-events:none}
.visor__barra>*{pointer-events:auto}
.visor__contador{font:300 13px/1 Roboto,sans-serif;letter-spacing:.24em;font-variant-numeric:tabular-nums;color:rgba(255,255,255,.7)}
.visor__cerrar,.visor__nav{display:flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:50%;background:transparent;color:#fff;cursor:pointer;opacity:.72;transition:opacity .3s ease,background-color .3s ease}
.visor__cerrar:focus-visible,.visor__nav:focus-visible{opacity:1;background:rgba(255,255,255,.08);outline:1px solid rgba(255,255,255,.55);outline-offset:2px}
.visor svg{fill:none;stroke:currentColor;stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round}
.visor__cerrar{width:52px;height:52px}
.visor__cerrar svg{width:22px;height:22px}
.visor__nav{position:absolute;top:50%;width:64px;height:64px;margin-top:-32px}
.visor__nav svg{width:30px;height:30px;transition:transform .35s cubic-bezier(.22,.61,.36,1)}
.visor__nav--ant{left:20px}
.visor__nav--sig{right:20px}
@media (hover:hover){
  .visor__cerrar:hover,.visor__nav:hover{opacity:1;background:rgba(255,255,255,.08)}
  .visor__nav--ant:hover svg{transform:translateX(-3px)}
  .visor__nav--sig:hover svg{transform:translateX(3px)}
}
.visor__carga{position:absolute;top:50%;left:50%;width:30px;height:30px;margin:-15px 0 0 -15px;border:1px solid rgba(255,255,255,.2);border-top-color:rgba(255,255,255,.85);border-radius:50%;opacity:0;transition:opacity .3s ease;animation:visor-gira 1s linear infinite;pointer-events:none}
.visor--cargando .visor__carga{opacity:1}
@keyframes visor-gira{to{transform:rotate(360deg)}}
html.visor-abierto{overflow:hidden;scrollbar-gutter:stable}
/* sin scroll detrás y sin que la página salte */
@media (prefers-reduced-motion:reduce){
  .visor,.visor[open]:not(.visor--visible),.visor__capa,.visor__capa--sale{transition-duration:.15s}
  .visor__pie{transform:none;transition-delay:0s}
  .visor__carga{animation-duration:2.4s}
}
/* ---------- Tableta ---------- */
@media (max-width:1024px){
  .contacto{margin-bottom:70px;padding:200px 0 100px;background-size:40% auto}
  .contacto__in{margin-top:0;padding:10px 25px}
  .contacto__titulo{font-size:36px}
  .contacto__intro{margin:0 0 calc(1.6em + 20px)}
  .contacto__otros{margin:0 0 0 40px;width:calc(42% - 40px)}
  .btn--contacto{font-size:22px}
  .elementor-field-group>label{font-size:16px}
  .elementor-form .elementor-button{font-size:18px}
  .pie__in{padding:10px 25px}
  .pie__col h2{font-size:22px}
  .pie__col a{font-size:16px}
  .pie__abajo{padding:10px 0 20px}
  .pie__copy{font-size:20px}
}
/* ---------- Móvil ---------- */
@media (max-width:767px){
  .contacto{margin-bottom:0;padding:150px 0 100px;background-size:60% auto}
  .forma--contacto-arriba svg{width:calc(100% + 1.3px);height:50px}
  .forma--contacto-abajo svg{width:calc(200% + 1.3px);height:100px}
  .contacto__titulo{font-size:30px}
  .contacto__cols{display:block;padding:0}
  .contacto__form{width:100%;padding:22px 16px}
  .contacto__otros{width:100%;margin:40px 0 0;padding:20px 0}
  .contacto__otros .tarjeta__titulo{margin-bottom:30px}
  .btn--contacto{font-size:20px}
  .btn--contacto.btn--email{padding:15px 45px}
  .btn--contacto:last-child{margin-bottom:10px}
  .elementor-field-group,.elementor-field-group.elementor-col-50{width:100%}
  .elementor-field-group>label{font-size:14px}
  .elementor-form .elementor-button{font-size:16px}
  .pie{margin-top:40px}
  .pie__arriba{margin-bottom:20px}
  .pie__in{padding:0 15px}
  .pie__logo img{width:200px}
  .pie__cols{display:grid;grid-template-columns:1fr 1fr;column-gap:20px;margin-top:20px;padding:20px 25px 0}
  .pie__col{width:auto;padding:0;margin-bottom:30px}
  .pie__col--contacto{margin-bottom:10px}
  .pie__col--legal{margin-left:20px}
  .pie__col--contacto{grid-column:1/3}
  .pie__col h2{font-size:20px}
  .pie__col a span::after{right:-22px;width:13.1px;height:15px}
  /* "Configurar cookies" y "Condiciones de uso" ocupan dos líneas: la flecha, a su derecha (como en la v2) y no encima */
  .pie__col--legal a span{display:inline-block;max-width:calc(100% - 20px)}
  .pie__abajo{padding:10px 0 20px}
  .pie__in--abajo{display:block;padding:0 25px}
  .pie__copy{width:100%;padding:10px 0;text-align:center;font-size:16px}
  .pie__sellos{width:100%;padding:10px 0}
  .pie__bv{width:40%;height:67px}
  .pie__valoracion{width:60%}
  /* centrado sobre el último botón de la barra móvil (barra 10 px + relleno 8 px + medio botón 24 px) */
  .arriba{right:18px;bottom:92px}
  .v3-sin-barra .arriba{bottom:20px}
  .pie__sellos{display:flex;flex-direction:column;align-items:center;gap:14px}
  .pie__bv,.pie__valoracion{width:auto}
  .visor__escena{padding:64px 12px 96px}
  .visor__img{max-height:calc(100vh - 160px - var(--pie-alto,40px));max-height:calc(100dvh - 160px - var(--pie-alto,40px))}
  .visor__titulo{font-size:19px}
  .visor__desc{font-size:14px}
  .visor__pie{padding:12px 44px 14px 18px}
  .visor__barra{padding:8px 6px 0 20px}
  .visor__nav{top:auto;bottom:max(16px,env(safe-area-inset-bottom));width:56px;height:56px;margin-top:0}
  .visor__nav--ant{left:8px}
  .visor__nav--sig{right:8px}
}
/* La insignia de reCAPTCHA tapaba el botón de subir: oculta, con el aviso junto al formulario (lo permite Google) */
.grecaptcha-badge{visibility:hidden!important}

/* Lo que se escribe en el formulario, con la misma letra que los desplegables (= v2.css) */
.elementor-form .elementor-field-textual:not(select),.elementor-form .v2f-fecha__campo{font-family:Roboto,sans-serif!important;font-size:18px!important;font-weight:300!important;color:#111!important}
/* Con 18 px, la v2 (Astra) deja los campos en 52 px: relleno .75em y línea 1,4 */
.elementor-form input.elementor-field-textual,.elementor-form .v2f-fecha__campo{padding-top:13.5px;padding-bottom:13.5px;line-height:25.2px}
.elementor-form textarea.elementor-field-textual{line-height:25.2px}
/* Al redimensionarlo a mano: nunca más bajo que los demás campos (13,5 + 25,2 + 13,5 px) y con un tope razonable */
textarea.elementor-field-textual{min-height:52.2px;max-height:360px}
.elementor-form .elementor-field-textual::placeholder,.elementor-form .v2f-fecha__campo::placeholder{font-size:16px;color:#8a8a80}

/* Móviles estrechos: la barra tiene menos margen (8 px + 6 px + medio botón de 46 px) */
@media (max-width:380px){.arriba{right:13px}}
@media (max-width:767px){
  /* Pie en el móvil: la flecha va detrás de la última palabra (si el enlace ocupa dos líneas no se queda colgando) */
  .pie__col a span::after{position:static;display:inline-block;margin-left:8px;vertical-align:-2px}
  /* Sin el hueco del sello (vacío en el móvil) y con la valoración entera, por encima del botón de subir */
  .pie__bv{display:none}
  .pie__sellos{padding-bottom:64px}
  .v2-valoracion{gap:8px}
  .v2-valoracion__nota{font-size:26px}
  .v2-valoracion__estrellas{width:96px;height:19px}
  .v2-valoracion__total{font-size:17px}
}

/* Interior v3 — CSS diferido común a las páginas que no son la portada. */
/* En el móvil el pie empieza justo bajo la curva del formulario (en la portada lleva 40 px más) */
@media (max-width:767px){
  .v3-interior .pie{margin-top:22px}
}

/* Blog v3 — piezas comunes que no hacen falta para la primera pantalla (en /v3/blog-*.css, diferido). */
/* Botón "Más" de las listas de entradas (blog.js añade las siguientes tarjetas) */
.bl-mas{margin-top:90px;text-align:center}
.bl-mas__boton{display:inline-flex;align-items:flex-start;padding:15px 30px;border:0;border-radius:10px;background:#d3d4bc;font:700 27px/21.6px Restora,serif;color:#111;cursor:pointer}
.bl-mas__boton .i{height:27px;font-size:27px;margin-left:10px}
.bl-mas__boton--icono-antes .i{order:-1;margin:0 10px 0 0}
.bl-mas__boton[aria-busy=true]{opacity:.6;cursor:progress}
.bl-tarjeta--nueva{animation:bl-aparece .4s ease}
@keyframes bl-aparece{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.bl-tarjeta--nueva{animation:none}}
/* "¿Necesitas que te ayudemos?": fondo con la curva (bg2.png) y los tres botones de contacto.
   Se mete 150 px bajo el pie (100 en tableta y móvil), como en la v2. */
.bl-ayuda{display:flex;align-items:center;min-height:800px;margin-bottom:-150px;background:url("/_opt/v3/img/u/bg2-f95d18-1920-1920.30858af0.webp") 50% 50%/cover no-repeat;background-image:image-set(url(/v3/img/u/bg2-f95d18-1920.avif) type("image/avif"),url("/_opt/v3/img/u/bg2-f95d18-1920-1920.30858af0.webp") type("image/webp"))}
.bl-ayuda__in{width:100%;max-width:1140px;margin:-60px auto 0;padding:10px}
.bl-ayuda__titulo{margin-bottom:20px;font:700 52px/1.3 Restora,serif;color:#111}
.bl-ayuda__texto{margin:0 30% 20px 0;padding-bottom:40px}
.bl-ayuda__botones{display:flex;flex-wrap:wrap;align-items:flex-start;gap:0 40px}
.bl-ayuda__boton{display:inline-flex;align-items:flex-start;padding:15px 30px;border-radius:15px;background:#fff;font:700 27px/27px Restora,serif;color:#111;transition:color .3s,background-color .3s}
.bl-ayuda__boton--ancho{padding:15px 50px}
.bl-ayuda__boton .i{margin-left:10px}
.bl-ayuda__boton:hover,.bl-ayuda__boton:focus{background:#111;color:#fff}
@media (max-width:1024px){
  .bl-mas{margin-top:50px}
  .bl-mas__boton{font-size:22px;line-height:19.2px}
  .bl-mas__boton .i{height:22px;font-size:22px}
  .bl-ayuda{min-height:500px;margin-bottom:-100px}
  .bl-ayuda__in{margin-top:0;padding:10px 25px}
  .bl-ayuda__titulo{font-size:42px}
  .bl-ayuda__texto{margin-right:0;padding-bottom:0}
  .bl-ayuda__boton{font-size:22px;line-height:22px}
}
@media (max-width:767px){
  .bl-mas{margin-top:40px}
  .bl-mas__boton{font-size:18px}
  .bl-mas__boton .i{height:18px;font-size:18px}
  .bl-ayuda{min-height:700px}
  .bl-ayuda__titulo{font-size:38px;text-align:center}
  .bl-ayuda__texto{text-align:center}
  .bl-ayuda__botones{flex-direction:column;align-items:center;gap:10px}
  .bl-ayuda__boton{font-size:20px;line-height:20px}
  .bl-ayuda__boton--ancho{padding:15px 45px}
  /* El pie empieza bajo la curva como en la v2 (en los pueblos lleva 22 px, tras el formulario) */
  .pagina-blog .pie{margin-top:20px}
}
