:root {
    --primary: #1a1a2e;
    --primary-light: #f4f6f9;
    --surface: #ffffff;
    --surface-elevated: #ffffff;
    --accent: #2ab5cc;
    --accent-hover: #23a0b5;
    --accent-glow: rgba(42,181,204,0.1);
    --text-primary: #1a1a2e;
    --text-secondary: #5a5a72;
    --text-tertiary: #8e8ea0;
    --blue-accent: #2ab5cc;
    --border: rgba(0,0,0,0.08);
    --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    --font-serif: 'DM Serif Display', Georgia, serif;
    --transition: 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    --transition-slow: 0.8s cubic-bezier(0.16, 1, 0.3, 1);
    --card-3d: 0 2px 8px rgba(0,0,0,0.06), 0 8px 24px rgba(0,0,0,0.08), 0 16px 48px rgba(0,0,0,0.05);
    --card-3d-hover: 0 8px 16px rgba(0,0,0,0.08), 0 20px 40px rgba(0,0,0,0.12), 0 32px 64px rgba(0,0,0,0.06);
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior: smooth; font-size: 16px; }

body {
    font-family: var(--font-sans);
    background: var(--surface);
    color: var(--text-primary);
    line-height: 1.6;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
}

h1,h2,h3,h4,h5,h6 { color: var(--text-primary); line-height:1.1; font-weight:600; }
a { text-decoration:none; color:inherit; }
ul { list-style:none; }
img { max-width:100%; height:auto; }

.text-center { text-align:center; }
.text-white, .text-white h2, .text-white h3, .text-white h4, .text-white p { color: #fff; }
.bg-light { background: var(--primary-light); }
.bg-dark { background: var(--primary); }
.highlight { color: var(--accent); }
.bold-highlight { font-weight:700; color:var(--accent); font-size:1.3rem; }

/* Logo watermark */
.logo-watermark {
    position:absolute; pointer-events:none; opacity:0.04;
    background:url('images/logo_estetica.png') center/contain no-repeat;
}

/* Premium background effect */
.premium-bg {
    position:relative;
}
.premium-bg::after {
    content:''; position:absolute; inset:0; pointer-events:none;
    background:
        radial-gradient(ellipse 80% 50% at 20% 40%, rgba(42,181,204,0.06) 0%, transparent 60%),
        radial-gradient(ellipse 60% 40% at 80% 60%, rgba(42,181,204,0.04) 0%, transparent 50%);
    z-index:0;
}

/* ─── BUTTONS ─── */
.btn {
    display:inline-block; padding:0.85rem 2rem; border-radius:980px;
    font-weight:500; font-size:0.95rem; cursor:pointer; transition:var(--transition);
    text-align:center; border:none; letter-spacing:0.02em;
    font-family:var(--font-sans);
}
.btn-lg { padding:1.1rem 2.8rem; font-size:1.05rem; font-weight:600; }
.btn-full { width:100%; display:block; }
.btn-primary {
    background: linear-gradient(135deg, var(--accent), #23a0b5); color:#fff; font-weight:600;
    box-shadow: 0 4px 15px rgba(42,181,204,0.3);
}
.btn-primary:hover {
    background: linear-gradient(135deg, #23a0b5, var(--accent)); transform:translateY(-2px);
    box-shadow: 0 8px 25px rgba(42,181,204,0.4);
}
.btn-outline {
    background:transparent; border:1.5px solid rgba(0,0,0,0.12); color:var(--text-primary);
    font-weight:500;
}
.btn-outline:hover {
    background:var(--accent-glow); border-color:var(--accent); color:var(--accent);
    transform:translateY(-2px);
}
.center-btn { text-align:center; }

/* ─── NAVBAR ─── */
.navbar {
    position:fixed; top:0; left:0; width:100%; z-index:1000;
    background:rgba(255,255,255,0.85); backdrop-filter:saturate(180%) blur(20px);
    -webkit-backdrop-filter:saturate(180%) blur(20px);
    border-bottom:1px solid rgba(0,0,0,0.06);
    transition: var(--transition);
}
.navbar.scrolled { background:rgba(255,255,255,0.95); box-shadow:0 2px 20px rgba(0,0,0,0.06); }
.nav-container {
    max-width:1200px; margin:0 auto; padding:0.8rem 1.5rem;
    display:flex; justify-content:space-between; align-items:center;
}
.logo { display:flex; align-items:center; }
.logo-img { height:48px; width:auto; object-fit:contain; }
.nav-menu { display:flex; align-items:center; gap:1.5rem; }
.nav-list { display:flex; align-items:center; gap:1.8rem; }
.nav-link {
    font-size:0.85rem; font-weight:500; color:var(--text-secondary);
    transition:var(--transition); display:flex; align-items:center; gap:0.2rem;
}
.nav-link:hover { color:var(--accent); }
.icon-small { width:14px; height:14px; }
.nav-btn { font-size:0.85rem !important; padding:0.5rem 1.2rem !important; }

/* Dropdown */
.dropdown { position:relative; }
.dropdown-menu {
    position:absolute; top:calc(100% + 8px); left:50%; transform:translateX(-50%) translateY(8px);
    background:rgba(255,255,255,0.98); backdrop-filter:blur(20px);
    min-width:220px; border-radius:12px; box-shadow:0 10px 40px rgba(0,0,0,0.12);
    opacity:0; visibility:hidden; transition:var(--transition); padding:0.5rem;
    border:1px solid var(--border);
}
.dropdown:hover .dropdown-menu { opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.dropdown-menu li a {
    display:block; padding:0.6rem 1rem; color:var(--text-secondary);
    font-size:0.85rem; border-radius:8px; transition:var(--transition);
}
.dropdown-menu li a:hover { background:var(--accent-glow); color:var(--accent); }

.menu-toggle { display:none; cursor:pointer; color:var(--primary); }

/* ─── HERO ─── */
.hero-section {
    min-height:100vh; display:flex; flex-direction:column; justify-content:flex-start;
    align-items:center; text-align:center; padding:7rem 2rem 4rem;
    position:relative; overflow:hidden;
    background: url('/estetica/fondo.png') center 55% / 100% auto no-repeat; /* Path corregido para deploy */
}
.hero-video { display:none; }
.hero-section::before {
    content:''; position:absolute; inset:0; z-index:1;
    background: linear-gradient(180deg,
        rgba(255,255,255,0.92) 0%,
        rgba(255,255,255,0.85) 35%,
        rgba(255,255,255,0.55) 70%,
        rgba(244,246,249,0.7) 100%);
}
.hero-section::after {
    content:''; position:absolute; inset:0; z-index:1;
    background:
        radial-gradient(ellipse 60% 50% at 20% 30%, rgba(42,181,204,0.07) 0%, transparent 60%),
        radial-gradient(ellipse 50% 40% at 80% 70%, rgba(42,181,204,0.05) 0%, transparent 50%);
    pointer-events:none;
}
.hero-content { 
    position:relative; z-index:2; max-width:800px; margin:0 auto;
    margin-top: -3vh; /* Bajado un 10% adicional (de -8vh a -3vh) para mejor encuadre */
}
.hero-img-container { display:none; }

.badge {
    display:inline-block; padding:0.5rem 1.4rem; border-radius:980px;
    background:rgba(42,181,204,0.08); color:var(--accent);
    font-size:0.75rem; font-weight:600; margin-bottom:2rem;
    text-transform:uppercase; letter-spacing:2.5px;
    border:1px solid rgba(42,181,204,0.15);
    backdrop-filter:blur(8px);
}
.hero-title {
    font-family:var(--font-serif); font-size:clamp(2.8rem,6vw,5.5rem);
    font-weight:700; margin-bottom:1.5rem; letter-spacing:-0.02em;
    color:var(--primary);
    text-shadow: 0 1px 2px rgba(0,0,0,0.04);
}
.hero-desc {
    font-size:1.1rem; color:var(--text-secondary); 
    margin-top: 18rem; /* Bajado para quedar debajo del logo central ahora que no hay botones arriba */
    max-width:680px; margin-left:auto; margin-right:auto; line-height:1.7;
    font-weight:400; opacity:0.9;
}
.hero-desc strong { color:var(--accent); -webkit-text-fill-color:var(--accent); font-weight:700; }
.hero-desc em { color:var(--text-tertiary); font-style:italic; opacity:0.85; }
.hero-actions {
    display:flex; gap:1.5rem; justify-content:center;
    margin-top: 14rem; /* Bajado significativamente para que no tape el logo central del fondo */
}

/* ─── SECTIONS ─── */
.section { padding:7rem 2rem; position:relative; }
.section-container { max-width:1100px; margin:0 auto; width:100%; position:relative; z-index:1; }
.section-title {
    font-family:var(--font-serif); font-size:clamp(2rem,4vw,3.5rem);
    margin-bottom:1rem; font-weight:600; letter-spacing:-0.02em;
    display:inline-block; position:relative; color:var(--primary);
}
.section-title::after {
    content:''; position:absolute; bottom:-8px; left:0;
    width:40px; height:3px; background:var(--accent); border-radius:2px;
}
.text-center .section-title::after { left:50%; transform:translateX(-50%); }
.section-subtitle, .section-desc {
    color:var(--text-secondary); font-size:1.05rem; max-width:700px;
    margin:0 auto 3rem; line-height:1.8;
}

/* ─── ABOUT ─── */
.about-section { background:#fff; }
.about-grid {
    display:grid; grid-template-columns:1.2fr 0.8fr; gap:4rem;
    align-items:center; margin-bottom:4rem;
}
.about-text .section-title { margin-bottom:1.5rem; }
.content-img {
    width:100%; height:auto; border-radius:20px; transition:var(--transition-slow);
    object-fit:cover;
}
.content-img:hover { transform:scale(1.02); }

.differential-banner {
    background:linear-gradient(135deg,rgba(42,181,204,0.05),rgba(42,181,204,0.02));
    border:1px solid rgba(42,181,204,0.12); border-radius:20px;
    padding:2.5rem; display:flex; gap:2rem; align-items:flex-start;
    position:relative; overflow:hidden; box-shadow:var(--card-3d);
}
.differential-banner::before {
    content:''; position:absolute; top:-50%; right:-10%;
    width:300px; height:300px;
    background:radial-gradient(circle,rgba(42,181,204,0.06) 0%,transparent 70%);
}
.diff-icon {
    background:var(--accent); width:52px; height:52px; border-radius:14px;
    display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.diff-icon i { color:#000; width:24px; height:24px; }
.diff-content h3 { font-size:1.3rem; margin-bottom:0.75rem; }
.diff-content p { color:var(--text-secondary); font-size:0.95rem; line-height:1.7; }
.diff-content strong { color:var(--accent); }

/* ─── TAMIZAJE ─── */
.tamizaje-section { background:var(--primary-light); }
.tamizaje-header { margin-bottom:1rem; }
.system-subtitle { font-family:var(--font-sans); color:var(--accent); margin-bottom:1.5rem; font-size:1.4rem; }
.tamizaje-grid {
    display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-top:3rem;
}
.tamizaje-card {
    background:#fff;
    padding:2.5rem 2rem; border-radius:20px;
    text-align:center; transition:var(--transition); border:1px solid var(--border);
    box-shadow:var(--card-3d);
}
.tamizaje-card:hover {
    transform:translateY(-8px) scale(1.02); border-color:rgba(42,181,204,0.25);
    box-shadow:var(--card-3d-hover);
}
.tamizaje-icon { width:80px; height:80px; object-fit:contain; margin-bottom:1.5rem; filter:brightness(1.1); }
.tamizaje-card h4 { margin-bottom:0.75rem; font-size:1.1rem; }
.tamizaje-card p { color:var(--text-secondary); font-size:0.9rem; }

.benefits-row { display:flex; justify-content:center; gap:1.2rem; margin-top:3rem; flex-wrap:wrap; }
.benefit-item {
    display:flex; align-items:center; gap:0.6rem; padding:0.75rem 1.3rem;
    background:#fff; border:1px solid rgba(0,0,0,0.06);
    color:var(--text-primary); border-radius:980px; font-weight:500;
    font-size:0.88rem; transition:var(--transition);
    box-shadow: 0 2px 8px rgba(0,0,0,0.04);
}
.benefit-item:hover { border-color:var(--accent); background:var(--accent-glow); transform:translateY(-2px); box-shadow:0 4px 12px rgba(42,181,204,0.15); }
.benefit-item i { color:var(--accent); width:18px; height:18px; }

/* ─── SERVICES ─── */
.services-summary {
    background:#fff; position:relative;
}
.services-summary::before {
    content:''; position:absolute; inset:0;
    background:radial-gradient(ellipse at 50% 0%, rgba(42,181,204,0.04) 0%, transparent 60%);
    pointer-events:none;
}
.services-summary .section-container { position:relative; z-index:2; }

.services-grid {
    display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
    gap:1.5rem; margin-top:3rem;
}
.service-card {
    background:#fff;
    padding:2.2rem; border-radius:16px;
    transition:var(--transition); text-align:left;
    border:1px solid var(--border); box-shadow:var(--card-3d);
}
.service-card:hover {
    transform:translateY(-6px) scale(1.02); border-color:rgba(42,181,204,0.25);
    background:#fff; box-shadow:var(--card-3d-hover);
}
.service-icon {
    width:44px; height:44px; background:var(--accent-glow);
    border-radius:12px; display:flex; align-items:center;
    justify-content:center; margin-bottom:1.2rem; color:var(--accent);
}
.service-card h3 { margin-bottom:0.6rem; font-size:1.15rem; }
.service-card p { color:var(--text-secondary); font-size:0.9rem; line-height:1.6; }

/* ─── SISTEMA LABORAL ─── */
.system-laboral { background:var(--primary-light); padding:8rem 2rem; }
.star-badge {
    display:inline-block; padding:0.4rem 1.2rem;
    background:linear-gradient(135deg,var(--accent),#23a0b5);
    color:#fff; border-radius:980px; font-size:0.8rem;
    font-weight:700; margin-bottom:1rem; text-transform:uppercase; letter-spacing:1px;
}
.phases-grid {
    display:grid; grid-template-columns:repeat(5,1fr); gap:1.2rem; margin-top:3rem;
}
.phase-item {
    text-align:center; padding:2rem 1rem; background:#fff;
    border-radius:16px; transition:var(--transition); border:1px solid var(--border);
    box-shadow:var(--card-3d);
}
.phase-item:hover { border-color:var(--accent); transform:translateY(-4px); }
.phase-number {
    width:44px; height:44px; background:var(--accent); color:#fff;
    border-radius:12px; display:flex; align-items:center; justify-content:center;
    font-weight:700; font-size:1.1rem; margin:0 auto 1rem;
}
.phase-item h4 { font-size:1rem; margin-bottom:0.5rem; }
.phase-item p { color:var(--text-secondary); font-size:0.85rem; }

/* ─── PLANS ─── */
.plans-section { background:#fff; padding:8rem 2rem; }
.plans-grid {
    display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-top:3rem;
}
.plan-card {
    background:#fff;
    border-radius:20px; padding:2.5rem 2rem;
    border:1px solid var(--border); transition:var(--transition);
    display:flex; flex-direction:column; position:relative;
    box-shadow:var(--card-3d);
}
.plan-card:hover { border-color:rgba(42,181,204,0.25); transform:translateY(-6px); box-shadow:var(--card-3d-hover); }
.plan-card.popular {
    border:2px solid var(--accent); transform:none;
    box-shadow:0 0 40px rgba(42,181,204,0.15), var(--card-3d);
}
.plan-card.popular:hover { transform:translateY(-6px); }
.plan-card.premium {
    background:linear-gradient(145deg, #f0fafc, #e8f7fa);
    border-color:rgba(42,181,204,0.2);
}
.plan-card.premium h3, .plan-card.premium p { color:var(--text-primary); }

.popular-badge {
    position:absolute; top:-14px; left:50%; transform:translateX(-50%);
    background:var(--accent); color:#fff; padding:0.4rem 1.5rem;
    border-radius:980px; font-size:0.8rem; font-weight:600;
}
.plan-header {
    border-bottom:1px solid var(--border); padding-bottom:1.5rem; margin-bottom:1.5rem;
}
.plan-header h3 { font-size:1.3rem; margin-bottom:0.5rem; }
.plan-header p { color:var(--text-secondary); font-size:0.9rem; }
.plan-price {
    font-size:2.8rem; font-weight:700; font-family:var(--font-serif);
    color:var(--primary); margin:0.8rem 0;
}
.plan-card.premium .plan-price {
    background:linear-gradient(135deg,var(--accent),#23a0b5);
    -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}
.plan-price span { font-size:1rem; color:var(--text-tertiary); font-family:var(--font-sans); -webkit-text-fill-color:var(--text-tertiary); }

.plan-features { text-align:left; flex-grow:1; margin-bottom:2rem; }
.plan-features li { display:flex; align-items:flex-start; gap:0.75rem; margin-bottom:0.8rem; color:var(--text-secondary); font-size:0.95rem; }
.plan-features li i { color:var(--accent); flex-shrink:0; width:18px; height:18px; margin-top:2px; }
.plan-footer .btn { border-radius:12px; }

.additional-service {
    margin-top:3rem; background:var(--primary-light); padding:2rem;
    border-radius:16px; display:flex; justify-content:space-between;
    align-items:center; border:1px solid var(--border); text-align:left;
}
.additional-service h3 { font-size:1.1rem; margin-bottom:0.3rem; }
.additional-service .small { color:var(--text-tertiary); font-size:0.85rem; }
.additional-service h3 i { color:var(--accent); }
.additional-content p { color:var(--text-secondary); }

/* ─── PARTNERS ─── */
.partners-section {
    background:var(--primary-light); padding:7rem 2rem;
    display:flex; max-width:1100px; margin:0 auto;
    gap:4rem; align-items:center;
}
.partners-content { flex:1.2; }
.partners-content .section-title { margin-bottom:1.5rem; }
.partners-subtitle { font-size:1.3rem; margin-bottom:1rem; color:var(--text-primary); }
.partners-box {
    background:#fff; padding:2rem; border-radius:16px;
    margin:2rem 0; border-left:3px solid var(--accent);
}
.partners-box h4 { margin-bottom:0.75rem; }
.partners-box p { color:var(--text-secondary); font-size:0.95rem; }
.highlight-text { font-size:1.2rem; font-weight:700; color:var(--accent); margin:0.75rem 0; }
.partners-section .content-img { flex:0.8; max-width:350px; border-radius:20px; box-shadow:none; }

/* ─── CONTACT ─── */
.contact-section { background:var(--primary); padding:7rem 2rem; }
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:4rem; max-width:1100px; margin:0 auto; }
.contact-desc { color:var(--text-secondary); font-size:1.1rem; margin-bottom:2.5rem; line-height:1.7; }
.contact-item { display:flex; gap:1.2rem; margin-bottom:1.8rem; }
.contact-item i { color:var(--accent); width:22px; height:22px; margin-top:3px; flex-shrink:0; }
.contact-item h4 { font-size:0.95rem; margin-bottom:0.25rem; }
.contact-item p { color:var(--text-secondary); font-size:0.9rem; }

.team-section {
    background:rgba(255,255,255,0.06); padding:2.5rem; border-radius:20px;
    border:1px solid rgba(255,255,255,0.1);
}
.team-title { margin-bottom:2rem; font-size:1.3rem; }
.team-member {
    display:flex; align-items:center; gap:1.2rem; margin-bottom:1.2rem;
    padding-bottom:1.2rem; border-bottom:1px solid rgba(255,255,255,0.1);
}
.team-member:last-child { margin-bottom:0; padding-bottom:0; border-bottom:none; }
.member-avatar {
    width:56px; height:56px; background:var(--accent-glow);
    border-radius:50%; display:flex; align-items:center;
    justify-content:center; color:var(--accent); flex-shrink:0;
    overflow:hidden; border:2px solid var(--accent);
}
.member-avatar img {
    width:100%; height:100%; object-fit:cover;
}
.member-info h4 { color:#fff; margin-bottom:0.15rem; font-size:0.95rem; }
.member-info .role { color:var(--accent); font-size:0.85rem; font-weight:500; }
.member-info .specialty { font-size:0.8rem; color:rgba(255,255,255,0.6); }

/* ─── FOOTER ─── */
.footer { background:var(--primary); color:rgba(255,255,255,0.6); font-size:0.85rem; border-top:1px solid rgba(255,255,255,0.08); }
.footer-container {
    max-width:1100px; margin:0 auto; padding:3.5rem 2rem 2rem;
    display:grid; grid-template-columns:2fr 1fr 1.5fr; gap:3rem;
}
.footer-brand p { margin-top:1rem; line-height:1.7; color:rgba(255,255,255,0.6); }
.footer-logo { height:40px; width:auto; object-fit:contain; filter:brightness(1.5); }
.footer-links { display:flex; flex-direction:column; gap:0.6rem; }
.footer-links h4, .footer-contact-info h4 { color:#fff; margin-bottom:0.5rem; font-size:1rem; }
.footer-links a { color:rgba(255,255,255,0.6); transition:var(--transition); font-size:0.85rem; }
.footer-links a:hover { color:#fff; }
.footer-contact-info p { margin-bottom:0.4rem; }
.footer-bottom { text-align:center; padding:1.2rem 2rem; border-top:1px solid rgba(255,255,255,0.08); color:rgba(255,255,255,0.5); font-size:0.8rem; }

/* ─── WHATSAPP ─── */
.whatsapp-float {
    position:fixed; bottom:2rem; right:2rem; z-index:999;
    width:56px; height:56px; background:#25D366; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 4px 20px rgba(37,211,102,0.4); transition:var(--transition);
}
.whatsapp-float:hover { transform:scale(1.1); box-shadow:0 6px 30px rgba(37,211,102,0.5); }
.wa-icon { color:#fff; width:28px; height:28px; }

/* ─── ANIMATIONS ─── */
.fade-up { opacity:0; transform:translateY(40px); transition:opacity 0.8s ease, transform 0.8s ease; }
.fade-right { opacity:0; transform:translateX(-40px); transition:opacity 0.8s ease, transform 0.8s ease; }
.fade-left { opacity:0; transform:translateX(40px); transition:opacity 0.8s ease, transform 0.8s ease; }
.fade-up.visible, .fade-right.visible, .fade-left.visible { opacity:1; transform:translate(0); }

/* ─── RESPONSIVE ─── */
@media (max-width:1024px) {
    .about-grid, .contact-grid, .plans-grid { grid-template-columns:1fr; }
    .partners-section { flex-direction:column; padding:5rem 2rem; }
    .phases-grid { grid-template-columns:repeat(3,1fr); }
    .footer-container { grid-template-columns:1fr; }
}
@media (max-width:768px) {
    .nav-menu { 
        position:fixed; top:0; right:-100%; width:80%; max-width:320px; height:100vh;
        background:rgba(255,255,255,0.98); backdrop-filter:blur(20px);
        flex-direction:column; justify-content:center; padding:2rem;
        transition:var(--transition); gap:2rem; box-shadow:-10px 0 40px rgba(0,0,0,0.1);
    }
    .nav-menu.active { right:0; }
    .nav-list { flex-direction:column; gap:1.5rem; }
    .nav-link { font-size:1.1rem; color:var(--text-primary); }
    .menu-toggle { display:block; }
    .dropdown-menu { position:static; opacity:1; visibility:visible; transform:none; background:transparent; box-shadow:none; border:none; min-width:auto; padding:0.5rem 0 0 1rem; }
    .hero-section { 
        padding: 6rem 1.5rem 3rem; 
        min-height: auto; 
        background-size: cover; 
        background-position: center 40%;
    }
    .hero-content { margin-top: 0; }
    .hero-title { font-size: 2.2rem; margin-bottom: 1rem; line-height: 1.2; }
    .hero-desc { font-size: 1rem; margin-top: 3rem; } /* En móvil no bajamos tanto el texto */
    
    .about-actions { justify-content: center; width: 100%; }
    .about-actions .btn { flex: 1; min-width: 140px; }

    .section { padding: 4rem 1.2rem; }
    .section-title { font-size: 1.8rem; }
    
    .tamizaje-grid { grid-template-columns: repeat(2, 1fr); gap: 0.8rem; }
    .tamizaje-card { padding: 1.5rem 1rem; }
    .tamizaje-card:last-child { grid-column: span 2; max-width: 280px; margin: 0 auto; }
    .tamizaje-icon { width: 60px; height: 60px; margin-bottom: 1rem; }

    .services-grid { grid-template-columns: repeat(2, 1fr); gap: 0.8rem; }
    .service-card { padding: 1.2rem; }
    .service-card h3 { font-size: 0.9rem; }
    .service-card p { font-size: 0.75rem; -webkit-line-clamp: 2; }

    .phases-grid { grid-template-columns: repeat(2, 1fr); gap: 0.8rem; }
    .phase-item { padding: 1rem 0.5rem; }
    .phase-item h4 { font-size: 0.85rem; }
    .phase-item p { font-size: 0.75rem; }

    .plans-grid { grid-template-columns: 1fr; gap: 1.5rem; }
    .plan-card { padding: 1.8rem 1.5rem; }
    
    .additional-service { padding: 1.5rem; }
    .benefits-row { gap: 0.4rem; margin-top: 2rem; }
    .benefit-item { font-size: 0.65rem; padding: 0.4rem 0.6rem; }
    
    .contact-grid { gap: 2.5rem; }
    .team-section { padding: 1.2rem; }
    .partners-section .content-img { max-width: 180px; margin: 0 auto; }
}
/* ─── TEAM CAROUSEL 3D ─── */
.team-carousel-section { background:#fff; perspective: 1000px; }
.carousel-3d-container {
    position:relative; width:100%; height:500px; margin:0 auto;
    display:flex; align-items:center; justify-content:center;
}
.carousel-3d-wrapper {
    position:relative; width:100%; height:100%;
    transform-style: preserve-3d;
}
.carousel-3d-item {
    position:absolute; width:350px; height:450px; left:50%; top:50%;
    transform: translate(-50%, -50%) scale(0.6) translateX(0);
    transition: transform 0.6s cubic-bezier(0.23, 1, 0.32, 1), opacity 0.6s, z-index 0.6s;
    opacity:0; z-index:0; border-radius:20px; overflow:hidden;
    box-shadow: 0 10px 30px rgba(0,0,0,0.15);
    cursor:pointer;
}
.carousel-3d-item img { width:100%; height:100%; object-fit:cover; transition: transform 0.5s ease; }
.carousel-3d-item:hover img { transform: scale(1.05); }

.carousel-caption {
    position:absolute; bottom:0; left:0; width:100%;
    padding:2rem 1.5rem 1.5rem;
    background: linear-gradient(transparent, rgba(0,0,0,0.85));
    color:#fff; text-align:left;
    opacity:0; transition: opacity 0.5s ease;
    pointer-events:none;
}
.carousel-3d-item.active .carousel-caption { opacity:1; }
.carousel-caption h4 { font-size:1.3rem; margin-bottom:0.25rem; font-family:var(--font-serif); color:var(--accent); text-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.carousel-caption p { font-size:1rem; color:#fff; font-weight:500; opacity:0.95; }

.carousel-3d-item.active {
    opacity:1; z-index:10;
    transform: translate(-50%, -50%) scale(1) translateX(0);
}
.carousel-3d-item.prev {
    opacity:0.7; z-index:5;
    transform: translate(-50%, -50%) scale(0.8) translateX(-250px) rotateY(25deg);
}
.carousel-3d-item.next {
    opacity:0.7; z-index:5;
    transform: translate(-50%, -50%) scale(0.8) translateX(250px) rotateY(-25deg);
}
.carousel-3d-item.hidden-prev {
    opacity:0; z-index:1;
    transform: translate(-50%, -50%) scale(0.6) translateX(-400px);
}
.carousel-3d-item.hidden-next {
    opacity:0; z-index:1;
    transform: translate(-50%, -50%) scale(0.6) translateX(400px);
}

.carousel-3d-controls {
    position:absolute; width:100%; bottom:0; left:0;
    display:flex; justify-content:center; gap:2rem; z-index:20;
}
.carousel-control {
    width:50px; height:50px; border-radius:50%; border:1px solid var(--border);
    background:#fff; color:var(--text-primary); cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    transition:var(--transition); box-shadow:var(--card-3d);
}
.carousel-control:hover { background:var(--accent); color:#fff; border-color:var(--accent); transform:scale(1.1); }

@media (max-width: 768px) {
    .carousel-3d-container { height: 400px; }
    .carousel-3d-item { width: 260px; height: 350px; }
    .carousel-3d-item.prev { transform: translate(-50%, -50%) scale(0.7) translateX(-130px) rotateY(15deg); }
    .carousel-3d-item.next { transform: translate(-50%, -50%) scale(0.7) translateX(130px) rotateY(-15deg); }
    .carousel-3d-item.hidden-prev { transform: translate(-50%, -50%) scale(0.5) translateX(-200px); }
    .carousel-3d-item.hidden-next { transform: translate(-50%, -50%) scale(0.5) translateX(200px); }
    .carousel-caption h4 { font-size: 1.1rem; }
    .carousel-caption p { font-size: 0.85rem; }
}

/* Fix cache-busting for team photos */
.content-img { max-width: 100%; display: block; margin: 0 auto; }
.about-grid, .partners-section .section-container { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; }
@media (max-width: 992px) {
    .about-grid, .partners-section .section-container { grid-template-columns: 1fr; gap: 2rem; }
    .about-image, .partners-image { order: -1; }
}
