/* ══════════════════════════════════════════════════════════════════════════════
   PQR PSICOLOGÍA — CLÍNICA PARTICULAR
   taste-skill → DESIGN_VARIANCE=7  MOTION_INTENSITY=5  VISUAL_DENSITY=4
   Aesthetic: Wellness Contemporáneo — confiable, moderno, humano
   Fonts: Lora (headings serif) + Outfit (body) — no Inter, no slop
   Palette: Teal #00ACC1 · Acento coral #FF6B35 como toque premium inesperado
   ══════════════════════════════════════════════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,600;0,700;1,600;1,700&family=Outfit:wght@300;400;500;600;700;800&display=swap');

:root {
  --teal-900:#003D47;--teal-800:#005F6B;--teal-700:#007E91;--teal-600:#00ACC1;
  --teal-400:#26C6DA;--teal-100:#E0F7FA;--teal-50:#F0FAFB;
  --coral:#FF6B35;--coral-dark:#E65100;--coral-soft:#FFF0EB;
  --ink:#0D1F25;--ink-2:#1E3A42;--ink-3:#4A6670;--ink-4:#82A0A8;
  --white:#FFFFFF;--surface:#FAFEFF;--surface-2:#F0FAFB;--border:#D4EDF1;
  --font-display:'Lora',Georgia,serif;
  --font-body:'Outfit',system-ui,sans-serif;
  --r-xs:6px;--r-sm:10px;--r:16px;--r-lg:24px;--r-xl:40px;
  --s-xs:0 1px 4px rgba(0,120,145,.04);--s-sm:0 4px 16px rgba(0,120,145,.06);
  --s:0 8px 32px rgba(0,120,145,.07);--s-lg:0 24px 60px rgba(0,120,145,.09);
  --ease:cubic-bezier(0.16,1,0.3,1);--t:0.38s;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px}
body{font-family:var(--font-body);color:var(--ink-2);background:var(--white);line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}a{text-decoration:none;color:inherit}

.scroll-progress{position:fixed;top:0;left:0;height:2px;background:linear-gradient(90deg,var(--teal-600),var(--coral));z-index:9999;width:0;transition:width .08s linear}

.navbar{background:rgba(255,255,255,.95);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid transparent;padding:.9rem 0;position:sticky;top:0;z-index:100;transition:border-color var(--t) var(--ease),box-shadow var(--t) var(--ease)}
.navbar.scrolled{border-bottom-color:var(--border);box-shadow:0 2px 20px rgba(0,120,145,.06)}
.navbar-brand{font-family:var(--font-body);font-size:1.28rem;font-weight:800;color:var(--teal-800);letter-spacing:-.03em}
.navbar-brand span{color:var(--teal-600)}
.nav-link{font-size:.875rem;font-weight:500;color:var(--ink-3);padding:.4rem .85rem!important;border-radius:var(--r-sm);transition:color .2s,background .2s}
.nav-link:hover,.nav-link.active{color:var(--teal-800);background:var(--teal-100)}
.btn-nav{background:var(--teal-600)!important;color:white!important;border-radius:var(--r-xl)!important;padding:.46rem 1.3rem!important;font-weight:600!important;font-size:.875rem!important;transition:background var(--t) var(--ease),transform .2s,box-shadow .2s!important}
.btn-nav:hover{background:var(--teal-700)!important;transform:translateY(-1px);box-shadow:0 6px 18px rgba(0,172,193,.28)!important}

/* BUTTONS */
.btn-primary-custom{display:inline-flex;align-items:center;gap:.5rem;background:var(--teal-600);color:white;padding:.75rem 1.8rem;border-radius:var(--r-xl);font-weight:700;font-size:.9rem;font-family:var(--font-body);border:none;cursor:pointer;letter-spacing:.01em;transition:background var(--t) var(--ease),transform .22s var(--ease),box-shadow .22s;box-shadow:0 4px 16px rgba(0,172,193,.22)}
.btn-primary-custom:hover{background:var(--teal-700);transform:translateY(-2px);box-shadow:0 10px 28px rgba(0,172,193,.3);color:white}
.btn-primary-custom:active{transform:translateY(0)}
.btn-coral{display:inline-flex;align-items:center;gap:.5rem;background:var(--coral);color:white;padding:.75rem 1.8rem;border-radius:var(--r-xl);font-weight:700;font-size:.9rem;font-family:var(--font-body);border:none;cursor:pointer;transition:background var(--t) var(--ease),transform .22s var(--ease),box-shadow .22s;box-shadow:0 4px 18px rgba(255,107,53,.3)}
.btn-coral:hover{background:var(--coral-dark);transform:translateY(-2px);box-shadow:0 10px 30px rgba(255,107,53,.38);color:white}
.btn-coral:active{transform:translateY(0)}
.btn-ghost-light{display:inline-flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.08);border:1.5px solid rgba(255,255,255,.38);color:rgba(255,255,255,.9);padding:.73rem 1.75rem;border-radius:var(--r-xl);font-weight:600;font-size:.9rem;font-family:var(--font-body);cursor:pointer;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);transition:background var(--t) var(--ease),border-color var(--t) var(--ease),transform .22s var(--ease),box-shadow .22s}
.btn-ghost-light:hover{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.68);color:white;transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.18)}
.btn-ghost-light:active{transform:translateY(0)}
.btn-outline-custom{display:inline-flex;align-items:center;gap:.5rem;background:transparent;color:var(--teal-700);padding:.72rem 1.75rem;border-radius:var(--r-xl);font-weight:600;font-size:.9rem;font-family:var(--font-body);border:1.5px solid var(--teal-700);cursor:pointer;transition:all var(--t) var(--ease)}
.btn-outline-custom:hover{background:var(--teal-700);color:white;transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,172,193,.2)}

/* HERO */
.hero{background:linear-gradient(150deg,var(--teal-900) 0%,var(--teal-800) 42%,var(--teal-600) 100%);min-height:100dvh;display:flex;align-items:center;position:relative;overflow:hidden}
.hero-bg-pattern{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.032) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.032) 1px,transparent 1px);background-size:52px 52px}
.hero::before{content:'';position:absolute;width:400px;height:400px;border-radius:50%;background:radial-gradient(circle,rgba(255,107,53,.1) 0%,transparent 65%);top:-60px;right:8%;pointer-events:none}
.hero::after{content:'';position:absolute;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(0,172,193,.15) 0%,transparent 60%);bottom:-100px;left:-60px;pointer-events:none}
.hero-eyebrow{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#B2EBF2;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);padding:.28rem 1rem;border-radius:var(--r-xl);margin-bottom:1rem}
.hero h1{font-family:var(--font-display);font-size:clamp(2.1rem,5.5vw,3.8rem);color:white;line-height:1.1;letter-spacing:-.025em;margin:0 0 1.3rem;max-width:600px}
.hero h1 em{font-style:italic;color:#B2EBF2}
.hero-subtitle{color:rgba(255,255,255,.78);font-size:1.05rem;max-width:460px;line-height:1.78;margin-bottom:2.2rem;font-weight:400}
.hero-cta-row{display:flex;flex-wrap:wrap;gap:.85rem;align-items:center}
.hero-trust-row{display:flex;flex-wrap:wrap;gap:1.5rem;margin-top:2.2rem;padding-top:2rem;border-top:1px solid rgba(255,255,255,.1)}
.hero-trust-item{display:flex;align-items:center;gap:.45rem;color:rgba(255,255,255,.62);font-size:.82rem;font-weight:500}
.hero-trust-item i{color:#B2EBF2;font-size:.9rem}

/* HERO CARD */
.hero-right-card{background:white;border-radius:var(--r-lg);padding:2rem;box-shadow:0 28px 70px rgba(0,0,0,.22);animation:cardIn .75s var(--ease) .2s both;position:relative}
.hero-right-card::before{content:'';position:absolute;top:0;left:2rem;right:2rem;height:3px;background:linear-gradient(90deg,var(--teal-600),var(--coral));border-radius:0 0 3px 3px}
@keyframes cardIn{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
.hero-rc-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;padding-bottom:1.2rem;border-bottom:1px solid var(--border)}
.hero-rc-avatar{width:50px;height:50px;background:var(--teal-100);border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--teal-600);font-size:1.4rem}
.hero-rc-title{font-weight:700;font-size:.97rem;color:var(--ink)}
.hero-rc-sub{color:var(--ink-4);font-size:.8rem}
.hero-steps{display:flex;flex-direction:column;gap:.75rem}
.hero-step{display:flex;align-items:center;gap:.85rem;font-size:.875rem;color:var(--ink-3)}
.step-num{width:28px;height:28px;background:var(--teal-600);color:white;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;flex-shrink:0}
.hero-rc-stats{display:flex;justify-content:space-around;margin-top:1.4rem;padding-top:1.2rem;border-top:1px solid var(--border)}
.hrc-stat{text-align:center}
.hrc-stat strong{display:block;font-size:1.2rem;font-weight:800;color:var(--ink)}
.hrc-stat span{font-size:.73rem;color:var(--ink-4)}

/* STATS */
.stats-strip{background:var(--teal-700);padding:24px 0}
.stat-num{font-family:var(--font-display);font-size:2.1rem;font-weight:700;color:white;line-height:1}
.stat-label{font-size:.78rem;color:rgba(255,255,255,.68);margin-top:.25rem}

/* SECTIONS */
.section{padding:96px 0}.section-alt{background:var(--surface)}
.section-dark{background:linear-gradient(155deg,var(--teal-900) 0%,var(--teal-800) 100%);padding:96px 0;position:relative;overflow:hidden}
.section-dark::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:48px 48px;pointer-events:none}
.tag{display:inline-flex;align-items:center;gap:.35rem;background:var(--teal-100);color:var(--teal-800);font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:.28rem .85rem;border-radius:var(--r-xl);margin-bottom:.85rem}
.tag-light{background:rgba(255,255,255,.1);color:rgba(255,255,255,.78);border:1px solid rgba(255,255,255,.15)}
.section-title{font-family:var(--font-display);font-size:clamp(1.8rem,3.5vw,2.5rem);color:var(--ink);line-height:1.15;letter-spacing:-.025em;margin-bottom:.55rem}
.section-title-light{font-family:var(--font-display);font-size:clamp(1.8rem,3.5vw,2.5rem);color:white;line-height:1.15;letter-spacing:-.025em;margin-bottom:.55rem}
.section-subtitle{color:var(--ink-3);font-size:.97rem;max-width:520px}
.section-subtitle-light{color:rgba(255,255,255,.68);font-size:.97rem;max-width:520px}
.title-accent{display:block;width:44px;height:3px;background:var(--coral);border-radius:2px;margin-bottom:1.2rem}

/* SERVICE CARDS */
.service-card{background:white;border:1px solid var(--border);border-radius:var(--r);padding:1.8rem;height:100%;transition:transform var(--t) var(--ease),box-shadow var(--t) var(--ease),border-color var(--t);position:relative}
.service-card::before{content:'';position:absolute;top:0;left:1.8rem;right:1.8rem;height:2px;background:linear-gradient(90deg,var(--teal-600),var(--coral));border-radius:0 0 2px 2px;opacity:0;transition:opacity var(--t) var(--ease)}
.service-card:hover{transform:translateY(-5px);box-shadow:var(--s);border-color:var(--teal-100)}
.service-card:hover::before{opacity:1}
.service-icon{width:44px;height:44px;background:var(--teal-100);border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;color:var(--teal-700);font-size:1.2rem;margin-bottom:1rem;transition:background var(--t) var(--ease),color var(--t)}
.service-card:hover .service-icon{background:var(--teal-700);color:white}
.service-card h5{font-weight:700;font-size:.97rem;color:var(--ink);margin-bottom:.4rem}
.service-card p{color:var(--ink-3);font-size:.875rem;line-height:1.68}
.price-badge{display:inline-block;background:var(--teal-100);color:var(--teal-800);font-size:.76rem;font-weight:700;padding:.18rem .65rem;border-radius:var(--r-xl);margin-top:.75rem}
.service-full-card{background:white;border:1px solid var(--border);border-radius:var(--r);padding:2rem;height:100%;transition:all var(--t) var(--ease)}
.service-full-card:hover{box-shadow:var(--s);border-color:var(--teal-100);transform:translateY(-4px)}
.service-full-card h4{font-weight:700;font-size:1.05rem;color:var(--ink);margin-bottom:.45rem}
.service-full-card p{color:var(--ink-3);font-size:.88rem;line-height:1.68}
.price-pill{display:inline-block;background:var(--teal-100);color:var(--teal-800);font-weight:700;font-size:.8rem;padding:.2rem .75rem;border-radius:var(--r-xl);margin-top:.75rem}
.duration-pill{display:inline-block;background:var(--surface-2);color:var(--ink-4);font-size:.76rem;padding:.15rem .65rem;border-radius:var(--r-xl);margin-top:.35rem;margin-left:.3rem}

/* PSYCH CARDS */
.psych-card{background:white;border:1px solid var(--border);border-radius:var(--r);overflow:hidden;transition:all var(--t) var(--ease);text-align:center;height:100%}
.psych-card:hover{box-shadow:var(--s);transform:translateY(-5px);border-color:var(--teal-100)}
.psych-avatar{overflow:hidden;width:68px;height:68px;background:linear-gradient(135deg,var(--teal-600) 0%,var(--teal-800) 100%);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.2rem;font-weight:700;color:white;margin:1.6rem auto .85rem;box-shadow:0 6px 20px rgba(0,172,193,.22)}
.psych-body{padding:0 1.3rem 1.6rem}
.psych-body h5{font-weight:700;font-size:.95rem;color:var(--ink);margin-bottom:.2rem}
.psych-specialty{color:var(--teal-700);font-size:.8rem;font-weight:600;margin-bottom:.55rem}
.psych-bio{color:var(--ink-3);font-size:.83rem;line-height:1.6;margin-bottom:1rem}

.psych-profile-card{background:white;border:1px solid var(--border);border-radius:var(--r);overflow:hidden;transition:all var(--t) var(--ease);height:100%}
.psych-profile-card:hover{box-shadow:var(--s-lg);transform:translateY(-5px);border-color:var(--teal-100)}
.ppc-header{background:linear-gradient(135deg,var(--teal-600) 0%,var(--teal-800) 100%);padding:1.5rem;display:flex;align-items:flex-end;justify-content:space-between;position:relative}
.ppc-header::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--coral),transparent)}
.ppc-avatar{overflow:hidden;width:68px;height:68px;background:rgba(255,255,255,.15);border:2px solid rgba(255,255,255,.25);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:700;color:white}
.ppc-badge{background:white;color:var(--teal-800);font-size:.68rem;padding:.2rem .65rem;border-radius:var(--r-xl);font-weight:700}
.ppc-body{padding:1.2rem}
.ppc-body h4{font-weight:700;font-size:.97rem;color:var(--ink);margin-bottom:.2rem}
.ppc-specialty{color:var(--teal-700);font-size:.81rem;font-weight:600;margin-bottom:.55rem}
.ppc-bio{color:var(--ink-3);font-size:.83rem;line-height:1.6;margin-bottom:.8rem}
.ppc-video-badge{display:inline-flex;align-items:center;gap:.3rem;background:var(--coral-soft);color:var(--coral-dark);font-size:.73rem;padding:.18rem .6rem;border-radius:var(--r-xl);margin-bottom:.75rem}
.ppc-actions{display:flex;gap:.5rem;flex-wrap:wrap}
.psych-profile-header{background:linear-gradient(155deg,var(--teal-900),var(--teal-600));padding:64px 0 44px;color:white}
.psych-big-avatar{overflow:hidden;width:96px;height:96px;background:rgba(255,255,255,.12);border:2px solid rgba(255,255,255,.22);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700;color:white;margin-bottom:1rem}
.psych-full-card{background:white;border-radius:var(--r);padding:1.8rem;box-shadow:var(--s-xs);border:1px solid var(--border)}
.tag-list{display:flex;flex-wrap:wrap;gap:.4rem;margin:.9rem 0}
.tag-list span{background:var(--teal-100);color:var(--teal-800);font-size:.76rem;padding:.2rem .7rem;border-radius:var(--r-xl);font-weight:600}

/* EVENTS */
.event-card{background:white;border:1px solid var(--border);border-radius:var(--r);overflow:hidden;transition:all var(--t) var(--ease);height:100%;display:flex;flex-direction:column}
.event-card:hover{box-shadow:var(--s);transform:translateY(-4px);border-color:var(--teal-100)}
.event-img{width:100%;height:160px;object-fit:cover}
.event-img-placeholder{width:100%;height:160px;background:linear-gradient(135deg,var(--teal-600),var(--teal-800));display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.5);font-size:2.2rem}
.event-header{background:var(--surface);padding:.9rem 1.2rem .5rem}
.event-type{display:inline-block;background:var(--teal-600);color:white;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;padding:.18rem .65rem;border-radius:var(--r-xl);margin-bottom:.45rem}
.event-header h5{font-weight:700;font-size:.94rem;color:var(--ink);line-height:1.3}
.event-body{padding:.8rem 1.2rem;flex:1}
.event-meta{display:flex;align-items:center;gap:.45rem;font-size:.8rem;color:var(--ink-3);margin-bottom:.28rem}
.event-meta i{color:var(--teal-600);flex-shrink:0;font-size:.85rem}
.event-price{display:inline-block;font-weight:700;font-size:.78rem;padding:.18rem .65rem;border-radius:var(--r-xl);background:var(--teal-100);color:var(--teal-800);margin-top:.4rem}
.event-footer{padding:.75rem 1.2rem 1.2rem}

/* BOOKING */
.booking-form{background:white;border:1px solid var(--border);border-radius:var(--r-lg);padding:2rem;box-shadow:var(--s-xs)}
.form-control{border:1.5px solid var(--border);border-radius:var(--r-sm);padding:.65rem 1rem;font-size:.9rem;font-family:var(--font-body);color:var(--ink-2);background:white;transition:border-color .2s,box-shadow .2s;width:100%}
.form-control:focus{border-color:var(--teal-600);box-shadow:0 0 0 3px rgba(0,172,193,.1);outline:none}
.form-select{border:1.5px solid var(--border);border-radius:var(--r-sm);padding:.65rem 1rem;font-family:var(--font-body);font-size:.9rem;color:var(--ink-2);width:100%}
.form-select:focus{border-color:var(--teal-600);box-shadow:0 0 0 3px rgba(0,172,193,.1);outline:none}
.form-label{font-weight:600;font-size:.84rem;color:var(--ink);margin-bottom:.35rem;display:block}
.booking-steps{display:flex;margin-bottom:2rem}
.bstep{flex:1;text-align:center;padding:.55rem .3rem;font-size:.76rem;color:var(--ink-4);border-bottom:2.5px solid var(--border);transition:all .25s}
.bstep.active{color:var(--teal-700);border-bottom-color:var(--teal-600);font-weight:600}
.bstep.done{color:#2E7D32;border-bottom-color:#43A047}
.bstep .step-icon{font-size:1rem;display:block;margin-bottom:.18rem}

/* CALENDAR */
.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}
.cal-nav{background:white;border:1.5px solid var(--border);width:36px;height:36px;border-radius:var(--r-sm);cursor:pointer;font-size:1.05rem;display:flex;align-items:center;justify-content:center;transition:all .2s var(--ease);color:var(--ink-3)}
.cal-nav:hover{background:var(--teal-100);border-color:var(--teal-600);color:var(--teal-700)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.cal-dow{text-align:center;font-size:.68rem;font-weight:700;color:var(--ink-4);padding:.3rem 0;text-transform:uppercase;letter-spacing:.06em}
.cal-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:var(--r-sm);font-size:.84rem;cursor:default;transition:all .18s var(--ease);color:#BBDFE4;font-weight:500}
.cal-day.available{cursor:pointer;background:var(--teal-100);color:var(--teal-700);font-weight:700}
.cal-day.available:hover{background:var(--teal-600);color:white;transform:scale(1.1)}
.cal-day.selected-day{background:var(--teal-600)!important;color:white!important;box-shadow:0 4px 14px rgba(0,172,193,.28)}
.cal-day.past,.cal-day.unavailable{color:#E0F7FA}
.cal-day.today{outline:2px solid var(--teal-600);outline-offset:-2px;color:var(--teal-700);font-weight:700}
.cal-day.empty{pointer-events:none}
.slots-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem;margin-top:.8rem}
@media(max-width:480px){.slots-grid{grid-template-columns:repeat(2,1fr)}}
.slot-btn{padding:.55rem;border:1.5px solid var(--border);border-radius:var(--r-sm);background:white;font-size:.84rem;cursor:pointer;font-weight:600;text-align:center;transition:all .18s var(--ease);color:var(--ink-2);font-family:var(--font-body)}
.slot-btn:hover{border-color:var(--teal-600);color:var(--teal-700);background:var(--teal-100)}
.slot-btn.selected-slot{background:var(--teal-600);border-color:var(--teal-600);color:white;box-shadow:0 4px 12px rgba(0,172,193,.22)}
.slot-btn.taken{background:var(--surface-2);color:#BBDFE4;cursor:not-allowed;border-color:var(--surface-2)}
.psych-mini-card{display:flex;align-items:center;gap:.9rem;background:var(--teal-100);padding:.9rem 1.1rem;border-radius:var(--r);margin-bottom:1.4rem}
.psych-mini-avatar{width:42px;height:42px;background:var(--teal-600);border-radius:50%;display:flex;align-items:center;justify-content:center;color:white;font-weight:700;font-size:.88rem;flex-shrink:0}

/* FEATURE LIST */
.feature-item{display:flex;gap:1rem;align-items:flex-start;padding:.9rem 0;border-bottom:1px solid var(--border)}
.feature-item:last-child{border-bottom:none}
.feature-icon{width:38px;height:38px;flex-shrink:0;background:var(--teal-100);border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;color:var(--teal-700);font-size:1rem}
.feature-title{font-weight:700;font-size:.92rem;color:var(--ink);margin-bottom:.15rem}
.feature-desc{font-size:.84rem;color:var(--ink-3);line-height:1.55}

/* CTA DARK */
.cta-dark{background:linear-gradient(135deg,var(--teal-900) 0%,var(--teal-800) 100%);padding:88px 0;text-align:center;position:relative;overflow:hidden}
.cta-dark::before{content:'';position:absolute;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(255,107,53,.08) 0%,transparent 65%);top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}

/* FOOTER */
footer{background:var(--ink);color:rgba(255,255,255,.68);padding:72px 0 0}
.footer-brand{font-family:var(--font-body);font-size:1.25rem;font-weight:800;color:white;letter-spacing:-.03em}
footer h6{color:white;font-weight:700;margin-bottom:1.1rem;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase}
footer a{display:block;color:rgba(255,255,255,.5);font-size:.86rem;margin-bottom:.4rem;transition:color .2s,padding-left .2s}
footer a:hover{color:#B2EBF2;padding-left:4px}
.footer-bottom{border-top:1px solid rgba(255,255,255,.07);padding:1.3rem 0;margin-top:2.5rem;font-size:.78rem;color:rgba(255,255,255,.3)}

/* MODALS */
.modal-overlay{position:fixed;inset:0;background:rgba(13,31,37,.6);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:1000;display:none;align-items:center;justify-content:center;padding:1rem}
.modal-overlay.open{display:flex}
.modal-box{-webkit-overflow-scrolling:touch;background:white;border-radius:var(--r-lg);padding:1.8rem;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;animation:modalIn .32s var(--ease) both}
@keyframes modalIn{from{opacity:0;transform:scale(.93) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}
.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.2rem}
.modal-header h5{font-weight:700;font-size:1.02rem;color:var(--ink)}
.modal-close{background:none;border:none;cursor:pointer;font-size:1rem;color:var(--ink-4);width:30px;height:30px;border-radius:var(--r-xs);display:flex;align-items:center;justify-content:center;transition:background .2s}
.modal-close:hover{background:var(--surface-2)}

/* TOAST */
.toast-custom{position:fixed;bottom:1.5rem;right:1.5rem;background:var(--ink);color:white;padding:.85rem 1.3rem;border-radius:var(--r);font-size:.88rem;box-shadow:var(--s-lg);z-index:9999;transform:translateY(100px);opacity:0;transition:all .38s var(--ease);max-width:320px;font-family:var(--font-body)}
.toast-custom.show{transform:translateY(0);opacity:1}
.toast-custom.success{background:#1B5E20;border-left:3px solid #4CAF50}
.toast-custom.error{background:#B71C1C;border-left:3px solid #E53935}

/* ACCORDION */
.accordion-button{font-weight:600;font-size:.92rem;color:var(--ink);font-family:var(--font-body)}
.accordion-button:not(.collapsed){background:var(--teal-100);color:var(--teal-800);box-shadow:none}
.accordion-button:focus{box-shadow:none}
.accordion-body{font-size:.88rem;color:var(--ink-3);line-height:1.7}

/* ANIMATIONS */
.fade-up{opacity:0;transform:translateY(30px);transition:opacity .65s var(--ease),transform .65s var(--ease)}
.fade-up.visible{opacity:1;transform:translateY(0)}
.fade-left{opacity:0;transform:translateX(-28px);transition:opacity .65s var(--ease),transform .65s var(--ease)}
.fade-left.visible{opacity:1;transform:translateX(0)}
.fade-right{opacity:0;transform:translateX(28px);transition:opacity .65s var(--ease),transform .65s var(--ease)}
.fade-right.visible{opacity:1;transform:translateX(0)}
.scale-in{opacity:0;transform:scale(.96);transition:opacity .55s var(--ease),transform .55s var(--ease)}
.scale-in.visible{opacity:1;transform:scale(1)}
.stagger-1{transition-delay:.06s!important}.stagger-2{transition-delay:.14s!important}
.stagger-3{transition-delay:.22s!important}.stagger-4{transition-delay:.30s!important}

/* RESPONSIVE */
@media(max-width:992px){.hero-right-card{display:none!important}}
@media(max-width:768px){
  .hero{min-height:auto;padding:72px 0 64px}
  .section,.section-dark,.cta-dark{padding:60px 0}
  .booking-steps .bstep span:not(.step-icon){display:none}
  .hero h1{font-size:clamp(1.9rem,8vw,2.8rem)}
}

/* ═══ NAVBAR MÓVIL MEJORADO ═══ */
@media(max-width:991px){
  .navbar-collapse{
    background:#fff;
    border-radius:16px;
    margin-top:.6rem;
    padding:.8rem;
    box-shadow:0 12px 40px rgba(0,0,0,.12);
    border:1px solid var(--border);
  }
  .navbar-nav{align-items:stretch!important;gap:.15rem!important}
  .navbar-nav .nav-link{
    padding:.7rem 1rem!important;
    border-radius:10px;
    font-size:.95rem;
    display:flex!important;
    align-items:center;
    gap:.6rem;
  }
  .navbar-nav .nav-link:hover{background:var(--surface-2,#f1f5f9)}
  .navbar-nav .nav-link.active{background:var(--teal-50,#e0f7fa);color:var(--teal-700)}
  .navbar-nav .nav-link span.d-none{display:inline!important}
  /* Botón agendar full-width en móvil */
  .navbar-nav .btn-nav-cta,.navbar-nav .nav-cta{
    width:100%;margin-top:.5rem;justify-content:center;
  }
  /* Dropdown de usuario: mostrar items directos en móvil */
  .user-nav-btn{
    background:var(--surface-2,#f1f5f9)!important;
    border-radius:10px!important;
    padding:.6rem 1rem!important;
    margin-top:.3rem;
  }
  .nav-dropdown-menu{
    position:static!important;
    box-shadow:none!important;
    border:none!important;
    padding:.3rem 0 0!important;
    margin:0!important;
    width:100%!important;
    transform:none!important;
    background:transparent!important;
  }
  .nav-dropdown-menu.show{display:block!important}
  .nav-dd-item{padding:.6rem 1rem!important}
}
.navbar-toggler{border:none;padding:.4rem;outline:none!important;box-shadow:none!important}
.navbar-toggler:focus{box-shadow:none!important}

/* ═══ DROPDOWN PERFIL CON ANIMACIÓN ═══ */
.nav-dropdown-menu{
  opacity:0;
  transform:translateY(-8px) scale(.97);
  transition:opacity .2s cubic-bezier(.2,.8,.2,1),transform .2s cubic-bezier(.2,.8,.2,1);
  display:block!important;
  pointer-events:none;
  visibility:hidden;
}
.nav-dropdown-menu.show{
  opacity:1;
  transform:translateY(0) scale(1);
  pointer-events:auto;
  visibility:visible;
}
.user-nav-btn .bi-chevron-down{transition:transform .25s ease}
.nav-item.dropdown.show .user-nav-btn .bi-chevron-down{transform:rotate(180deg)}

/* ═══ FIX SCROLL BUG MENÚ MÓVIL ═══ */
@media(max-width:991px){
  .navbar-collapse{
    max-height:calc(100dvh - 90px);
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
  }
  /* el dropdown del usuario en móvil no se posiciona absoluto */
  .nav-item.dropdown .nav-dropdown-menu{
    position:static!important;
    transform:none!important;
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    max-height:0;
    overflow:hidden;
    transition:max-height .3s ease;
    box-shadow:none!important;
    border:none!important;
    background:transparent!important;
  }
  .nav-item.dropdown.show .nav-dropdown-menu{
    max-height:400px;
  }
}

/* ═══ HERO ROW RESPONSIVO (arregla espacio sobrante en móvil) ═══ */
.hero-row{min-height:100dvh;padding:80px 0}
@media(max-width:991px){.hero-row{min-height:auto;padding:40px 0 48px}}
@media(max-width:768px){.hero-row{min-height:auto;padding:24px 0 40px}}

/* ═══ SHOWCASE / NUESTRO TRABAJO ═══ */
.showcase-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}
.showcase-card{background:var(--white);border-radius:var(--r-lg,18px);overflow:hidden;box-shadow:0 4px 24px rgba(0,0,0,.07);transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s;display:flex;flex-direction:column;border:1px solid var(--border)}
.showcase-card:hover{transform:translateY(-6px);box-shadow:0 18px 48px rgba(0,120,145,.16)}
.showcase-card--wide{grid-column:span 2}
@media(max-width:680px){.showcase-card--wide{grid-column:span 1}}
.showcase-media{position:relative;aspect-ratio:16/10;overflow:hidden;background:linear-gradient(135deg,var(--teal-100),var(--teal-50,#e0f7fa))}
.showcase-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.showcase-card:hover .showcase-media img{transform:scale(1.06)}
.showcase-media--placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;color:var(--teal-600);opacity:.55}
.showcase-media--placeholder i{font-size:2.6rem}
.showcase-media--placeholder span{font-size:.82rem;font-weight:600}
.showcase-video .showcase-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.25);text-decoration:none;transition:background .3s}
.showcase-video .showcase-play i{width:62px;height:62px;background:rgba(255,255,255,.95);color:var(--teal-700);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.8rem;box-shadow:0 6px 20px rgba(0,0,0,.3);transition:transform .3s}
.showcase-video .showcase-play:hover{background:rgba(0,0,0,.4)}
.showcase-video .showcase-play:hover i{transform:scale(1.12)}
.showcase-body{padding:1.4rem;flex:1;display:flex;flex-direction:column}
.showcase-tag{display:inline-block;align-self:flex-start;background:var(--teal-100);color:var(--teal-800);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:.22rem .7rem;border-radius:20px;margin-bottom:.7rem}
.showcase-body h3{font-family:var(--font-display);font-size:1.2rem;font-weight:700;color:var(--ink);margin:0 0 .5rem;line-height:1.3}
.showcase-body p{color:var(--ink-3);font-size:.92rem;line-height:1.6;margin:0 0 .8rem;flex:1}
.showcase-date{font-size:.8rem;color:var(--teal-700);font-weight:600;display:flex;align-items:center;gap:.4rem;margin-top:auto}

/* ═══ SHOWCASE: VER MÁS, GALERÍA, VIDEO ═══ */
.showcase-count{position:absolute;top:.7rem;right:.7rem;background:rgba(0,0,0,.65);color:#fff;font-size:.74rem;font-weight:600;padding:.2rem .6rem;border-radius:20px;display:flex;align-items:center;gap:.3rem;backdrop-filter:blur(4px)}
.showcase-badge-video{position:absolute;top:.7rem;left:.7rem;background:rgba(220,38,38,.92);color:#fff;font-size:.72rem;font-weight:700;padding:.2rem .6rem;border-radius:20px;display:flex;align-items:center;gap:.3rem}
.showcase-more{margin-top:.9rem;align-self:flex-start;background:none;border:none;color:var(--teal-700);font-weight:700;font-size:.88rem;cursor:pointer;display:inline-flex;align-items:center;gap:.4rem;padding:0;transition:gap .2s}
.showcase-more:hover{gap:.7rem}
.sc-modal{position:fixed;inset:0;background:rgba(15,23,42,.78);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:9998;display:none;align-items:flex-start;justify-content:center;padding:2rem 1rem;overflow-y:auto}
.sc-modal.open{display:flex;animation:scFade .25s ease}
@keyframes scFade{from{opacity:0}to{opacity:1}}
.sc-modal-box{background:var(--white);border-radius:22px;max-width:780px;width:100%;position:relative;animation:scUp .35s cubic-bezier(.2,.8,.2,1);margin:auto;box-shadow:0 30px 80px rgba(0,0,0,.4)}
@keyframes scUp{from{opacity:0;transform:translateY(30px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
.sc-modal-close{position:absolute;top:1rem;right:1rem;width:40px;height:40px;border-radius:50%;border:none;background:rgba(0,0,0,.06);color:var(--ink);font-size:1.1rem;cursor:pointer;z-index:3;transition:.2s}
.sc-modal-close:hover{background:rgba(0,0,0,.12);transform:rotate(90deg)}
.sc-modal-content{padding:2rem}
.sc-modal-tag{display:inline-block;background:var(--teal-100);color:var(--teal-800);font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:.25rem .8rem;border-radius:20px;margin-bottom:.8rem}
.sc-modal-content h2{font-family:var(--font-display);font-size:1.7rem;color:var(--ink);margin:0 0 .5rem;line-height:1.25}
.sc-modal-date{font-size:.86rem;color:var(--teal-700);font-weight:600;margin-bottom:1rem;display:flex;align-items:center;gap:.4rem}
.sc-modal-lead{font-size:1.05rem;color:var(--ink-2,#475569);line-height:1.65;margin-bottom:1.4rem;font-weight:500}
.sc-modal-long{font-size:.96rem;color:var(--ink-3);line-height:1.75;margin-top:1.4rem}
.sc-video-wrap{position:relative;aspect-ratio:16/9;border-radius:14px;overflow:hidden;margin-bottom:1.4rem;background:#000}
.sc-video-wrap iframe{position:absolute;inset:0;width:100%;height:100%}
.sc-gallery{display:grid;gap:.6rem;margin-bottom:1.4rem}
.sc-gallery img{width:100%;border-radius:12px;cursor:zoom-in;object-fit:cover;transition:transform .25s}
.sc-gallery img:hover{transform:scale(1.02)}
.sc-gal-1{grid-template-columns:1fr}
.sc-gal-1 img{max-height:420px}
.sc-gal-2{grid-template-columns:1fr 1fr}
.sc-gal-2 img{height:240px}
.sc-gal-grid{grid-template-columns:1fr 1fr}
.sc-gal-grid img{height:200px}
.sc-gal-masonry{grid-template-columns:repeat(3,1fr)}
.sc-gal-masonry img{height:165px}
.sc-gal-masonry img:first-child{grid-column:span 2;grid-row:span 2;height:auto}
@media(max-width:600px){.sc-gal-grid,.sc-gal-masonry,.sc-gal-2{grid-template-columns:1fr 1fr}.sc-gal-masonry img:first-child{grid-column:span 2}.sc-modal-content{padding:1.3rem}.sc-modal-content h2{font-size:1.35rem}}
.sc-lightbox{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:10000;display:flex;align-items:center;justify-content:center;padding:1.5rem;cursor:zoom-out;animation:scFade .2s}
.sc-lightbox img{max-width:100%;max-height:100%;border-radius:8px}

/* ═══ CAMPANA DE NOTIFICACIONES ═══ */
.notif-wrap{position:relative;flex-shrink:0}
.notif-bell{position:relative;width:46px;height:46px;border-radius:14px;border:none;background:rgba(255,255,255,.16);color:#fff;font-size:1.2rem;cursor:pointer;transition:.2s;backdrop-filter:blur(6px)}
.notif-bell:hover{background:rgba(255,255,255,.28)}
.notif-badge{position:absolute;top:-5px;right:-5px;min-width:20px;height:20px;padding:0 5px;background:#ef4444;color:#fff;border-radius:20px;font-size:.72rem;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid var(--teal-800,#0D1557);animation:notifPop .3s cubic-bezier(.2,.8,.2,1)}
@keyframes notifPop{from{transform:scale(0)}to{transform:scale(1)}}
.notif-panel{position:absolute;top:56px;right:0;width:330px;max-width:88vw;background:#fff;border-radius:16px;box-shadow:0 18px 50px rgba(0,0,0,.22);z-index:120;overflow:hidden;max-height:420px;overflow-y:auto}
.notif-head{padding:.9rem 1.1rem;font-weight:700;color:var(--ink);font-size:.95rem;border-bottom:1px solid #eef2f6;position:sticky;top:0;background:#fff}
.notif-empty{padding:2rem 1rem;text-align:center;color:#94a3b8;font-size:.88rem}
.notif-empty i{font-size:1.8rem;opacity:.5}
.notif-item{display:flex;gap:.7rem;padding:.85rem 1.1rem;border-bottom:1px solid #f1f5f9;align-items:flex-start}
.notif-item.unread{background:linear-gradient(90deg,rgba(0,172,193,.06),transparent)}
.notif-icon{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0}
.notif-reschedule{background:#dbeafe;color:#1d4ed8}
.notif-cancel{background:#fee2e2;color:#dc2626}
.notif-info{background:#e0f2fe;color:#0369a1}
.notif-title{font-weight:700;font-size:.85rem;color:var(--ink);margin-bottom:.15rem}
.notif-msg{font-size:.8rem;color:#64748b;line-height:1.45}
@media(max-width:600px){.notif-panel{position:fixed;top:auto;right:1rem;left:1rem;width:auto}}

/* Aviso de adeudo */
.debt-banner{display:flex;gap:.9rem;align-items:flex-start;background:linear-gradient(135deg,#fef2f2,#fee2e2);border:1.5px solid #fca5a5;border-radius:14px;padding:1rem 1.2rem;color:#991b1b}
.debt-banner i{font-size:1.4rem;flex-shrink:0;margin-top:.1rem}
.debt-banner strong{font-size:1rem}

.btn-comprobante{margin-top:.7rem;background:#991b1b;color:#fff;border:none;border-radius:8px;padding:.5rem 1rem;font-weight:700;font-size:.84rem;cursor:pointer;display:inline-flex;align-items:center;gap:.4rem}
.btn-comprobante:hover{background:#7f1d1d}
