/* ============================================================================ 
   Unfrontier — Consolidated & cleaned stylesheet
   (versión consolidada, duplicados eliminados, comentarios problemáticos removidos)
   ============================================================================ */

/* -------------------------
   Variables
   ------------------------- */
:root{
  --black:#0b0b0c;
  --near-black:#111213;
  --gold-1:#fff6b7;
  --gold-2:#f7d774;
  --gold-3:#b08d57;
  --offwhite:#f2f2f2;
  --sand:#f3efe4;
  --bone:#f7f4ee;
  --white:#ffffff;
  --accent:#c29b48;
  --shadow:rgba(0,0,0,0.35);
  --radius:18px;
  --transition:220ms cubic-bezier(0.2,0.8,0.2,1);
  --modal-offset:20px;
}

/* -------------------------
   Base / Reset
   ------------------------- */
*{box-sizing:border-box;}
html,body{height:100%;}
body{
  margin:0;
  padding:0;
  background:var(--black);
  color:var(--offwhite);
  font-family:"Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  line-height:1.6;
}

/* -------------------------
   Typography utilities
   ------------------------- */
.cinzel,h1,h2,h3,h4,h5,h6{font-family:"Cinzel",serif;letter-spacing:0.3px;}
h1{font-size:clamp(2rem,2vw+1rem,2.8rem);margin:0;}
h2{font-size:clamp(1.4rem,1vw+1rem,1.8rem);margin:0;}
h3{font-size:clamp(1rem,0.9vw+0.8rem,1.4rem);margin:0;}
p{margin:0 0 1rem 0;font-size:1rem;color:var(--bone);}

/* gold text gradient */
.gold-text{
  background:linear-gradient(180deg,var(--gold-1),var(--gold-2) 48%,var(--gold-3) 52%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  -webkit-text-fill-color:transparent;
  text-shadow:0 2px 8px rgba(0,0,0,0.45);
}

/* -------------------------
   Layout containers
   ------------------------- */
.container{width:min(1200px,92vw);margin:0 auto;}
.section{padding:clamp(28px,4vw,64px) 0;}
.center{text-align:center;}

/* -------------------------
   Header / Navigation
   ------------------------- */
.header{
  position:fixed;top:0;left:0;right:0;z-index:120;pointer-events:auto;
  transition:transform 260ms cubic-bezier(0.2,0.8,0.2,1),opacity 260ms ease;
  will-change:transform,opacity;
}
.header.header--hidden{transform:translateY(-100%);opacity:0;pointer-events:none;}

.nav{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;}
.brand{display:flex;align-items:center;gap:10px;}
.brand img{width:40px;height:40px;object-fit:contain;display:block;}
.brand-link{display:flex;align-items:center;gap:8px;text-decoration:none;color:inherit;}

.site-name{font-family:"Cinzel",serif;font-weight:700;font-size:1.15rem;line-height:1;display:inline-block;}

.menu{display:flex;align-items:center;gap:14px;}
.menu a{color:var(--bone);text-decoration:none;font-weight:600;padding:8px 6px;transition:color var(--transition),transform var(--transition);}
.menu a:hover{color:var(--white);transform:translateY(-1px);}
.menu a.gold{color:var(--gold-2);}

/* contact button */
.contact-top{
  padding:8px 12px;border-radius:999px;border:1px solid var(--accent);
  background:linear-gradient(180deg,rgba(255,246,183,0.06),rgba(176,141,87,0.08));
  color:var(--bone);font-weight:700;text-decoration:none;
}

/* hamburger / mobile */
.hamburger{display:none;flex-direction:column;gap:4px;cursor:pointer;}
.hamburger span{width:22px;height:2px;background:var(--bone);display:block;}
.mobile-panel{
  display:none;position:fixed;inset:auto 10px 10px 10px;z-index:140;border-radius:12px;padding:10px;
  background:rgba(17,18,19,0.95);
}

/* -------------------------
   NAV OVERLAY (barra)
   ------------------------- */
.nav-overlay{
  background:rgba(17,18,19,0.16) !important;
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  border-bottom:1px solid rgba(255,255,255,0.03);
  position:absolute;top:0;left:0;right:0;z-index:130;
}
.nav-overlay a,.nav-overlay .site-name{color:var(--bone) !important;text-decoration:none !important;}
.nav-overlay a.gold{color:var(--gold-2) !important;}

/* -------------------------
   HERO / BG-VIDEO / OVERLAYS
   ------------------------- */
.hero{
  position:relative;width:100%;height:clamp(300px,56vw,520px);overflow:hidden;z-index:115;
  border-bottom:1px solid rgba(247,215,116,0.45) !important;
}
@media (max-width:992px){ .hero{height:380px !important;} }
@media (max-width:720px){ .hero{height:300px !important;} }
@media (max-width:560px){ .hero{height:280px !important;} }

/* enforce object-fit & position */
.hero video,.hero .hero-video,.hero>video{
  width:100% !important;height:100% !important;object-fit:cover !important;object-position:center 50% !important;
  display:block !important;will-change:object-position,transform !important;
}

.hero::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:28%;pointer-events:none;
  background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(6,6,6,0.18) 40%,rgba(6,6,6,0.45) 100%);z-index:120;
}
.hero .overlay{z-index:125;pointer-events:none;}

/* global background video */
#bg-video{
  position:fixed;inset:0;width:100%;height:100%;object-fit:cover;opacity:0.12;z-index:0;pointer-events:none;
  filter:blur(0.6px) saturate(0.98);-webkit-backface-visibility:hidden;backface-visibility:hidden;
}
@media (max-width:720px){
  #bg-video{display:none;}
  body{background-image:url("/assets/video/fondo-poster.jpg");background-size:cover;background-position:center;}
  .nav-overlay{background:rgba(17,18,19,0.28);}
  .hero video{object-position:center 50% !important;}
}

/* Ensure main/content sits above bg-video */
main,.container,.section,.page,.content{position:relative;z-index:10;background:transparent;}

/* -------------------------
   Cards / Panels / Footer
   ------------------------- */
.card{
  background:linear-gradient(180deg,rgba(255,246,183,0.05),rgba(176,141,87,0.08));
  border:1px solid rgba(176,141,87,0.28);
  border-radius:var(--radius);
  padding:18px;
  box-shadow:0 10px 28px rgba(0,0,0,0.35);
  transition:background var(--transition),transform var(--transition),border-color var(--transition);
}
.card:hover{transform:translateY(-3px);border-color:var(--accent);}

/* Panels that require semi-opaque backgrounds for legibility */
.card,.accordion,.mobile-panel,footer,.uf-footer{
  background:rgba(0,0,0,0.45);backdrop-filter:blur(2px);position:relative;z-index:15;
}

/* Footer compact */
.uf-footer.compact{padding:24px 0;font-size:12px;line-height:1.3;background:rgba(0,0,0,0.45);}
.uf-footer .uf-link{color:var(--gold-2);text-decoration:none;font-weight:600;}
.uf-footer .uf-link:link,.uf-footer .uf-link:visited,.uf-footer .uf-link:active,.uf-footer .uf-link:focus{color:var(--gold-2) !important;}

/* Footer contact vertical layout */
.uf-footer-contact .uf-col-links,.uf-footer-contact nav{display:flex !important;flex-direction:column !important;gap:4px !important;}
#uf-mailto,#uf-gmail,#uf-tel{display:block !important;width:100% !important;line-height:1.18 !important;}
.uf-link,.uf-link:link,.uf-link:visited,.uf-link:active,.uf-link:focus{color:var(--gold-2) !important;text-decoration:none !important;}

/* -------------------------
   Buttons / CTA / UF Quote Button
   ------------------------- */
.btn-cta{display:inline-flex;align-items:center;gap:10px;cursor:pointer;
  background:linear-gradient(180deg,rgba(255,246,183,0.18),rgba(176,141,87,0.3));
  border:1px solid var(--accent);color:var(--white);padding:12px 20px;border-radius:999px;font-weight:800;
}

/* Floating UF quote button */
.uf-quote-btn,a.uf-quote-btn{
  position:fixed !important;left:50% !important;transform:translateX(-50%) !important;bottom:18px !important;
  z-index:99999 !important;display:inline-flex !important;align-items:center !important;justify-content:center !important;
  min-width:220px !important;height:38px !important;padding:0 10px !important;border-radius:26px !important;
  background:rgba(247,215,116,0.05) !important;border:1px solid rgba(247,215,116,0.25) !important;color:var(--bone) !important;
  font-weight:700 !important;font-size:13px !important;white-space:nowrap !important;text-decoration:none !important;
  cursor:pointer !important;transition:transform 150ms ease !important;
}
.uf-quote-btn::before,.uf-quote-btn::after{display:none !important;content:none !important;}
.uf-quote-btn:hover{transform:translateX(-50%) scale(1.025) !important;}
.uf-quote-btn:focus{outline:2px solid rgba(247,215,116,0.18) !important;outline-offset:2px !important;}

/* -------------------------
   Flags (language switch)
   ------------------------- */
.flag-btn{
  background:transparent;border:1px solid rgba(255,255,255,0.04);padding:6px;margin-left:6px;border-radius:8px;display:inline-flex;
  align-items:center;justify-content:center;cursor:pointer;transition:transform 160ms ease,box-shadow 160ms ease,border-color 160ms ease;
  width:36px;height:28px;
}
.flag-btn:focus{outline:2px solid rgba(194,155,72,0.18);outline-offset:2px;}
.flag-btn:hover{transform:translateY(-2px);border-color:rgba(247,215,116,0.28);}
.flag-btn[aria-pressed="true"],.flag-btn.active{
  background:linear-gradient(180deg,rgba(247,215,116,0.12),rgba(176,141,87,0.06));
  border-color:rgba(247,215,116,0.34);
}
.flag-btn .flag-bg-top{fill:var(--gold-2);} .flag-btn .flag-bg-mid{fill:var(--near-black);} .flag-btn .flag-bg-bot{fill:var(--gold-2);}
.flag-btn .flag-shield{fill:var(--offwhite);stroke:rgba(11,11,12,0.12);stroke-width:0.5;}
@media (max-width:720px){ .flag-btn{width:32px;height:22px;padding:4px;margin-left:4px;} .flag-btn svg{width:24px;height:18px;} }

/* Remove golden frame while preserving background-image */
.nav .lang-switch .flag-btn,.nav .lang-switch .flag-btn>div{border:none !important;box-shadow:none !important;outline:none !important;}
.nav .lang-switch .flag-btn:hover,.nav .lang-switch .flag-btn:focus,.nav .lang-switch .flag-btn[aria-pressed="true"],.nav .lang-switch .flag-btn.active{
  border-color:transparent !important;box-shadow:none !important;transform:none !important;
}
.nav .lang-switch .flag-btn>div{width:32px !important;height:22px !important;border-radius:3px !important;overflow:hidden !important;background-size:cover !important;background-position:center !important;background-repeat:no-repeat !important;}

/* -------------------------
   Utilities
   ------------------------- */
.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));}
.center{text-align:center;}
a{color:var(--bone);}
a:focus{outline:2px solid rgba(199,154,72,0.18);outline-offset:2px;}

/* -------------------------
   Responsive behavior
   ------------------------- */
@media (max-width:920px){ .menu{display:none;} .hamburger{display:flex;} .mobile-panel{display:block;} }

/* ============================================================================ 
   Modal / Lightbox rules — consolidated
   ============================================================================ */

/* Base modal */
.modal{position:fixed !important;inset:0 !important;display:none !important;align-items:center !important;justify-content:center !important;z-index:2147483000 !important;pointer-events:auto !important;}
.modal[aria-hidden="false"]{display:flex !important;}

/* Backdrop: allow pointer-events to pass through to iframe/video (overlay handled separately) */
.modal::before{content:"";position:absolute;inset:0;backdrop-filter:blur(10px) saturate(0.9);background:rgba(0,0,0,0.78);z-index:0 !important;pointer-events:none !important;}

/* modal inner & content */
.modal-inner,.modal-content,.modal-media,.modal-photo-content{
  position:relative !important;z-index:2 !important;width:100% !important;height:100% !important;max-width:none !important;max-height:none !important;padding:0 !important;box-sizing:border-box !important;
}

/* iframe/video cover behavior and interactivity */
.modal-content iframe,.modal-content video{
  position:absolute !important;left:50% !important;top:50% !important;transform:translate(-50%,-50%) !important;
  min-width:100% !important;min-height:100% !important;width:auto !important;height:auto !important;
  z-index:2147483400 !important;border:0 !important;pointer-events:auto !important;background:#000 !important;display:block !important;
}

/* Photo modal image: centered and limited */
.modal-photo-content img{display:block !important;max-width:92vw !important;max-height:calc(100vh - var(--modal-offset)) !important;margin:0 auto !important;border-radius:8px !important;z-index:2 !important;}

/* Fixed close button */
#uf-modal-close,#videoModalClose,#photoModalClose{
  position:fixed !important;top:18px !important;right:18px !important;z-index:2147483500 !important;width:56px !important;height:56px !important;border-radius:8px !important;
  background:rgba(0,0,0,0.5) !important;color:var(--bone) !important;border:0 !important;display:inline-flex !important;align-items:center !important;justify-content:center !important;font-size:18px !important;cursor:pointer !important;box-shadow:0 10px 40px rgba(0,0,0,0.6) !important;pointer-events:auto !important;
}
@media (max-width:520px){ #uf-modal-close,#videoModalClose,#photoModalClose{top:8px !important;right:8px !important;width:48px !important;height:48px !important;font-size:16px !important;} }

/* Hide internal duplicate close buttons */
.modal .modal-close.large{display:none !important;}

/* Ensure modal content (iframe/img) are visible & interactable */
.modal[aria-hidden="false"] *{pointer-events:auto !important;user-select:auto !important;}

/* Lock background when modal open */
body.modal-open{overflow:hidden !important;height:100% !important;touch-action:none !important;}
body.modal-open > *:not(.modal):not(#uf-modal-close){visibility:hidden !important;pointer-events:none !important;user-select:none !important;}

/* Override edge-case stylesheet collisions */
.modal-inner,.modal-content,.modal-media,.modal-photo-content,.modal-content iframe,.modal-photo-content img{
  z-index:2147483400 !important;visibility:visible !important;opacity:1 !important;pointer-events:auto !important;background:transparent !important;
}

/* If iframe appears 0x0, force cover sizing */
.modal-content iframe,.modal-content video{width:auto !important;height:auto !important;min-width:100% !important;min-height:100% !important;max-width:none !important;max-height:none !important;}

/* Accessibility: focus visuals for modal close */
#globalLightbox .modal-close{outline-offset:2px;}
#globalLightbox .modal-close:focus{box-shadow:0 0 0 3px rgba(199,154,72,0.18);}

/* Force overlay + close button behavior for video/photo states (single source of truth) */
#globalLightbox .modal-close{display:none !important;opacity:0 !important;pointer-events:none !important;}
#globalLightbox.photo-open .modal-close.photo-close{display:inline-flex !important;opacity:1 !important;pointer-events:auto !important;top:16px !important;right:16px !important;left:auto !important;transform:none !important;z-index:2147483500 !important;}
#globalLightbox.video-open .modal-close.video-close{
  display:inline-flex !important;opacity:1 !important;pointer-events:auto !important;position:fixed !important;top:16px !important;left:50% !important;transform:translateX(-50%) !important;right:auto !important;z-index:2147483700 !important;
  width:56px !important;height:56px !important;border-radius:10px !important;background:rgba(0,0,0,0.6) !important;border:1px solid rgba(255,255,255,0.06) !important;color:var(--bone) !important;align-items:center !important;justify-content:center !important;font-size:20px !important;box-shadow:0 10px 40px rgba(0,0,0,0.6) !important;
}
#globalLightbox.video-open #photoModalClose,#globalLightbox.video-open .modal-close.photo-close,#globalLightbox.video-open [id="photoModalClose"]{display:none !important;visibility:hidden !important;opacity:0 !important;pointer-events:none !important;}
#globalLightbox.video-open #videoModalClose,#globalLightbox.video-open .modal-close.video-close,#globalLightbox.video-open [id="videoModalClose"]{display:inline-flex !important;visibility:visible !important;opacity:1 !important;pointer-events:auto !important;left:50% !important;transform:translateX(-50%) !important;right:auto !important;z-index:2147483700 !important;}

/* Ensure iframe stacking doesn't cover the fixed close button */
#lightboxContent iframe{transform:translateZ(0);}

/* yt overlay protector and central video close */
.yt-block-overlay{background:transparent !important;display:block !important;border-radius:6px;}
#uf-yt-block-overlay{position:absolute;pointer-events:auto;background:transparent;z-index:2147483600 !important;display:none;border-radius:6px;}
#videoModalClose{position:fixed !important;top:16px !important;left:50% !important;transform:translateX(-50%) !important;z-index:2147483700 !important;display:inline-flex !important;align-items:center !important;justify-content:center !important;width:56px !important;height:56px !important;border-radius:10px !important;background:rgba(255,255,255,0.06) !important;color:var(--bone) !important;border:0 !important;cursor:pointer !important;box-shadow:0 10px 40px rgba(0,0,0,0.6) !important;pointer-events:auto !important;}
@media (max-width:720px){ .yt-block-overlay{width:30% !important;max-width:120px !important;height:22% !important;max-height:90px !important;} #globalLightbox .modal-close.video-close{width:48px !important;height:48px !important;font-size:16px !important;top:10px !important;left:50% !important;transform:translateX(-50%) !important;} #videoModalClose{width:48px !important;height:48px !important;top:10px !important;} }

/* Modal arrows */
.modal-arrow{position:fixed;top:50%;transform:translateY(-50%);width:56px;height:56px;border-radius:999px;background:rgba(0,0,0,0.45);border:1px solid rgba(255,255,255,0.06);color:var(--bone);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;z-index:2147483600 !important;box-shadow:0 8px 28px rgba(0,0,0,0.6);}
.modal-arrow:hover{transform:translateY(-50%) scale(1.03);filter:brightness(1.05);} .modal-arrow.left{left:12px;} .modal-arrow.right{right:12px;}

/* Photo specific placement */
#photoModalClose{position:fixed !important;right:18px !important;top:50% !important;transform:translateY(-50%) !important;z-index:2147483500 !important;width:56px !important;height:56px !important;border-radius:8px !important;background:rgba(255,255,255,0.04) !important;color:var(--bone) !important;border:0 !important;display:inline-flex !important;align-items:center !important;justify-content:center !important;font-size:20px !important;cursor:pointer !important;box-shadow:0 8px 28px rgba(0,0,0,0.6) !important;pointer-events:auto !important;}

/* ============================================================================ 
   Google Reviews module styles (consolidated)
   ============================================================================ */
#google-reviews-module{width:100%;}
#google-reviews-module #gr-list{display:grid !important;gap:18px !important;grid-template-columns:repeat(auto-fit,minmax(300px,1fr)) !important;align-items:start !important;margin-top:12px !important;}
@media (max-width:920px){ #google-reviews-module #gr-list{grid-template-columns:repeat(2,1fr) !important;} }
@media (max-width:520px){ #google-reviews-module #gr-list{grid-template-columns:1fr !important;} }

#google-reviews-module .gr-review{
  padding:14px !important;border-radius:12px !important;background:rgba(0,0,0,0.25) !important;border:1px solid rgba(247,215,116,0.08) !important;color:var(--bone) !important;
  box-shadow:0 8px 24px rgba(0,0,0,0.35) !important;position:relative !important;display:flex !important;flex-direction:column !important;justify-content:flex-start !important;
  min-height:120px !important;overflow:hidden !important;word-break:break-word !important;transition:transform 220ms cubic-bezier(0.2,0.8,0.2,1),box-shadow 220ms ease,border-color 220ms ease !important;
}
#google-reviews-module .gr-review:hover{transform:translateY(-3px) !important;border-color:var(--accent) !important;box-shadow:0 12px 32px rgba(0,0,0,0.45) !important;}
#google-reviews-module .gr-review>strong{display:block !important;color:var(--gold-3) !important;font-weight:700 !important;margin-bottom:4px !important;font-size:0.82rem !important;line-height:1.1 !important;text-align:left !important;}
#google-reviews-module .gr-review>p{margin:0 0 8px 0 !important;color:var(--bone) !important;line-height:1.25 !important;font-size:0.8rem !important;text-align:left !important;max-height:6rem !important;overflow:hidden !important;}
#google-reviews-module .gr-review .meta{margin-top:8px !important;font-size:0.7rem !important;color:rgba(255,255,255,0.72) !important;display:flex !important;justify-content:space-between !important;align-items:center !important;}
#google-reviews-module #gr-open-all.btn{display:inline-block !important;padding:10px 16px !important;border-radius:10px !important;background:linear-gradient(90deg,var(--gold-2),var(--gold-3)) !important;color:#111 !important;font-weight:700 !important;text-decoration:none !important;box-shadow:0 6px 18px rgba(0,0,0,0.24) !important;margin-top:8px !important;}
#google-reviews-module #gr-stars{font-weight:700 !important;color:var(--bone) !important;cursor:pointer;}
#google-reviews-module #gr-count{color:var(--gold-3) !important;}

@media (min-width:920px){ #google-reviews-module .gr-review>p{max-height:5rem !important;} #google-reviews-module .gr-review{padding:12px !important;} }
@media (max-width:520px){ #google-reviews-module .gr-review>p{max-height:none !important;} #google-reviews-module .gr-review{min-height:auto !important;padding:12px !important;} }

/* Optional testimonial mapping (valoraciones area) */
#valoraciones{background:rgba(0,0,0,0.04);padding:22px;border-radius:18px;border:1px solid rgba(255,255,255,0.02);}

/* Reuse testimonial look for big screens */
@media (min-width:1100px){ #google-reviews-module .gr-review{min-height:130px !important;padding:20px !important;} }
@media (max-width:599px){ #google-reviews-module .gr-review{padding:12px !important;min-height:auto !important;} }

/* ============================================================================ 
   Small polish & consistency tweaks
   ============================================================================ */
.testimonial .who strong,.testimonial .who{color:var(--gold-3) !important;}
.icon.icon-metronome{width:48px;height:48px;color:var(--gold-2);flex:0 0 48px;display:block;}
@media (max-width:720px){ .icon.icon-metronome{width:36px;height:36px;flex:0 0 36px;} .card h2{font-size:1.2rem !important;} }

/* Accessibility: focus visible */
:focus{outline-offset:2px;}
html{scroll-behavior:smooth;}

/* FAQ styles */
.faq-grid{gap:18px;}
@media (min-width:1100px){ .faq-grid{grid-template-columns:300px 1fr 360px;} }
@media (max-width:1099px){ .faq-grid{grid-template-columns:1fr;} #faq-answer{order:3;} #faq-panels{order:2;margin-top:8px;} nav.faq-cat{order:1;margin-bottom:8px;} }

.faq-cat-btn{transition:background var(--transition),color var(--transition);}
.faq-cat-btn[aria-expanded="true"]{background:linear-gradient(90deg,rgba(247,215,116,0.06),rgba(176,141,87,0.03));color:var(--gold-2);border-left:3px solid rgba(176,141,87,0.9);}
.faq-qbtn{transition:background var(--transition);} .faq-qbtn:focus,.faq-qbtn:hover{background:rgba(255,255,255,0.02);outline:none;}
.faq-qbtn.selected{background:linear-gradient(90deg,rgba(247,215,116,0.06),rgba(176,141,87,0.03));color:var(--gold-2);}
#faq-answer{min-height:160px;} #faq-answer-title{font-weight:700;}
.btn-ghost{background:transparent;border:0;color:var(--bone);cursor:pointer;font-size:18px;}
@media (max-width:720px){ #faq-answer{padding:12px !important;} .faq-qbtn .qarrow{display:none;} }

.faq-cat-btn:focus,.faq-qbtn:focus,#faq-clear:focus{outline:3px solid rgba(199,154,72,0.12);outline-offset:2px;}
.recuadro-panel,recuadro-panel *,#uf-panels,#uf-panels *{color:var(--bone) !important;}
.q-btn,.q-btn .q-title,.uf-qs .q-btn,.faq-qbtn,.faq-qbtn .qtext{color:var(--bone) !important;}
#uf-answer-panel,#uf-answer-panel *,#faq-answer,#faq-answer *{color:var(--bone) !important;}
.recuadro-panel button,recuadro-panel a{color:var(--bone) !important;}

/* Clone home button style for FAQ area */
#uf-answer-panel .btn,#faq-answer .btn,.faq-grid .btn,#main .btn-cta,a.btn-cta,a.btn{
  display:inline-block;padding:14px 34px;border-radius:999px;font-weight:800;text-decoration:none;color:var(--near-black) !important;
  background:linear-gradient(180deg,rgba(255,246,183,1) 0%,rgba(255,236,150,1) 12%,rgba(247,215,116,1) 30%,rgba(236,190,104,1) 55%,rgba(194,155,72,1) 75%,rgba(160,120,60,1) 100%);
  border:1px solid rgba(139,101,49,0.95);box-shadow:0 8px 30px rgba(176,141,87,0.18),inset 0 1px 0 rgba(255,255,255,0.45);background-size:100% 200%;
}

/* ============================================================================ 
   Contact form forced look (consolidated)
   ============================================================================ */
#uf-location,#uf-email,#uf-message,#uf-event-other,input.uf-email-style,textarea.uf-email-style{
  border-radius:var(--radius) !important;-webkit-border-radius:var(--radius) !important;background:#0f0f10 !important;
  color:rgba(255,255,255,0.85) !important;font-weight:400 !important;font-size:14px !important;border:1px solid #444 !important;padding:12px !important;box-sizing:border-box !important;outline:none !important;font-family:"Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif !important;line-height:1.45 !important;box-shadow:none !important;
}
#uf-location::placeholder,#uf-email::placeholder,#uf-message::placeholder,#uf-event-other::placeholder,input.uf-email-style::placeholder,textarea.uf-email-style::placeholder{color:rgba(255,255,255,0.85) !important;opacity:1 !important;}
#uf-message,#uf-event-other,textarea.uf-email-style{resize:vertical !important;min-height:54px !important;border-radius:var(--radius) !important;}
#uf-event-other{display:none;margin-top:10px;min-height:54px;}
.required-star{color:rgba(176,141,87,0.85) !important;font-weight:600 !important;}
input[style],textarea[style],#uf-message[style],#uf-location[style],#uf-event-other[style]{border-radius:var(--radius) !important;}
.uf-opt-btn,.uf-promo-row,.uf-tag{border-radius:calc(var(--radius) - 6px) !important;}

/* Final safety: ensure focus outlines visible */
#globalLightbox .modal-close:focus{box-shadow:0 0 0 3px rgba(199,154,72,0.18);}

/* =========================
   Cookie banner & YouTube placeholder (Unfrontier styling)
   ========================= */

/* Banner principal (uso con header JS) */
#uf-cookie-banner {
  position: fixed;
  right: 24px;
  bottom: 24px;
  max-width: 420px;
  width: calc(100% - 48px);
  background: rgba(6,6,6,0.94);
  color: var(--bone);
  border: 1px solid rgba(201,162,74,0.12);
  border-radius: 12px;
  padding: 18px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.6);
  font-family: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial;
  z-index: 99999;
  display: none;
}
#uf-cookie-banner h4 {
  margin: 0 0 8px 0;
  font-family: "Cinzel", serif;
  color: var(--gold-2);
  font-size: 15px;
  letter-spacing: 0.6px;
}
#uf-cookie-banner p { margin:0 0 12px 0; font-size:13px; line-height:1.35; color: #ddd6c7; }
.uf-cookie-actions { display:flex; gap:10px; justify-content:flex-end; align-items:center; }
.uf-cookie-small { font-size:11px; color:#bfb2a0; margin-right:auto; }

/* Banner buttons */
.uf-btn {
  display:inline-block;
  padding:8px 14px;
  border-radius:999px;
  border:1px solid rgba(201,162,74,0.14);
  background: transparent;
  color: var(--bone);
  font-weight:600;
  cursor:pointer;
  font-size:13px;
}
.uf-btn--accept {
  background: linear-gradient(180deg, rgba(201,162,74,0.16), rgba(201,162,74,0.08));
  color: #fff;
  box-shadow: 0 6px 18px rgba(201,162,74,0.06);
  border: 1px solid rgba(201,162,74,0.28);
}
.uf-btn--reject { background: transparent; }

/* Small gear button to re-open settings */
#uf-cookie-gear {
  position: fixed;
  right: 24px;
  bottom: 24px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(6,6,6,0.9);
  border:1px solid rgba(201,162,74,0.08);
  display: none;
  align-items:center;
  justify-content:center;
  z-index: 99990;
  color: var(--gold-2);
  cursor:pointer;
  box-shadow: 0 6px 18px rgba(0,0,0,0.5);
  font-size:18px;
}

/* Minimal prompt (fallback) that can be injected on demand */
#uf-min-banner {
  position: fixed;
  right: 18px;
  bottom: 18px;
  max-width: 420px;
  width: calc(100% - 36px);
  background: rgba(6,6,6,0.96);
  color: var(--bone);
  padding: 14px;
  border-radius: 10px;
  border: 1px solid rgba(201,162,74,0.12);
  z-index: 99999;
  box-shadow: 0 8px 30px rgba(0,0,0,0.6);
  font-family: "Montserrat", system-ui;
  font-size: 13px;
}
#uf-min-banner .uf-min-actions { display:flex; gap:8px; justify-content:flex-end; align-items:center; }

/* =========================
   YouTube placeholder (thumbnail + play)
   ========================= */
.uf-youtube-placeholder {
  position: relative;
  display:block;
  width:100%;
  max-width:100%;
  min-height:200px;
  background:#000 center/cover no-repeat;
  border-radius:8px;
  overflow:hidden;
  cursor:pointer;
  border:1px solid rgba(255,255,255,0.03);
}
.uf-youtube-placeholder .uf-yplay {
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:72px;height:72px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background: rgba(0,0,0,0.55);
  border: 2px solid rgba(201,162,74,0.22);
  color:#fff;font-size:22px;font-weight:800;
  box-shadow: 0 8px 20px rgba(0,0,0,0.45);
}
.uf-youtube-placeholder .uf-ytext {
  position:absolute;
  left:12px;
  bottom:10px;
  color:#efe6d9;
  font-size:12px;
  background: rgba(0,0,0,0.35);
  padding:6px 10px;
  border-radius:6px;
  border:1px solid rgba(255,255,255,0.02);
}

/* Prevent placeholders from being too tall on small screens */
@media (max-width:720px) {
  .uf-youtube-placeholder { min-height:140px; border-radius:10px; }
  .uf-youtube-placeholder .uf-yplay { width:56px;height:56px;font-size:18px; }
  #uf-cookie-banner { right:12px; left:12px; bottom:18px; width:auto; max-width:unset; padding:14px; }
  #uf-cookie-gear { right:12px; bottom:18px; display:none; }
}

/* If user has already chosen, hide banner but keep gear visible */
.uf-cookie-hidden #uf-cookie-banner { display:none !important; }
.uf-cookie-hidden #uf-cookie-gear { display:flex !important; }

/* Accessibility / focus */
.uf-youtube-placeholder:focus { outline: 3px solid rgba(199,154,72,0.14); outline-offset:3px; }
#uf-cookie-banner button:focus, #uf-min-banner button:focus { box-shadow: 0 0 0 4px rgba(199,154,72,0.12); outline:none; }

/* Ensure placeholders and banner don't overlap important UI on very small screens */
@media (max-width:420px) {
  #uf-cookie-banner { right:10px; left:10px; bottom:14px; padding:12px; }
  #uf-min-banner { right:10px; left:10px; bottom:14px; padding:12px; }
}

/* UX: gently show banner when toggled via JS */
#uf-cookie-banner.show { display:block; animation: uf-cookie-in 260ms cubic-bezier(.2,.9,.2,1); }
@keyframes uf-cookie-in { from { transform: translateY(8px) scale(.98); opacity:0 } to { transform:none; opacity:1 } }
/* =========================
   Cookie banner: responsive strip (mobile) + corner card (desktop)
   ========================= */

/* Desktop (default card, untouched) */
#uf-cookie-banner {
  position: fixed;
  right: 24px;
  bottom: 24px;
  max-width: 420px;
  width: calc(100% - 48px);
  background: rgba(6,6,6,0.94);
  color: var(--bone);
  border: 1px solid rgba(201,162,74,0.12);
  border-radius: 12px;
  padding: 18px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.6);
  z-index: 99999;
  display: none; /* visible controlled by JS */
  transition: transform 220ms cubic-bezier(.2,.9,.2,1), opacity 180ms ease;
  align-items: flex-start;
}

/* Content layout inside banner (desktop) */
#uf-cookie-banner .uf-cookie-small { display:block; margin-right:12px; color:#bfb2a0; font-size:12px; line-height:1.2; }
#uf-cookie-banner .uf-cookie-actions { display:flex; gap:10px; justify-content:flex-end; align-items:center; width:100%; }

/* Mobile: full-width strip */
@media (max-width:720px) {
  #uf-cookie-banner {
    left: 0;
    right: 0;
    bottom: 0;
    max-width: none;
    width: 100%;
    border-radius: 0;
    padding: 12px 14px;
    display: none; /* JS controls visibility */
    box-shadow: 0 -6px 30px rgba(0,0,0,0.55);
    align-items: center;
    border-top: 1px solid rgba(201,162,74,0.08);
    justify-content: space-between;
  }

  /* Compact content for the strip */
  #uf-cookie-banner .uf-cookie-small { display:none; } /* hide long helper text on very small */
  #uf-cookie-banner .uf-cookie-actions { gap:8px; align-items:center; margin-left:12px; }

  #uf-cookie-banner .uf-btn { padding:8px 12px; font-size:13px; }
  #uf-cookie-banner .uf-btn--accept { padding:8px 14px; font-weight:700; }
}

/* Small gear control (always visible when banner hidden) */
#uf-cookie-gear {
  position: fixed;
  right: 24px;
  bottom: 24px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(6,6,6,0.9);
  border: 1px solid rgba(201,162,74,0.08);
  display: none; /* JS toggles visibility */
  align-items: center;
  justify-content: center;
  z-index: 99990;
  color: var(--gold-2);
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(0,0,0,0.5);
  font-size: 18px;
}

/* On mobile, move gear slightly left so it doesn't overlap the strip */
@media (max-width:720px) {
  #uf-cookie-gear {
    right: 16px;
    bottom: 82px; /* above the mobile strip */
    display: none;
  }
}

/* Simple show class (used by JS) */
#uf-cookie-banner.show { display: flex !important; opacity:1; transform:none; }
#uf-cookie-banner.hide { display: none !important; opacity:0; transform: translateY(6px); }

/* Keep the look consistent: small text and focus styles */
#uf-cookie-banner .uf-btn:focus { box-shadow: 0 0 0 4px rgba(199,154,72,0.12); outline: none; }
#uf-cookie-gear:focus { box-shadow: 0 0 0 4px rgba(199,154,72,0.12); outline: none; }

/* Accessibility: when modal open hide gear */
body.cookie-banner-open #uf-cookie-gear { visibility: hidden; pointer-events: none; }
/* Reducir el tamaño del subtítulo "Del primer contacto..." a 1/3 */
.subtitle-hero.uf-sub.copy-subtitle {
  font-size: calc(1.55rem / 3) !important; /* ~0.516rem */
  line-height: 1.2 !important;
  letter-spacing: 0.2px !important;
}
/* =========================
   Dropdown "Servicios" — Unfrontier styling
   ========================= */
.menu-item--dropdown { position:relative; display:inline-block; }
.menu-item--dropdown .menu-dropdown {
  min-width:220px;
  background: rgba(6,6,6,0.90); /* oscuro translúcido */
  border: 1px solid rgba(201,162,74,0.12); /* marco dorado sutil */
  box-shadow: 0 12px 30px rgba(0,0,0,0.55);
  border-radius:12px;
  padding:6px;
  display:none;
  transition:opacity 180ms var(--transition), transform 180ms var(--transition);
  transform-origin:top left;
  z-index:250;
}

/* show state (JS toggles inline style; hover fallback) */
.menu-item--dropdown.open .menu-dropdown,
.menu-item--dropdown:hover .menu-dropdown { 
  display:block;
  opacity:1;
  transform:translateY(4px) scale(1);
}

/* dropdown links */
.menu-item--dropdown .menu-dropdown .dropdown-link {
  display:block;
  padding:10px 14px;
  color:var(--bone);
  text-decoration:none;
  font-weight:700;
  border-radius:8px;
  transition:background var(--transition), color var(--transition), transform var(--transition);
}
.menu-item--dropdown .menu-dropdown .dropdown-link:hover,
.menu-item--dropdown .menu-dropdown .dropdown-link:focus {
  background:linear-gradient(180deg, rgba(247,215,116,0.06), rgba(176,141,87,0.03));
  color:var(--gold-2);
  transform:translateY(-2px);
  outline:none;
}

/* divider (optional) */
.menu-item--dropdown .menu-dropdown .dropdown-divider {
  height:1px;margin:6px 8px;background:linear-gradient(90deg, rgba(255,255,255,0.02), rgba(201,162,74,0.04));
}

/* caret style */
.menu-dropdown-toggle svg { stroke:rgba(255,255,255,0.7); vertical-align:middle; }

/* Mobile: expand full width */
@media (max-width:920px){
  .menu-item--dropdown .menu-dropdown { position:static; display:block; background:transparent; border:none; box-shadow:none; padding-left:12px; }
  .menu-item--dropdown .menu-dropdown .dropdown-link { padding-left:6px; }
}
/* =========================
   Ajustes dropdown & menú "Servicios" (Unfrontier)
   ========================= */

/* Forzar que los enlaces del menú compartan la misma tipografía/tamaño */
.nav .menu a,
.nav .menu .menu-dropdown-toggle {
  font-family: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  font-size: 0.95rem; /* igual tamaño que el resto del menú */
  letter-spacing: 0.02em;
  color: var(--bone);
  font-weight:600;
}

/* Dropdown container: oscurecido y con la estética Unfrontier */
.menu-item--dropdown { position:relative; display:inline-block; }
.menu-item--dropdown .menu-dropdown {
  min-width:220px;
  background: rgba(6,6,6,0.92) !important;          /* oscuro translúcido (elimina caja blanca) */
  border: 1px solid rgba(201,162,74,0.10) !important; /* borde dorado sutil */
  box-shadow: 0 14px 40px rgba(0,0,0,0.55) !important;
  border-radius:12px !important;
  padding:6px !important;
  display:none;
  transition:opacity 180ms var(--transition), transform 180ms var(--transition);
  transform-origin:top left;
  z-index:250;
}

/* Links inside dropdown */
.menu-item--dropdown .menu-dropdown .dropdown-link {
  display:block;
  padding:10px 14px;
  color:var(--bone) !important;
  text-decoration:none;
  font-weight:700;
  border-radius:8px;
}
.menu-item--dropdown .menu-dropdown .dropdown-link:hover,
.menu-item--dropdown .menu-dropdown .dropdown-link:focus {
  background: linear-gradient(180deg, rgba(247,215,116,0.06), rgba(176,141,87,0.03));
  color: var(--gold-2) !important;
  transform:translateY(-2px);
}

/* Show behavior */
.menu-item--dropdown.open .menu-dropdown,
.menu-item--dropdown:hover .menu-dropdown { display:block; opacity:1; transform:translateY(4px) scale(1); }

/* Mobile: dropdown inside mobile-panel — inherit styles, no white */
@media (max-width:920px){
  .menu-item--dropdown .menu-dropdown { position:static; display:block; background:transparent; border:none; box-shadow:none; padding-left:0; }
  .menu-item--dropdown .menu-dropdown .dropdown-link { padding-left:6px; color:var(--bone); }
}

/* Ensure dropdown toggle caret matches color and spacing */
.menu-dropdown-toggle svg { stroke: rgba(255,255,255,0.8); margin-left:6px; vertical-align:middle; }

/* Small accessibility & visual polish */
.menu-item--dropdown .menu-dropdown .dropdown-link:focus { outline:3px solid rgba(199,154,72,0.12); outline-offset:2px; }

/* Remove any forced white backgrounds coming from inline styles (specific override) */
.menu .menu-dropdown, .menu .menu-item--dropdown .menu-dropdown {
  background-image: none !important;
}


/* End of consolidated stylesheet */

