/* ─── RESET & BASE ─── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { overscroll-behavior:none; scroll-behavior:smooth; }
body { font-family:'Inter',sans-serif; background:#FFFFFF; color:#0D1B2E; overflow-x:hidden; }

/* ─── SCROLLBAR ─── */
::-webkit-scrollbar { width:5px; }
::-webkit-scrollbar-track { background:#F2F4F7; }
::-webkit-scrollbar-thumb { background:#E8631A; border-radius:10px; }

/* ─── VARIABLES ─── */
:root {
  --orange: #E8631A;
  --orange-light: #F07C3A;
  --navy: #0D1B2E;
  --navy-2: #13283F;
}

/* ─── LOADER ─── */
#ph-loader {
  position:fixed; inset:0; background:#FFFFFF; z-index:99999;
  display:flex; align-items:center; justify-content:center;
}
#ph-loader.ph-loader--out {
  opacity:0; visibility:hidden;
  transition:opacity 0.55s ease, visibility 0.55s ease;
}
.ph-loader__inner {
  display:flex; flex-direction:column; align-items:center; gap:20px;
  animation:loaderFadeIn 0.5s ease both;
}
.ph-loader__label {
  color:#0D1B2E; font-weight:800; font-size:0.72rem;
  letter-spacing:0.28em; text-transform:uppercase;
}
@keyframes loaderFadeIn {
  from { opacity:0; transform:translateY(10px); }
  to   { opacity:1; transform:translateY(0); }
}
@keyframes spin { to { transform:rotate(360deg); } }

/* ─── CURSOR ─── */
@media (pointer: fine) {
  html, body { cursor:none; }
  *:not(#ph-cursor):not(#ph-cursor-trail) { cursor:none !important; }
}
#ph-cursor {
  position:fixed; top:0; left:0; width:12px; height:12px;
  background:#E8631A; border-radius:50%; pointer-events:none;
  z-index:999999; opacity:0;
  transition:width .2s, height .2s, background .2s, opacity .25s;
  will-change:transform;
}
#ph-cursor-trail {
  position:fixed; top:0; left:0; width:32px; height:32px;
  border:1.5px solid rgba(13,27,46,0.25); border-radius:50%;
  pointer-events:none; z-index:999998; opacity:0;
  transition:width .25s, height .25s, border-color .25s, opacity .25s;
  will-change:transform;
}
#ph-cursor.ph-cursor--hover { width:18px; height:18px; background:#F07C3A; }
#ph-cursor-trail.ph-cursor-trail--hover { width:48px; height:48px; border-color:rgba(232,99,26,0.5); }

/* ─── HEADER ─── */
.header-main {
  position:fixed; top:0; left:0; width:100%; z-index:1000;
  padding:20px 0; transition:all .4s ease;
  background:rgba(255,255,255,0.0);
}
.header-main.sticky {
  background:rgba(255,255,255,0.92);
  backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(13,27,46,0.08);
  padding:14px 0;
}
.header-main.sticky .nav-link-default { color:#0D1B2E; }
.header-main.sticky #menuToggle span { background:#0D1B2E; }
.header-main:not(.sticky) #menuToggle span { background:#fff; }

/* ─── MOBILE MENU ─── */
.mobile-menu {
  position:fixed; inset:0; z-index:9998;
  background:rgba(13,27,46,0.97);
  backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
  opacity:0; visibility:hidden;
  transition:opacity .4s, visibility .4s;
}
.mobile-menu.open { opacity:1; visibility:visible; }
.mobile-menu-inner { transform:translateY(20px); transition:transform .4s cubic-bezier(0.16,1,0.3,1); }
.mobile-menu.open .mobile-menu-inner { transform:translateY(0); }

/* ─── HERO ─── */
.hero-section { position:relative; min-height:100vh; display:flex; align-items:center; overflow:hidden; background:#0D1B2E; }
.hero-bg {
  position:absolute; inset:-20%; z-index:0;
  background-image:url('img/hero-inicio.jpg');
  background-size:cover; background-position:center; background-attachment:fixed;
  will-change:transform;
}
@supports (-webkit-touch-callout:none) { .hero-bg { background-attachment:scroll; inset:0; } }
.hero-overlay {
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(105deg, rgba(13,27,46,0.93) 0%, rgba(13,27,46,0.80) 55%, rgba(13,27,46,0.55) 100%);
}

/* ─── MARQUEE ─── */
.marquee-track { display:flex; animation:marquee 35s linear infinite; white-space:nowrap; }
@keyframes marquee { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }

/* ─── STRIPE ACCENT ─── */
.stripe-accent {
  height:4px;
  background:repeating-linear-gradient(90deg,#fff 0,#fff 20px,#E8631A 20px,#E8631A 40px);
}
.stripe-accent.dark {
  background:repeating-linear-gradient(90deg,#0D1B2E 0,#0D1B2E 20px,#E8631A 20px,#E8631A 40px);
}

/* ─── BACK TO TOP ─── */
.back-top {
  position:fixed; bottom:28px; right:28px; width:44px; height:44px;
  background:#0D1B2E; color:#fff; border-radius:50%;
  display:flex; align-items:center; justify-content:center; border:none;
  opacity:0; visibility:hidden; transform:translateY(15px);
  transition:all .3s ease; z-index:100;
  box-shadow:0 8px 20px rgba(13,27,46,0.25);
}
.back-top.show { opacity:1; visibility:visible; transform:translateY(0); }
.back-top:hover { background:#E8631A; transform:translateY(-3px); }

/* ─── FAQ ─── */
.faq-item {
  border:1px solid #E7EAEF; border-radius:12px;
  padding:24px 28px; margin-bottom:12px;
  transition:border-color .3s, box-shadow .3s; background:#fff;
}
.faq-item:hover { border-color:rgba(232,99,26,0.4); box-shadow:0 4px 16px rgba(13,27,46,0.04); }
.faq-answer {
  max-height:0; overflow:hidden;
  transition:max-height .5s cubic-bezier(0.16,1,0.3,1), margin-top .3s;
  color:#5C6776; line-height:1.75; font-size:0.9rem;
}
.faq-item.open .faq-answer { max-height:300px; margin-top:16px; }
.faq-icon { transition:transform .3s, color .3s; color:#B7BFC9; flex-shrink:0; }
.faq-item.open .faq-icon { transform:rotate(45deg); color:#E8631A; }

/* ─── SERVICE CARDS ─── */
.service-card {
  background:#fff; border:1px solid #E7EAEF;
  border-radius:16px; padding:36px 28px;
  transition:border-color .3s, transform .3s, box-shadow .3s;
}
.service-card:hover {
  border-color:rgba(232,99,26,0.45); transform:translateY(-4px);
  box-shadow:0 20px 40px rgba(13,27,46,0.08), 0 0 0 1px rgba(232,99,26,0.10);
}
.service-card__icon {
  width:48px; height:48px; background:rgba(13,27,46,0.06);
  border-radius:12px; display:flex; align-items:center; justify-content:center;
  color:#0D1B2E; font-size:20px; margin-bottom:20px;
  transition:background .3s, color .3s;
}
.service-card:hover .service-card__icon { background:#E8631A; color:#fff; }
.service-tag {
  display:inline-block; font-size:10px; font-weight:700;
  letter-spacing:0.1em; text-transform:uppercase;
  background:rgba(13,27,46,0.06); color:#0D1B2E;
  padding:3px 10px; border-radius:999px; margin:2px 2px 0 0;
}

/* ─── CONTACT FORM ─── */
.contact-input {
  width:100%; background:#F5F6F8;
  border:1px solid #E7EAEF; border-radius:8px;
  padding:12px 16px; color:#0D1B2E; font-size:0.9rem; font-family:'Inter',sans-serif;
  transition:border-color .3s, background .3s;
}
.contact-input:focus { outline:none; border-color:#E8631A; background:#fff; }
.contact-input::placeholder { color:#9AA3AF; }
textarea.contact-input { resize:none; min-height:140px; }
.contact-label {
  display:block; font-size:0.72rem; font-weight:600;
  text-transform:uppercase; letter-spacing:0.1em;
  color:#8A93A0; margin-bottom:8px;
}

/* ─── BUTTONS ─── */
.btn-orange {
  display:inline-flex; align-items:center; gap:10px;
  background:#E8631A; color:#fff; font-weight:700;
  font-family:'Inter',sans-serif; padding:13px 32px;
  border-radius:999px; border:none; font-size:0.88rem;
  letter-spacing:0.05em; text-transform:uppercase;
  transition:background .2s, transform .2s, box-shadow .2s; text-decoration:none;
}
.btn-orange:hover { background:#F07C3A; transform:translateY(-2px); box-shadow:0 8px 24px rgba(232,99,26,0.30); }

.btn-navy {
  display:inline-flex; align-items:center; gap:10px;
  background:#0D1B2E; color:#fff; font-weight:700;
  font-family:'Inter',sans-serif; padding:13px 32px;
  border-radius:999px; border:none; font-size:0.88rem;
  letter-spacing:0.05em; text-transform:uppercase;
  transition:background .2s, transform .2s; text-decoration:none;
}
.btn-navy:hover { background:#13283F; transform:translateY(-2px); }

.btn-outline-light {
  display:inline-flex; align-items:center; gap:8px;
  background:transparent; color:#fff; font-weight:700;
  font-family:'Inter',sans-serif; padding:12px 28px;
  border-radius:999px; border:1.5px solid rgba(255,255,255,0.4); font-size:0.85rem;
  letter-spacing:0.05em; text-transform:uppercase;
  transition:border-color .2s, background .2s; text-decoration:none;
}
.btn-outline-light:hover { border-color:#fff; background:rgba(255,255,255,0.1); }

.btn-outline-navy {
  display:inline-flex; align-items:center; gap:8px;
  background:transparent; color:#0D1B2E; font-weight:700;
  font-family:'Inter',sans-serif; padding:12px 28px;
  border-radius:999px; border:1.5px solid rgba(13,27,46,0.25); font-size:0.85rem;
  letter-spacing:0.05em; text-transform:uppercase;
  transition:border-color .2s, background .2s; text-decoration:none;
}
.btn-outline-navy:hover { border-color:#E8631A; background:rgba(232,99,26,0.06); }

/* ─── VALUE CARDS ─── */
.value-card {
  display:flex; flex-direction:column; align-items:center; text-align:center; gap:16px;
  padding:32px 20px; background:#fff; border-radius:16px;
  border:1px solid #E7EAEF;
  transition:border-color .3s, transform .3s, box-shadow .3s;
}
.value-card:hover { border-color:rgba(232,99,26,0.4); transform:translateY(-4px); box-shadow:0 16px 32px rgba(13,27,46,0.06); }
.value-card i { color:#E8631A; font-size:28px; }

/* ─── SECTION LINE ─── */
.section-line { width:52px; height:3px; background:#E8631A; margin-bottom:20px; }

/* ─── ACADEMIA BG ─── */
.academia-bg {
  position:absolute; inset:0; z-index:0;
  background-image:url('img/academia-bg.jpg');
  background-size:cover; background-position:center; background-attachment:fixed;
}
@supports (-webkit-touch-callout:none) { .academia-bg { background-attachment:scroll; } }

/* ─── SERVICE DETAIL PAGES ─── */
.service-hero {
  position:relative; min-height:58vh; display:flex; align-items:flex-end;
  overflow:hidden; background:#0D1B2E; padding-top:120px;
}
.service-hero-bg {
  position:absolute; inset:-10%; z-index:0;
  background-size:cover; background-position:center; background-attachment:fixed;
  will-change:transform;
}
@supports (-webkit-touch-callout:none) { .service-hero-bg { background-attachment:scroll; inset:0; } }
.service-hero-overlay {
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(13,27,46,0.50) 0%, rgba(13,27,46,0.94) 100%);
}
.breadcrumb a { color:rgba(255,255,255,0.55); text-decoration:none; transition:color .2s; }
.breadcrumb a:hover { color:#E8631A; }

.sidebar-card { background:#0D1B2E; border-radius:18px; padding:34px 28px; position:sticky; top:110px; }
.info-row { display:flex; align-items:center; gap:14px; }
.info-icon {
  width:44px; height:44px; background:rgba(232,99,26,0.15);
  border-radius:10px; display:flex; align-items:center; justify-content:center; flex-shrink:0;
}

.group-index {
  display:inline-flex; align-items:center; justify-content:center;
  width:30px; height:30px; border-radius:8px;
  background:rgba(232,99,26,0.10); color:#E8631A;
  font-weight:800; font-size:0.72rem; flex-shrink:0;
}

.check-item { display:flex; gap:10px; align-items:flex-start; font-size:0.88rem; line-height:1.65; color:#5C6776; }
.check-item i { color:#E8631A; font-size:10px; margin-top:6px; flex-shrink:0; }

.service-group .faq-answer { color:#5C6776; }
.service-group.open .faq-answer { max-height:1100px; }

.related-service-card {
  background:#fff; border:1px solid #E7EAEF; border-radius:14px; padding:22px;
  transition:border-color .3s, transform .3s, box-shadow .3s; text-decoration:none; display:block;
}
.related-service-card:hover {
  border-color:rgba(232,99,26,0.45); transform:translateY(-3px);
  box-shadow:0 14px 28px rgba(13,27,46,0.07);
}

/* ─── NOSOTROS / EQUIPO ─── */
.team-card {
  background:#fff; border:1px solid #E7EAEF; border-radius:16px;
  padding:30px 26px; text-align:center; display:flex; flex-direction:column;
  transition:border-color .3s, transform .3s, box-shadow .3s;
}
.team-card:hover {
  border-color:rgba(232,99,26,0.4); transform:translateY(-4px);
  box-shadow:0 16px 32px rgba(13,27,46,0.06);
}
.team-avatar {
  width:92px; height:92px; border-radius:50%; object-fit:cover;
  margin:0 auto 18px; border:3px solid #F5F6F8;
}
.team-name { font-weight:800; font-size:1.05rem; color:#0D1B2E; line-height:1.2; }
.team-role {
  font-size:0.7rem; font-weight:700; text-transform:uppercase;
  letter-spacing:0.08em; color:#E8631A; margin-top:4px; margin-bottom:16px;
}
.team-bio { font-size:0.82rem; line-height:1.7; color:#5C6776; text-align:left; }
.team-bio + .team-bio { margin-top:10px; }
.team-contact {
  display:inline-flex; align-items:center; gap:6px; font-size:0.76rem;
  font-weight:700; color:#0D1B2E; margin-top:18px; text-decoration:none;
  transition:color .2s; letter-spacing:.03em; text-transform:uppercase;
}
.team-contact:hover { color:#E8631A; }
