/* 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}
}

/* Componentes v3 — lo que no hace falta para la primera pantalla. */
/* Flecha de Font Awesome (long-arrow-alt-right) como máscara, para los "Leer más ➝" */
.v2-resena__mas::after,.v2-menu__pedir::after{content:"";display:inline-block;width:14px;height:16px;margin-left:8px;vertical-align:-2px;background:currentColor;-webkit-mask:var(--v3-flecha) center/contain no-repeat;mask:var(--v3-flecha) center/contain no-repeat}

/* ---------- Reseñas de Google: tarjetas como el carrusel de testimonios que había (v2.css) ---------- */
.cc--resenas{--w:min(380px,84vw);padding-bottom:60px;font-family:Roboto,system-ui,sans-serif;color:#111}
.cc--resenas .cc__ventana{padding:20px 0 40px}
.cc--resenas .cc__pista{align-items:flex-start;height:var(--alto,auto);cursor:grab}
/* Al abrir una reseña la sección no crece: el carrusel mantiene la altura de las tarjetas cerradas y la
   abierta se despliega por encima de lo que hay debajo (recorte sólo en horizontal) */
.cc--resenas .cc__ventana{overflow:hidden;overflow:clip;overflow-y:visible}
.pb-resenas,.ex-resenas,.sv-resenas{position:relative;z-index:4}
.cc--resenas .v2-resena.v2-abierta{position:relative;z-index:2}
.cc--resenas .v2-resena{min-height:var(--alto,auto)}
.v2-resena{display:flex;flex-direction:column;gap:14px;padding:26px 26px 24px;border-radius:30px;background:#fff;box-shadow:0 10px 40px -10px rgba(0,0,0,.18)}
.v2-resena__cab{display:flex;align-items:center;gap:12px;color:#111}
.v2-resena__cab:hover{color:#111}
.v2-resena__foto{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;object-fit:cover;color:#fff;font:600 17px Roboto,sans-serif}
.v2-resena__quien{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.v2-resena__nombre{overflow:hidden;font:700 19px/1.2 Restora,Georgia,serif;white-space:nowrap;text-overflow:ellipsis}
.v2-resena__cab:hover .v2-resena__nombre{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.13em;text-decoration-skip-ink:none;text-decoration-color:#696953}
.v2-resena__cuando{font-size:13px;color:#8a8a84}
.v2-resena__g{flex:none;align-self:flex-start;width:20px;height:20px;margin-top:2px}
.v2-resena__estrellas{display:block;width:104px;height:20px}
.v2-resena__texto{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden;margin:0 0 1.6em;font-size:17px;font-weight:300;line-height:1.55;color:#111}
.v2-resena.v2-abierta .v2-resena__texto{-webkit-line-clamp:unset}
/* Fotos de la reseña: miniaturas a la izquierda del "Leer más", en el hueco que ya tenía la tarjeta
   (sin agrandarla); al abrir la reseña se ven más grandes. Se amplían en el visor (data-v3-visor). */
.v2-resena__pie{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 12px;margin-top:-1.4em}
.v2-resena__pie .v2-resena__mas{margin-left:auto}
.v2-resena__fotos{display:flex;gap:6px}
.v2-resena__mini{display:block;flex:none;width:40px;height:40px;overflow:hidden;border-radius:10px;box-shadow:0 0 0 1px rgba(0,0,0,.06)}
.v2-resena__mini img{display:block;width:100%;height:100%;object-fit:cover}
.v2-resena__mini:focus-visible{outline:2px solid #868742;outline-offset:2px}
/* Abierta: las fotos en tres columnas a todo el ancho (con 2 fotos, mismo tamaño), algo más cerca del
   texto y con más aire antes del "Leer menos" */
.v2-resena.v2-abierta .v2-resena__texto{margin-bottom:.15em}
.v2-resena.v2-abierta .v2-resena__pie{margin-top:0;row-gap:26px}
.v2-resena.v2-abierta .v2-resena__fotos{display:grid;grid-template-columns:repeat(3,1fr);flex-basis:100%;gap:8px}
.v2-resena.v2-abierta .v2-resena__mini{width:auto;height:auto;aspect-ratio:1;border-radius:14px}
.v2-resena__mas{position:relative;align-self:flex-end;margin-top:2px;padding:0;border:0;background:none;font:italic 700 18px/1 Restora,Georgia,serif;color:#696953;cursor:pointer}
.v2-resena__mas::before,.v2-menu__pedir::before{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:#696953}
.v2-resena__mas:hover::before,.v2-resena__mas:focus-visible::before{width:100%}
.cc--resenas .cc__flecha{top:calc(50% - 40px - 22px);width:44px;height:44px;margin-top:0;color:#1d1d1b;opacity:.75;transition:opacity .2s}
.cc--resenas .cc__flecha:hover,.cc--resenas .cc__flecha:focus-visible{opacity:1}
.cc--resenas .cc__flecha--ant{left:16px}
.cc--resenas .cc__flecha--sig{right:16px}
@media (max-width:767px){
  .cc--resenas{--w:300px;--gap:14px}
  .cc--resenas .cc__flecha{display:none}
  .v2-resena{padding:22px 20px 20px}
  .v2-resena__texto{font-size:16px}
}

/* ---------- Menús sugeridos (pueblos): mismas tarjetas que las reseñas ---------- */
.v2-menus{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:26px 0 6px}
.v2-menu{display:flex;flex-direction:column;gap:10px;padding:26px 26px 24px;border-radius:30px;background:#fff;box-shadow:0 10px 40px -10px rgba(0,0,0,.18)}
.v2-menu__titulo{margin:0;font:700 22px/1.2 Restora,Georgia,serif;color:#1d1d1b}
.pb-cuerpo .v2-menu__desc{margin:0;font-size:16px;line-height:1.5}
.v2-menu__platos{flex:1 1 auto;margin:4px 0 8px;padding:0;list-style:none}
.v2-menu__platos li{position:relative;padding:7px 0 7px 18px;border-top:1px solid #ecebe3;font-size:16px;line-height:1.35}
.v2-menu__platos li::before{content:"";position:absolute;left:2px;top:15px;width:6px;height:6px;border-radius:50%;background:#868742}
.v2-menu__platos li.v2-menu__con-foto{display:flex;align-items:center;gap:12px;padding:7px 0}
.v2-menu__platos li.v2-menu__con-foto::before{display:none}
.v2-menu__foto{flex:none;display:block;width:56px;height:56px;overflow:hidden;border-radius:14px;line-height:0;cursor:zoom-in}
.v2-menu__foto img{width:100%;height:100%;object-fit:cover;border-radius:14px}
.pb-cuerpo a.v2-menu__pedir{position:relative;align-self:flex-end;font:italic 700 18px/1 Restora,Georgia,serif;color:#696953;white-space:nowrap;text-decoration:none}
.v2-menu__pedir:hover::before,.v2-menu__pedir:focus-visible::before{width:100%}
@media (min-width:1025px){.v2-menus{width:min(1080px,calc(100vw - 80px));margin-left:calc(50% - min(540px,50vw - 40px))}}
/* En tres columnas, título, descripción, lista y enlace de las tres tarjetas en las mismas filas (subgrid):
   un título de dos líneas ya no baja sólo la lista de su tarjeta */
@supports (grid-template-rows:subgrid){@media (min-width:1025px){
  .v2-menus{row-gap:0}
  .v2-menu{display:grid;grid-row:span 4;grid-template-rows:subgrid;row-gap:10px}
  .v2-menu__pedir{justify-self:end;align-self:end}
}}
@media (max-width:1024px){.v2-menus{grid-template-columns:1fr;max-width:560px}}
@media (max-width:767px){.v2-menu{padding:22px 20px 20px}}

/* Portada v3 — CSS diferido propio de la portada. */
/* ---------- Cita ---------- */
.cita{padding:50px 0 100px}
.cita__in{display:flex;max-width:1140px;margin:0 auto;padding:10px}
.cita__icono{width:12%;padding:10px}
.cita__icono img{width:50%;margin:0 auto}
.cita__texto{width:88%;padding:10px;text-align:center;font:italic 500 36px/1.4em Restora,serif;color:#111}
/* ---------- Carrusel de fotos (sin Swiper: scroll-snap + autoplay en v3.js) ---------- */
.galeria__in{max-width:1140px;margin:0 auto;padding:10px}
.carrusel{--n:5;display:flex;align-items:center;gap:15px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.carrusel::-webkit-scrollbar{display:none}
.carrusel:focus-visible{outline:2px solid #868742;outline-offset:4px}
.carrusel__foto{flex:0 0 calc((100% - (var(--n) - 1) * 15px) / var(--n));scroll-snap-align:start}
.carrusel__foto img{width:100%;border-radius:20px}
.carrusel.v3-arrastrando{scroll-snap-type:none;cursor:grabbing;user-select:none}
/* ---------- Catering en Madrid ---------- */
.madrid{padding:0 0 80px}
.madrid__in{display:flex;max-width:1140px;margin:0 auto}
.madrid__foto{width:40%;margin-left:20%;padding:10px}
.madrid__foto img{width:100%;border-radius:20px}
.madrid__texto{width:39.664%;padding:10px;margin-top:60px}
.madrid__parrafo{margin-bottom:20px}
.madrid__texto p{margin-bottom:1.6em}
/* ---------- Tarjetas de servicios ---------- */
.servicio--2,.servicio--3{padding-top:20px}
.servicio--3{padding-bottom:80px}
.servicio__tarjeta{display:flex;max-width:1120px;margin:10px auto;padding:30px;border-radius:20px;background:#fff;box-shadow:0 10px 40px -10px rgba(0,0,0,.18)}
.servicio__texto,.servicio__foto{width:50%;padding:10px}
.servicio__texto{display:flex;flex-direction:column;justify-content:flex-end}
.servicio__tarjeta--foto-izq .servicio__foto{width:45%}
.servicio__tarjeta--foto-izq .servicio__texto{width:calc(55% - 20px);margin-left:20px}
.servicio__foto img{width:100%}
.servicio__texto strong{font-weight:500;color:#111}
.servicio__cab{display:flex;flex-wrap:wrap;align-items:flex-end}
.servicio__cab .tarjeta__titulo{margin:0;padding-right:30px}
.mas--descubrir{margin-bottom:-3px}
.servicio__texto p{margin:30px 0 calc(1.6em + 20px)}
.etiquetas{display:flex;flex-wrap:wrap;gap:0 20px}
.etiqueta{display:inline-flex;align-items:flex-start;padding:15px 30px;border-radius:20px;background:#868743;font:italic 400 20px/1 Restora,serif;color:#fff}
/* Píldoras decorativas: el texto se pinta con CSS (mismo verde de siempre); el real queda para lectores y buscadores */
.etiqueta::before{content:attr(data-texto)}
.etiqueta .i{margin-left:10px}
/* ---------- Reseñas de Google (mismo carrusel que las páginas de municipio) ---------- */
.ini-resenas-cab{padding:0 0 10px}
.ini-resenas-cab__in{max-width:700px;margin:0 auto;padding:10px}
.ini-estrellas{display:flex;gap:10px;height:22px;margin-bottom:20px;font-size:30px;line-height:22px;color:#696953}
.ini-estrellas .i{width:1em!important;height:1em;margin-top:-4px}
.ini-resenas-cab__titulo{margin-bottom:20px;font:700 44px/1.3 Restora,serif;color:#111}
.ini-resenas-cab p{margin-bottom:1.6em}
.ini-resenas{position:relative;z-index:4;margin-bottom:-100px;padding:30px 0 0}
/* ---------- Tableta ---------- */
@media (max-width:1024px){
  .cita{padding:0 0 40px}
  .cita__in{padding:10px 25px}
  .cita__icono img{width:80%}
  .cita__texto{font-size:20px}
  .galeria__in{padding:10px 25px}
  .carrusel{--n:4}
  .madrid{padding:0 0 40px}
  .madrid__in{padding:0 15px}
  .madrid__texto{margin-top:20px}
  .servicio__tarjeta{flex-direction:column;margin:10px 25px;padding:20px 10px}
  .servicio__tarjeta--texto-izq{flex-direction:column-reverse}
  .servicio__texto,.servicio__foto,.servicio__tarjeta--foto-izq .servicio__foto,.servicio__tarjeta--foto-izq .servicio__texto{width:100%;margin-left:0}
  .mas--descubrir{margin-left:20px}
  .etiqueta{font-size:18px}
  .servicio--3{padding-bottom:40px}
  .ini-resenas-cab__in{padding:10px 25px}
  .ini-estrellas{font-size:22px}
  .ini-resenas-cab__titulo{font-size:36px}
  .ini-resenas{margin-bottom:-60px;padding:20px 0 0}
}
/* ---------- Móvil ---------- */
@media (max-width:767px){
  .cita__in{display:block}
  .cita__icono,.cita__texto{width:100%}
  .cita__icono img{width:39px}
  .cita__texto{padding:10px 25px;font-size:16px}
  .carrusel{--n:2}
  .madrid__in{display:block;padding:0 15px}
  .madrid__foto,.madrid__texto{width:100%;margin-left:0}
  .madrid__texto{margin-top:0}
  .servicio__tarjeta{margin:10px 25px;padding:20px 15px}
  .servicio__tarjeta--foto-izq{flex-direction:column}
  .servicio__cab .tarjeta__titulo{width:auto}
  .mas--descubrir{margin:20px 0 -3px}
  .servicio__texto p{margin:15px 0 calc(1.6em + 20px)}
  .etiquetas{flex-direction:column;align-items:flex-start;gap:10px}
  .etiqueta{padding:10px;font-size:16px}
  .servicio--3 .mas--descubrir{margin-bottom:0}
  .ini-resenas-cab__in{padding:0 30px}
  .ini-estrellas{height:19px;font-size:18px;line-height:19px}
  .ini-estrellas .i{margin-top:-1px}
  .ini-resenas-cab__titulo{font-size:30px}
  .ini-resenas{z-index:9;margin-bottom:-150px;padding:10px 0 0}
}
