/*
Theme Name: VISIONiQ
Theme URI: https://visioniq.es
Description: Tema profesional WordPress para VISIONiQ — Liquid Glass Experience con visualización inmobiliaria 360°, drones, IA y marketing digital.
Author: VISIONiQ
Author URI: https://visioniq.es
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: visioniq
Tags: liquid-glass, real-estate, one-page, modern, glassmorphism, custom-menu, featured-images, custom-logo
*/

/* ===== BASE STYLES ===== */
:root { --t-base-font-size: 16px; }
body { background-color: #ffffff; color: #1a1f2e; overflow-x: hidden; font-family: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; font-feature-settings: "cv03","cv04","cv11"; font-size: var(--t-base-font-size) !important; }
.ambient-bg { position: fixed; top:0; left:0; width:100vw; height:100vh; z-index:-1; overflow:hidden; background:#fff; }
.blob { position:absolute; filter:blur(90px); opacity:0.35; animation:floatBlob 22s infinite ease-in-out alternate; }
.blob-1 { top:-10%; left:-10%; width:50vw; height:50vw; background:radial-gradient(circle,rgba(195,215,245,0.5) 0%,transparent 70%); }
.blob-2 { bottom:-20%; right:-10%; width:55vw; height:55vw; background:radial-gradient(circle,rgba(215,195,240,0.45) 0%,transparent 70%); animation-delay:-6s; }
.blob-3 { top:40%; left:30%; width:40vw; height:40vw; background:radial-gradient(circle,rgba(185,215,225,0.45) 0%,transparent 70%); animation-delay:-12s; }
.blob-4 { top:20%; right:20%; width:35vw; height:35vw; background:radial-gradient(circle,rgba(230,200,180,0.3) 0%,transparent 70%); animation-delay:-3s; }
@keyframes floatBlob { 0%{transform:translate(0,0) scale(1) rotate(0deg)} 50%{transform:translate(8%,-6%) scale(1.15) rotate(5deg)} 100%{transform:translate(12%,18%) scale(1.1) rotate(-3deg)} }
.liquid-glass { background:rgba(255,255,255,0.72); backdrop-filter:blur(18px) saturate(190%); -webkit-backdrop-filter:blur(18px) saturate(190%); border:1px solid rgba(0,0,0,0.07); box-shadow:0 12px 32px -10px rgba(0,0,0,0.07),0 1px 0 rgba(255,255,255,0.65) inset; border-radius:24px; transition:transform 0.5s cubic-bezier(0.16,1,0.3,1),box-shadow 0.4s ease,background 0.3s,border-color 0.3s; }
.liquid-glass:hover { background:rgba(255,255,255,0.88); box-shadow:0 22px 45px -14px rgba(0,0,0,0.14); border-color:rgba(0,0,0,0.1); }
.liquid-glass-dark { background:rgba(255,255,255,0.92); backdrop-filter:blur(22px); border:1px solid rgba(0,0,0,0.08); box-shadow:0 8px 24px rgba(0,0,0,0.04); }
.liquid-glass-solid { background:rgba(255,255,255,0.85); backdrop-filter:blur(16px); border:1px solid rgba(0,0,0,0.06); border-radius:20px; }
.reveal { opacity:0; transform:translateY(45px) scale(0.97); transition:opacity 1.1s cubic-bezier(0.16,1,0.3,1), transform 1.1s cubic-bezier(0.16,1,0.3,1); }
.reveal.active { opacity:1; transform:translateY(0) scale(1); }
.reveal-left { opacity:0; transform:translateX(-60px); transition:opacity 1.1s cubic-bezier(0.16,1,0.3,1), transform 1.1s cubic-bezier(0.16,1,0.3,1); }
.reveal-left.active { opacity:1; transform:translateX(0); }
.reveal-right { opacity:0; transform:translateX(60px); transition:opacity 1.1s cubic-bezier(0.16,1,0.3,1), transform 1.1s cubic-bezier(0.16,1,0.3,1); }
.reveal-right.active { opacity:1; transform:translateX(0); }
.reveal-scale { opacity:0; transform:scale(0.9); transition:opacity 1.2s cubic-bezier(0.16,1,0.3,1), transform 1.2s cubic-bezier(0.16,1,0.3,1); }
.reveal-scale.active { opacity:1; transform:scale(1); }
/* Mobile: reduce reveal offset so gaps are smaller while elements animate in */
@media(max-width:768px){
  .reveal{transform:translateY(18px) scale(0.98);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}
  .reveal-left{transform:translateX(-25px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}
  .reveal-right{transform:translateX(25px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}
  .reveal-scale{transform:scale(0.95);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}
}
.text-gradient { background:linear-gradient(135deg,#1a1f2e 0%,#2d3a5e 60%,#4a5568 100%); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; line-height:1.2; padding-bottom:0.06em; }
.no-scrollbar::-webkit-scrollbar { display:none; }
.no-scrollbar { -ms-overflow-style:none; scrollbar-width:none; }
.organic-shape { border-radius:40% 60% 70% 30%/40% 50% 60% 50%; animation:morphShape 10s ease-in-out infinite; }
@keyframes morphShape { 0%,100%{border-radius:40% 60% 70% 30%/40% 50% 60% 50%} 34%{border-radius:70% 30% 50% 50%/30% 30% 70% 70%} 67%{border-radius:50% 70% 30% 60%/50% 40% 70% 60%} }
.shadow-elegant { box-shadow:0 20px 40px -12px rgba(0,0,0,0.07); }
.play-btn-glass { background:rgba(255,255,255,0.88); backdrop-filter:blur(14px); border:1px solid rgba(0,0,0,0.12); color:#1a1f2e; transition:all 0.35s cubic-bezier(0.16,1,0.3,1); }
.group:hover .play-btn-glass { transform:scale(1.12); background:white; box-shadow:0 12px 30px -5px rgba(0,0,0,0.12); }
.diagonal-hero { clip-path:polygon(0 0,100% 0,100% 88%,0 100%); }

/* === LIQUID BLOB ANIMATION === */
@keyframes blobby {
  0%, 100% {
        border-radius: 42% 58% 70% 30% / 45% 45% 55% 55%;
  }
  33% {
        border-radius: 70% 30% 46% 54% / 30% 29% 71% 70%;
  }
  66% {
        border-radius: 100% 60% 60% 100% / 100% 100% 60% 60%;
  }
}

.diagonal-hero-inner {
  animation: blobby 8s linear infinite;
  transition: border-radius 1s ease-in-out;
  clip-path: none !important;
  background-color: rgba(255, 255, 255, 0.4);
  backdrop-filter: blur(12px) saturate(180%);
  -webkit-backdrop-filter: blur(12px) saturate(180%);
  border: 1px solid rgba(255, 255, 255, 0.3);
  box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37);
}
.diagonal-hero-inner { clip-path:polygon(0 12%,100% 0,100% 100%,0 100%); }
.masonry-grid { columns:3; column-gap:1.25rem; }
@media(max-width:1024px){.masonry-grid{columns:2}} @media(max-width:640px){.masonry-grid{columns:1}}
.masonry-item { break-inside:avoid; margin-bottom:1.25rem; }
.accordion-content { max-height:0; overflow:hidden; transition:max-height 0.5s cubic-bezier(0.16,1,0.3,1),padding 0.4s ease; }
.accordion-item.open .accordion-content { max-height:500px; }
.accordion-icon { transition:transform 0.35s cubic-bezier(0.16,1,0.3,1); }
.accordion-item.open .accordion-icon { transform:rotate(45deg); }
.tab-btn { transition:all 0.35s cubic-bezier(0.16,1,0.3,1); cursor:pointer; }
.tab-btn.active-tab { background:rgba(26,31,46,0.08); border-color:rgba(26,31,46,0.15); }
.tab-content { display:none; animation:fadeInTab 0.5s cubic-bezier(0.16,1,0.3,1); }
.tab-content.active-tab-content { display:block; }
@keyframes fadeInTab { from{opacity:0;transform:translateY(12px)} to{opacity:1;transform:translateY(0)} }
.card-stack-item { transition:transform 0.5s cubic-bezier(0.16,1,0.3,1), box-shadow 0.4s ease, background 0.3s, border-color 0.3s; }
.card-stack-item:hover { box-shadow:0 22px 45px -14px rgba(0,0,0,0.14); }

/* ===== PARALLAX HOVER TILT (like Tour 360 / reference) ===== */
/* Applied via GLOBAL mousemove — cards tilt smoothly following cursor */
.tilt-card { transform-style:preserve-3d; will-change:transform; position:relative; }
.tilt-card.reveal { opacity:0; transform:translateY(45px) scale(0.97); transition:opacity 1.1s cubic-bezier(0.16,1,0.3,1), transform 1.1s cubic-bezier(0.16,1,0.3,1); }
.tilt-card.reveal.active { opacity:1; transform:translateY(0) scale(1); }
@media(max-width:768px){
  .tilt-card.reveal{transform:translateY(18px) scale(0.98);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}
}
/* Shine overlay — reflective liquid surface effect */
.tilt-shine { position:absolute; inset:0; border-radius:24px; pointer-events:none; opacity:0; transition:opacity 0.4s ease; background:radial-gradient(circle at var(--mx,50%) var(--my,50%), rgba(255,255,255,0.35) 0%, rgba(255,255,255,0.08) 30%, transparent 60%); z-index:2; }
.tilt-card:hover .tilt-shine { opacity:1; }
/* 3D depth glow on hover */
.tilt-card::after { content:''; position:absolute; inset:-2px; border-radius:26px; background:linear-gradient(135deg, rgba(195,215,245,0.3) 0%, rgba(215,195,240,0.2) 50%, rgba(185,215,225,0.3) 100%); opacity:0; transition:opacity 0.4s ease; z-index:-1; filter:blur(8px); }
.tilt-card:hover::after { opacity:1; }
.float-label { animation:floatLabel 3s ease-in-out infinite; }
@keyframes floatLabel { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)} }
.line-decoration { height:2px; background:linear-gradient(90deg,rgba(26,31,46,0.25) 0%,transparent 100%); width:60px; }
.hotspot-ping { animation:ping 1.5s cubic-bezier(0,0,0.2,1) infinite; }
@keyframes ping { 75%,100%{transform:scale(1.8);opacity:0} }
.ba-slider-container { position:relative; overflow:hidden; border-radius:24px; cursor:ew-resize; }
.ba-after-img { position:absolute; top:0; left:0; width:100%; height:100%; }
.ba-divider { position:absolute; top:0; left:50%; width:3px; height:100%; background:white; box-shadow:0 0 12px rgba(0,0,0,0.25); z-index:5; pointer-events:none; }
.ba-handle { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,0.96); backdrop-filter:blur(12px); border:1px solid rgba(0,0,0,0.12); box-shadow:0 6px 20px rgba(0,0,0,0.12); display:flex; align-items:center; justify-content:center; z-index:6; pointer-events:none; }
.ba-handle svg { display:none; }
.ba-handle::before { content:'<  >'; font-size:15px; font-weight:600; letter-spacing:0.06em; color:rgba(26,31,46,0.9); line-height:1; }
.ba-label { position:absolute; top:12px; z-index:7; padding:0.35rem 0.6rem; border-radius:999px; font-size:10px; letter-spacing:0.14em; text-transform:uppercase; color:rgba(26,31,46,0.88); background:rgba(255,255,255,0.86); border:1px solid rgba(26,31,46,0.12); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); pointer-events:none; transition:opacity 0.16s ease; }
.ba-label-before { left:12px; }
.ba-label-after { right:12px; }
.page-divider { height:1px; background:linear-gradient(90deg,transparent 0%,rgba(26,31,46,0.08) 50%,transparent 100%); margin:0 auto; max-width:800px; }
.nav-link { position:relative; }
.nav-link::after { content:''; position:absolute; bottom:-2px; left:0; width:0; height:1px; background:#1a1f2e; transition:width 0.3s; }
.nav-link:hover::after { width:100%; }
.glass-input { background:rgba(255,255,255,0.6); backdrop-filter:blur(12px); border:1px solid rgba(0,0,0,0.08); border-radius:16px; transition:all 0.3s; }
.glass-input::placeholder { color: #2a2c30; }
.glass-input:focus { background:rgba(255,255,255,0.85); border-color:rgba(26,31,46,0.2); box-shadow:0 4px 20px rgba(0,0,0,0.06); outline:none; }
select.glass-input:focus { background:#ffffff; backdrop-filter:none; -webkit-backdrop-filter:none; }
.price-badge { background:rgba(26,31,46,0.05); border:1px solid rgba(26,31,46,0.08); }
.popular-badge { background:linear-gradient(135deg,#1a1f2e,#2d3a5e); color:white; }
.service-nav-dropdown { display:none; position:absolute; top:calc(100% + 8px); left:0; transform:none; min-width:300px; padding:1rem; z-index:100; background:#ffffff !important; border:1px solid rgba(0,0,0,0.1); box-shadow:0 22px 40px -16px rgba(0,0,0,0.2); backdrop-filter:none !important; -webkit-backdrop-filter:none !important; }
.service-nav-dropdown.open { display:block; }
.desktop-services-toggle svg { transition:transform 0.25s cubic-bezier(0.16,1,0.3,1); }
.desktop-services-toggle.open svg { transform:rotate(180deg); }
.budget-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    line-height: 1.2;
    white-space: nowrap;
    font-size: 16px !important;
    transition-property: background-color, color, box-shadow !important;
    transition-duration: 0.25s !important;
    transition-timing-function: ease !important;
    transform: translate3d(0,0,0);
    will-change: transform;
}
.nav-budget-btn:hover {
    color: #ffffff !important;
    background: var(--t-ink) !important;
}
@media (max-width: 640px) {
    .budget-cta-btn {
        width: 100%;
        padding-left: 1rem;
        padding-right: 1rem;
        white-space: normal;
    }
}
.mobile-menu {
    display: none;
    transform-origin: top center;
    opacity: 0;
    transform: translateY(-10px) scale(0.98);
    overflow: hidden;
}
.mobile-menu.opening,
.mobile-menu.open,
.mobile-menu.closing { display:block; }
.mobile-menu.opening { animation: mobileMenuIn 0.28s cubic-bezier(0.16,1,0.3,1) forwards; }
.mobile-menu.closing { animation: mobileMenuOut 0.2s ease forwards; pointer-events:none; }
.mobile-menu.open { opacity:1; transform:translateY(0) scale(1); }
.mobile-submenu { display:none; padding-left:0.75rem; border-left:1px solid rgba(26,31,46,0.1); margin-left:0.25rem; margin-top:0.25rem; }
.mobile-submenu.open { display:block; }
.mobile-submenu-toggle svg { transition: transform 0.25s cubic-bezier(0.16,1,0.3,1); }
.mobile-submenu-toggle.open svg { transform: rotate(180deg); }
@keyframes mobileMenuIn {
    from { opacity:0; transform:translateY(-10px) scale(0.98); }
    to { opacity:1; transform:translateY(0) scale(1); }
}
@keyframes mobileMenuOut {
    from { opacity:1; transform:translateY(0) scale(1); }
    to { opacity:0; transform:translateY(-8px) scale(0.98); }
}
@media(max-width:768px) { .desktop-nav{display:none!important} .mobile-toggle{display:flex!important} }
@media(min-width:769px) { .mobile-toggle{display:none!important} }

/* ===== WORDPRESS MULTI-PAGE NAVIGATION ===== */
/* REMOVED: SPA .page{display:none} rules — conflicted with WP body class 'page' */
.nav-active { color:#1a1f2e !important; font-weight:600; }

/* ===== PARALLAX HOVER TILT EFFECT ===== */
/* Applied via JS — subtle ±0.8deg on all .liquid-glass (like muestra_estilos) */

/* ===== FLOATING / BREATHING CARDS ===== */
/* Removed — was conflicting with reveal and tilt transforms */

/* ===== SMOOTH REVEAL (no bounce) ===== */
/* Reveal animations use transition-based approach for smooth, elegant appearance */

/* ===== FLOATING GEOMETRIC SHAPES ===== */
@keyframes shapeFloat1 {
    0% { transform:translate(0,0) rotate(0deg); }
    33% { transform:translate(30px,-20px) rotate(120deg); }
    66% { transform:translate(-20px,15px) rotate(240deg); }
    100% { transform:translate(0,0) rotate(360deg); }
}
@keyframes shapeFloat2 {
    0% { transform:translate(0,0) rotate(0deg); }
    33% { transform:translate(-25px,18px) rotate(-120deg); }
    66% { transform:translate(15px,-22px) rotate(-240deg); }
    100% { transform:translate(0,0) rotate(-360deg); }
}
@keyframes shapeFloat3 {
    0% { transform:translate(0,0) rotate(0deg) scale(1); }
    50% { transform:translate(20px,15px) rotate(180deg) scale(1.1); }
    100% { transform:translate(0,0) rotate(360deg) scale(1); }
}
.geo-shape { position:absolute; pointer-events:none; opacity:0.08; z-index:0; will-change:transform; }
.geo-shape-1 { animation:shapeFloat1 20s ease-in-out infinite; }
.geo-shape-2 { animation:shapeFloat2 25s ease-in-out infinite; }
.geo-shape-3 { animation:shapeFloat3 18s ease-in-out infinite; }

/* ===== ANIMATED GRADIENT BORDERS ===== */
@keyframes borderGradient {
    0% { background-position:0% 50%; }
    50% { background-position:100% 50%; }
    100% { background-position:0% 50%; }
}
.gradient-border-card { position:relative; }
.gradient-border-card::before {
    content:''; position:absolute; inset:-2px; border-radius:26px;
    background:linear-gradient(90deg,rgba(26,31,46,0.1),rgba(100,120,180,0.2),rgba(26,31,46,0.1));
    background-size:200% 200%; animation:borderGradient 4s ease infinite; z-index:-1;
    opacity:0; transition:opacity 0.4s;
}
.gradient-border-card:hover::before { opacity:1; }

/* ===== KEN BURNS EFFECT ===== */
@keyframes kenBurns {
    0% { transform:scale(1) translate(0,0); }
    50% { transform:scale(1.08) translate(-2%,-1%); }
    100% { transform:scale(1) translate(0,0); }
}
.ken-burns { animation:kenBurns 20s ease-in-out infinite; will-change:transform; }

/* ===== PARTICLE FLOATING DOTS — REMOVED ===== */

/* ===== STAGGERED ENTRANCE ===== */
/* (Handled via .reveal + transition-delay, no keyframe needed) */

/* ===== MAGNETIC HOVER ===== */
.magnetic-hover { transition:none; will-change:transform; }

/* ===== NO TILT ON NAVIGATION ===== */
nav .liquid-glass,
nav .liquid-glass-dark,
.liquid-glass-dark,
.budget-cta-btn {
    transform: none !important;
}
nav .tilt-card {
    transform: none !important;
    perspective: none !important;
}

/* ===== PER-PAGE DISABLE STATES ===== */
.animations-disabled .tilt-card,
.animations-disabled .liquid-glass:not(.no-tilt) {
    transform: none !important;
    transition: none !important;
}
.animations-disabled .tilt-shine,
.animations-disabled .tilt-card::after {
    display: none !important;
}
.animations-disabled .reveal,
.animations-disabled .reveal-left,
.animations-disabled .reveal-right,
.animations-disabled .reveal-scale {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
}
.parallax-disabled .parallax-img {
    transform: none !important;
}
.parallax-disabled .blob {
    animation: none !important;
}

/* ===== PARALLAX IMAGE ===== */
.parallax-img { will-change:transform; transition:transform 0.05s linear; }


/* ===== THEME SYSTEM — 3 Color Palettes ===== */
:root {
    /* TEMA 1: COBALTO — azul marino profundo + crema (DEFAULT) */
    --t-bg: #f5f6fa;
    --t-bg-alt1: #eef1f8;
    --t-bg-alt2: #e8ecf5;
    --t-card-bg: rgba(255,255,255,0.72);
    --t-card-bg-solid: rgba(255,255,255,0.85);
    --t-card-bg-dark: rgba(255,255,255,0.92);
    --t-card-border: rgba(26,46,80,0.07);
    --t-ink: #0f1f3d;
    --t-ink-soft: #3a4f72;
    --t-ink-subtle: #3d4045;
    --t-ink-ultra: #50545b;
    --t-accent: #0f1f3d;
    --t-accent-hover: rgba(15,31,61,0.8);
    --t-blob1: rgba(160,190,240,0.55);
    --t-blob2: rgba(190,165,245,0.45);
    --t-blob3: rgba(155,205,235,0.5);
    --t-blob4: rgba(220,195,170,0.3);
    --t-section-tint1: rgba(200,215,245,0.18);
    --t-section-tint2: rgba(215,200,250,0.13);
    --t-section-tint3: rgba(240,230,215,0.22);
    --t-gradient-from: #0f1f3d;
    --t-gradient-mid: #1a3a6e;
    --t-gradient-to: #3a5080;
    --t-badge-bg: rgba(15,31,61,0.05);
    --t-badge-border: rgba(15,31,61,0.09);
    --t-popular: linear-gradient(135deg, #0f1f3d, #1a3a6e);
    --t-nav-line: rgba(15,31,61,0.15);
    --t-divider: rgba(15,31,61,0.08);
    --t-glass-hover-bg: rgba(255,255,255,0.88);
    --t-glass-hover-shadow: rgba(15,31,61,0.14);
}

/* FORZAR MENÚ DESPLEGABLE BLANCO SÓLIDO */
.service-nav-dropdown,
#desktopServicesDropdown {
        background: #ffffff !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
        background-color: #ffffff !important;
}

/* ===== APPLY THEME VARIABLES ===== */
body { background-color: var(--t-bg) !important; color: var(--t-ink) !important; font-size: var(--t-base-font-size) !important; }
.ambient-bg { background: var(--t-bg) !important; }
.blob-1 { background: radial-gradient(circle, var(--t-blob1) 0%, transparent 70%) !important; }
.blob-2 { background: radial-gradient(circle, var(--t-blob2) 0%, transparent 70%) !important; }
.blob-3 { background: radial-gradient(circle, var(--t-blob3) 0%, transparent 70%) !important; }
.blob-4 { background: radial-gradient(circle, var(--t-blob4) 0%, transparent 70%) !important; }

.liquid-glass {
    background: var(--t-card-bg) !important;
    border-color: var(--t-card-border) !important;
    box-shadow: 0 12px 32px -10px rgba(0,0,0,0.08), 0 1px 0 rgba(255,255,255,0.65) inset !important;
}
.liquid-glass:hover {
    background: var(--t-glass-hover-bg) !important;
    box-shadow: 0 22px 45px -14px var(--t-glass-hover-shadow) !important;
    border-color: var(--t-card-border) !important;
}
.liquid-glass-dark { background: var(--t-card-bg-dark) !important; border-color: var(--t-card-border) !important; }
.liquid-glass-solid { background: var(--t-card-bg-solid) !important; border-color: var(--t-card-border) !important; }

.text-gradient {
    background: linear-gradient(135deg, var(--t-gradient-from) 0%, var(--t-gradient-mid) 55%, var(--t-gradient-to) 100%) !important;
    -webkit-background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    background-clip: text !important;
    line-height: 1.2 !important;
    padding-bottom: 0.06em !important;
}
.text-ink { color: var(--t-ink) !important; }
/* Ink opacity variants */
.text-ink\/30 { color: var(--t-ink-ultra) !important; }
.text-ink\/40 { color: var(--t-ink-ultra) !important; }
.text-ink\/50 { color: var(--t-ink-subtle) !important; }
.text-ink\/60 { color: var(--t-ink-subtle) !important; }
.text-ink\/70 { color: var(--t-ink-soft) !important; }
.text-ink\/80 { color: var(--t-ink-soft) !important; }
.text-ink\/90 { color: var(--t-ink) !important; }

/* Section tints — alternating backgrounds for visual rhythm */
.section-tint-1 { background: var(--t-section-tint1); }
.section-tint-2 { background: var(--t-section-tint2); }
.section-tint-3 { background: var(--t-section-tint3); }

.bg-ink { background-color: var(--t-accent) !important; }
.hover\:bg-ink:hover { background-color: var(--t-accent-hover) !important; }
.bg-ink\/5 { background-color: var(--t-badge-bg) !important; }
.bg-ink\/\[0\.03\] { background-color: var(--t-badge-bg) !important; }
.bg-ink\/\[0\.04\] { background-color: var(--t-badge-bg) !important; }
.border-ink { border-color: var(--t-accent) !important; }
.price-badge { background: var(--t-badge-bg) !important; border-color: var(--t-badge-border) !important; }
.popular-badge { background: var(--t-popular) !important; }

.page-divider { background: linear-gradient(90deg, transparent 0%, var(--t-divider) 50%, transparent 100%) !important; }
.line-decoration { background: linear-gradient(90deg, var(--t-ink-subtle) 0%, transparent 100%) !important; }
.nav-link::after { background: var(--t-ink) !important; }
.diagonal-hero { background-color: var(--t-badge-bg) !important; }
.diagonal-hero-inner { /* inherits */ }

.tab-btn.active-tab { background: var(--t-badge-bg) !important; border-color: var(--t-nav-line) !important; }
.glass-input { background: var(--t-card-bg) !important; border-color: var(--t-card-border) !important; }
.glass-input:focus { background: var(--t-card-bg-dark) !important; border-color: var(--t-nav-line) !important; }

/* Form labels: stronger contrast */
form label.text-sm.uppercase.tracking-widest,
form label.block.text-sm.uppercase.tracking-widest {
    color: #3f4145 !important;
}

/* Gradient border card accent */
.gradient-border-card::before {
    background: linear-gradient(90deg, var(--t-divider), rgba(100,140,200,0.18), var(--t-divider)) !important;
}
[data-theme="sage"] .gradient-border-card::before {
    background: linear-gradient(90deg, var(--t-divider), rgba(100,170,100,0.18), var(--t-divider)) !important;
}
[data-theme="copper"] .gradient-border-card::before {
    background: linear-gradient(90deg, var(--t-divider), rgba(180,110,60,0.18), var(--t-divider)) !important;
}

/* Tilt card glow */
.tilt-card::after {
    background: linear-gradient(135deg, var(--t-section-tint1) 0%, var(--t-section-tint2) 50%, var(--t-section-tint3) 100%) !important;
}
/* particle-dot removed */
.geo-shape { border-color: var(--t-card-border) !important; }

/* ===== ALTERNATING SECTION PANELS ===== */
/* Stats section */
.stats-section-panel {
    background: linear-gradient(180deg, var(--t-section-tint1) 0%, transparent 100%);
    border-radius: 32px;
    padding: 3rem 2rem;
}
/* Feature highlight panels */
.feature-panel-alt {
    background: var(--t-section-tint1);
    border-radius: 28px;
    padding: 3rem;
}
/* CTA panel */
.cta-section-band {
    background: linear-gradient(135deg, var(--t-section-tint1) 0%, var(--t-section-tint2) 60%, var(--t-section-tint3) 100%);
    border-radius: 32px;
}

/* ===== EXTRA GLASS REFINEMENTS ===== */
/* Animated section top borders */
.section-top-line {
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--t-divider) 30%, var(--t-section-tint2) 50%, var(--t-divider) 70%, transparent);
    margin-bottom: 0;
}
/* Icon containers use theme accent */
.icon-accent {
    background: var(--t-section-tint1) !important;
    border: 1px solid var(--t-badge-border);
}
/* Floating labels stronger glass */
.float-label.liquid-glass {
    box-shadow: 0 8px 32px -8px var(--t-glass-hover-shadow), 0 1px 0 rgba(255,255,255,0.7) inset !important;
}
/* Nav active state */
.nav-active { color: var(--t-ink) !important; font-weight: 600; }

/* ===== ENHANCED LIQUID GLASS ===== */
.liquid-glass {
    transition: transform 0.5s cubic-bezier(0.16,1,0.3,1),
                box-shadow 0.4s ease,
                background 0.4s ease,
                border-color 0.3s !important;
}
/* Removed: sweep shimmer reflection on hover */
.liquid-glass::before { display: none !important; }
.liquid-glass:hover::before { opacity: 0 !important; animation: none !important; }

/* ===== SECTION BAND BACKGROUNDS ===== */
/* Alternating washed bands between sections */
.band-subtle {
    background: linear-gradient(180deg,
        transparent 0%,
        var(--t-section-tint1) 15%,
        var(--t-section-tint1) 85%,
        transparent 100%);
}
.band-warm {
    background: linear-gradient(180deg,
        transparent 0%,
        var(--t-section-tint3) 15%,
        var(--t-section-tint3) 85%,
        transparent 100%);
}


.organic-card-blur-bg {
    position: relative;
    border-radius: 40% 60% 70% 30% / 40% 50% 60% 50%;
    animation: morphShape 10s ease-in-out infinite;
    background: rgba(255,255,255,0.5);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1px solid rgba(255,255,255,0.4);
    box-shadow: 0 25px 45px -12px rgba(0,0,0,0.15);
    margin-left: auto;
    margin-right: auto;
    overflow: hidden;
    isolation: isolate;
}
.blur-bg-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: blur(20px) brightness(1.1);
    transform: scale(1.2);
    z-index: -1;
    opacity: 0.7;
    pointer-events: none;
}
.overlay-darken {
    position: absolute;
    inset: 0;
    background: rgba(255,255,255,0.25);
    z-index: -1;
    pointer-events: none;
}
.card-content { position: relative; z-index: 2; }
@media (max-width: 640px) {
    .organic-card-blur-bg { max-width: 95vw !important; padding: 2rem 1.5rem !important; }
}

/* ===== GLASSMORPHISM SIDEBAR ===== */
.visioniq-sidebar { position: relative; z-index: 1; }
.visioniq-sidebar .liquid-glass { position: relative; }
.visioniq-sidebar .widget { margin-bottom: 1.5rem; }
.visioniq-sidebar .widget:last-child { margin-bottom: 0; }
.visioniq-sidebar .widget-title {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    color: var(--t-ink);
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--t-divider);
}
.visioniq-sidebar .widget ul { list-style: none; padding: 0; margin: 0; }
.visioniq-sidebar .widget ul li { padding: 0.4rem 0; }
.visioniq-sidebar .widget ul li a {
    color: var(--t-ink-subtle);
    text-decoration: none;
    font-size: 14px;
    font-weight: 300;
    transition: color 0.3s ease, padding-left 0.3s ease;
    display: block;
}
.visioniq-sidebar .widget ul li a:hover {
    color: var(--t-ink);
    padding-left: 4px;
}
.visioniq-sidebar .widget ul li.current-menu-item a,
.visioniq-sidebar .widget ul li.current-cat a {
    color: var(--t-ink);
    font-weight: 500;
}
.visioniq-sidebar .widget_search .search-field,
.visioniq-sidebar .widget_search input[type="search"] {
    width: 100%;
    padding: 0.65rem 1rem;
    border-radius: 12px;
    background: var(--t-card-bg);
    backdrop-filter: blur(12px);
    border: 1px solid var(--t-card-border);
    color: var(--t-ink);
    font-size: 14px;
    font-weight: 300;
    outline: none;
    transition: all 0.3s ease;
}
.visioniq-sidebar .widget_search .search-field:focus,
.visioniq-sidebar .widget_search input[type="search"]:focus {
    background: var(--t-card-bg-dark);
    border-color: var(--t-nav-line);
    box-shadow: 0 4px 20px rgba(0,0,0,0.06);
}
.visioniq-sidebar .widget_search .search-submit {
    display: none;
}

/* VisionIQ Custom Widget Styles */
.visioniq-contact-widget .contact-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.6rem 0;
}
.visioniq-contact-widget .contact-icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: var(--t-badge-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.visioniq-contact-widget .contact-icon svg {
    width: 16px;
    height: 16px;
    color: var(--t-ink);
}
.visioniq-contact-widget .contact-label {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--t-ink-ultra);
    margin-bottom: 0.15rem;
}
.visioniq-contact-widget .contact-value {
    font-size: 13px;
    font-weight: 500;
    color: var(--t-ink);
}

.visioniq-services-widget .service-link {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.55rem 0.6rem;
    border-radius: 12px;
    text-decoration: none;
    transition: all 0.3s ease;
    margin-bottom: 0.25rem;
}
.visioniq-services-widget .service-link:hover {
    background: var(--t-badge-bg);
}
.visioniq-services-widget .service-icon {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: var(--t-badge-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background 0.3s ease;
}
.visioniq-services-widget .service-link:hover .service-icon {
    background: var(--t-section-tint1);
}
.visioniq-services-widget .service-icon svg {
    width: 14px;
    height: 14px;
    color: var(--t-ink);
}
.visioniq-services-widget .service-name {
    font-size: 13px;
    font-weight: 400;
    color: var(--t-ink-soft);
    transition: color 0.3s ease;
}
.visioniq-services-widget .service-link:hover .service-name {
    color: var(--t-ink);
}
.visioniq-services-widget .service-price {
    font-size: 11px;
    color: var(--t-ink-ultra);
    margin-left: auto;
    white-space: nowrap;
}
.visioniq-services-widget .service-link.active-service {
    background: var(--t-section-tint1);
}
.visioniq-services-widget .service-link.active-service .service-name {
    color: var(--t-ink);
    font-weight: 500;
}

.visioniq-cta-widget .cta-inner {
    text-align: center;
    padding: 1.5rem 1rem;
    border-radius: 16px;
    background: linear-gradient(135deg, var(--t-section-tint1) 0%, var(--t-section-tint2) 60%, var(--t-section-tint3) 100%);
}
.visioniq-cta-widget .cta-title {
    font-size: 15px;
    font-weight: 500;
    color: var(--t-ink);
    margin-bottom: 0.35rem;
}
.visioniq-cta-widget .cta-desc {
    font-size: 12px;
    color: var(--t-ink-subtle);
    font-weight: 300;
    margin-bottom: 1rem;
    line-height: 1.5;
}
.visioniq-cta-widget .cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    padding: 0.55rem 1.25rem;
    border-radius: 999px;
    background: var(--t-accent);
    color: white;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-weight: 500;
    text-decoration: none;
    transition: all 0.3s ease;
}
.visioniq-cta-widget .cta-btn:hover {
    background: var(--t-accent-hover);
    transform: translateY(-1px);
    box-shadow: 0 6px 20px rgba(0,0,0,0.12);
}
.visioniq-cta-widget .cta-btn svg {
    width: 14px;
    height: 14px;
}

/* Shortcode Section Wrappers */
.visioniq-shortcode-section {
    margin: 2rem 0;
}
.visioniq-shortcode-section .section-header {
    text-align: center;
    margin-bottom: 2rem;
}

/* ===== Shortcode: no-underline reset (global safety) ===== */
.visioniq-shortcode-services a,
.visioniq-shortcode-section a {
    text-decoration: none !important;
    border-bottom: none !important;
}

/* ===== CRITICAL: Fix body color !important overriding Tailwind utilities ===== */
.text-white { color: #ffffff !important; }
.bg-ink\/10 { background-color: rgba(26,31,46,0.1) !important; }

/* ===== Pricing Shortcode: escape from .prose ===== */
.visioniq-shortcode-precios a,
.visioniq-shortcode-testimonios a,
.visioniq-shortcode-contacto a,
.visioniq-shortcode-sobre-nosotros a,
.visioniq-shortcode-presupuesto a {
    text-decoration: none !important;
    border-bottom: none !important;
}

/* ===== Shortcode contrast on white backgrounds ===== */
.visioniq-shortcode-precios .bg-ink\/10,
.visioniq-shortcode-section .bg-ink\/10,
.visioniq-shortcode-services .bg-ink\/10 {
    background-color: rgba(26,31,46,0.1) !important;
}
.visioniq-shortcode-precios .bg-ink\/5,
.visioniq-shortcode-section .bg-ink\/5,
.visioniq-shortcode-services .bg-ink\/5 {
    background-color: rgba(26,31,46,0.05) !important;
}

/* No-tilt containers: completely static, no tilt hover */
.no-tilt {
    transform: none !important;
}
.no-tilt:hover {
    transform: none !important;
}

/* ===== TIMELINE DATE SEPARATOR ===== */
.timeline-separator {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin: 2rem 0;
    padding: 0 0 0 0;
}
.timeline-separator::before,
.timeline-separator::after {
    content: '';
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--t-divider), transparent);
}
.timeline-separator span {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    color: var(--t-ink-ultra);
    white-space: nowrap;
    background: linear-gradient(135deg, var(--t-gradient-from), var(--t-gradient-mid));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    padding: 0.3rem 1rem;
    border-radius: 999px;
    border: 1px solid var(--t-badge-border);
}
