:root{
  /* Paleta principal — teal profundo (confianza), coral (calidez humana),
     dorado (detalle premium) y salvia (acuerdo/resolución) */
  --navy:#0F3B4D;
  --navy-2:#155370;
  --coral:#E2694B;
  --coral-soft:#F7DCD2;
  --gold:#D9A441;
  --gold-soft:#F3E2B8;
  --sage:#6E8F6C;
  --sage-soft:#DCE7D6;
  --ink:#20262E;
  --ink-soft:#5B6570;
  --line:#E9E2D6;
  --cream:#FBF7F1;
}
body{
  font-family:'Source Sans 3', sans-serif;
  color:var(--ink);
  background:#FFFFFF;
}
h1,h2,h3,h4,.font-serif{
  font-family:'Playfair Display', serif;
  color:var(--navy);
}
a{ text-decoration:none; }
.text-gold{ color:var(--gold) !important; }
.text-coral{ color:var(--coral) !important; }
.text-sage{ color:var(--sage) !important; }
.bg-navy{ background:var(--navy) !important; }
.bg-soft{ background:var(--cream) !important; }

.btn-navy{
  background:var(--navy); color:#fff; border:1px solid var(--navy);
  font-weight:600; padding:.65rem 1.5rem;
}
.btn-navy:hover{ background:var(--navy-2); color:#fff; }
.btn-outline-navy{
  border:1px solid var(--navy); color:var(--navy); font-weight:600; padding:.65rem 1.5rem;
}
.btn-outline-navy:hover{ background:var(--navy); color:#fff; }
.btn-coral{
  background:var(--coral); color:#fff; border:1px solid var(--coral); font-weight:600; padding:.65rem 1.5rem;
}
.btn-coral:hover{ background:#cc5638; color:#fff; }

.eyebrow{
  letter-spacing:.14em; text-transform:uppercase; font-size:.78rem;
  font-weight:700; color:var(--coral);
}
.eyebrow::before{
  content:""; display:inline-block; width:26px; height:2px;
  background:var(--coral); margin-right:10px; vertical-align:middle;
}
.eyebrow.gold{ color:var(--gold); }
.eyebrow.gold::before{ background:var(--gold); }
.eyebrow.sage{ color:var(--sage); }
.eyebrow.sage::before{ background:var(--sage); }
.eyebrow.on-dark{ color:var(--gold-soft); }
.eyebrow.on-dark::before{ background:var(--gold-soft); }

.divider-gold{ width:60px; height:3px; background:linear-gradient(90deg,var(--coral),var(--gold)); margin:18px 0 22px; border-radius:2px; }

/* Navbar */
.navbar{ border-bottom:1px solid var(--line); }
.navbar-brand{ font-family:'Playfair Display', serif; font-weight:700; color:var(--navy) !important; }
.navbar-brand small{ display:block; font-family:'Source Sans 3',sans-serif; font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); font-weight:600; }
.nav-link{ font-weight:600; color:var(--ink) !important; position:relative; }
.nav-link:hover{ color:var(--coral) !important; }

/* Hero */
.hero{
  padding:5rem 0 3.5rem;
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(560px 380px at 88% -10%, rgba(226,105,75,.14), transparent 60%),
    radial-gradient(480px 340px at -5% 110%, rgba(110,143,108,.16), transparent 60%),
    #ffffff;
}
.hero h1{ font-size:clamp(2rem, 4vw, 3rem); line-height:1.18; font-weight:700; }
.hero .lead{ color:var(--ink-soft); font-size:1.1rem; max-width:44ch; }
.scale-icon{ width:100%; max-width:340px; }

.trust-strip{
  background:linear-gradient(90deg, var(--navy), var(--navy-2));
  font-size:.85rem; color:#EAF1F3; font-weight:600;
}
.trust-strip .dot{
  display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:8px; vertical-align:middle;
}

/* Cards de servicios */
.card-service{
  border:1px solid var(--line); border-top:4px solid var(--accent, var(--coral));
  border-radius:.5rem; height:100%; background:#fff;
  transition:transform .2s ease, box-shadow .2s ease;
}
.card-service:hover{ transform:translateY(-4px); box-shadow:0 14px 30px rgba(15,59,77,.1); }
.card-service .icon-chip{
  width:46px; height:46px; border-radius:.6rem; display:flex; align-items:center; justify-content:center;
  background:var(--chip-bg, var(--coral-soft)); color:var(--accent, var(--coral)); font-size:1.3rem;
}
.card-service .card-num{ font-family:'Playfair Display', serif; font-size:1.6rem; color:var(--accent, var(--coral)); opacity:.55; }
.card-service h3{ font-size:1.15rem; }
.card-service p{ color:var(--ink-soft); font-size:.95rem; }

/* Proceso — el color avanza de calido/tension a sereno/acuerdo */
.step-item{ border-left:3px solid var(--step-color, var(--coral)); padding:.25rem 0 .25rem 1.5rem; margin-bottom:1.75rem; position:relative; }
.step-item .step-num{
  position:absolute; left:-19px; top:0; width:36px; height:36px; border-radius:50%;
  background:var(--step-color, var(--coral)); color:#fff; display:flex; align-items:center; justify-content:center;
  font-family:'Playfair Display', serif; font-weight:700; font-size:.95rem;
  box-shadow:0 4px 10px rgba(0,0,0,.12);
}
.step-item h3{ font-size:1.1rem; margin-left:20px; }
.step-item p{ margin-left:20px; color:var(--ink-soft); }

/* Why */
.why{ background:linear-gradient(135deg, var(--navy) 0%, #123F52 55%, #0C2E3C 100%); }
.why-stat{ font-family:'Playfair Display', serif; font-size:2.4rem; font-weight:700; color:var(--stat-color,#fff); }
.why .small-label{ color:#C9D6DA; font-size:.9rem; }

/* Testimonios */
.carousel .testi-card{ max-width:720px; margin:0 auto; text-align:center; padding:2rem 1rem; }
.carousel .testi-card blockquote{ font-family:'Playfair Display', serif; font-style:italic; font-size:1.3rem; color:var(--navy); }
.testi-avatar{
  width:44px; height:44px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  color:#fff; font-weight:700; font-family:'Playfair Display', serif; margin:0 auto .9rem;
}
.carousel-indicators [data-bs-target]{ background-color:var(--coral); }
.carousel-control-prev-icon, .carousel-control-next-icon{ filter:invert(1) grayscale(1); opacity:.5; }

/* FAQ */
.accordion-item{ border-left:3px solid transparent; }
.accordion-button{ font-family:'Playfair Display', serif; font-weight:600; color:var(--navy); }
.accordion-button:not(.collapsed){ background:var(--gold-soft); color:var(--navy); box-shadow:none; }
.accordion-item:has(.accordion-button:not(.collapsed)){ border-left-color:var(--gold); }
.accordion-button:focus{ box-shadow:0 0 0 .2rem rgba(217,164,65,.3); }

/* Contacto */
.info-list li{ border-top:1px solid var(--line); padding:.85rem 0; display:flex; gap:1rem; }
.info-list li:first-child{ border-top:none; }
.info-list .k{ font-weight:700; color:var(--navy); width:110px; flex:none; font-size:.85rem; text-transform:uppercase; letter-spacing:.04em; }
.form-legal{ border:1px solid var(--line); border-top:4px solid var(--coral); border-radius:.5rem; padding:2rem; background:#fff; }
.form-legal .form-label{ font-weight:600; font-size:.9rem; }
.form-control, .form-select{ border-radius:.3rem; border-color:var(--line); }
.form-control:focus, .form-select:focus{ border-color:var(--coral); box-shadow:0 0 0 .2rem rgba(226,105,75,.18); }

footer{ font-size:.9rem; background:linear-gradient(90deg, var(--navy), #0B2733) !important; }
footer a{ color:#D9DEE6; }
footer a:hover{ color:var(--gold); }

/* ===== Páginas internas (noticias, galería, videos) ===== */
.page-header{
  padding:3.5rem 0 2.5rem;
  background:linear-gradient(135deg, var(--cream), var(--coral-soft) 120%);
  border-bottom:1px solid var(--line);
}
.page-header h1{ font-size:clamp(1.8rem, 3.4vw, 2.6rem); }

.card-noticia{ border:1px solid var(--line); border-top:3px solid var(--coral); border-radius:.5rem; overflow:hidden; height:100%; transition:box-shadow .2s ease, transform .2s ease; background:#fff; }
.card-noticia:nth-of-type(3n+2){ border-top-color:var(--gold); }
.card-noticia:nth-of-type(3n){ border-top-color:var(--sage); }
.card-noticia:hover{ box-shadow:0 12px 28px rgba(16,36,62,.12); transform:translateY(-3px); }
.card-noticia .noticia-img{ width:100%; aspect-ratio:16/10; object-fit:cover; background:var(--cream); }
.card-noticia .noticia-body{ padding:1.25rem 1.35rem 1.5rem; }
.card-noticia .noticia-fecha{ font-size:.78rem; letter-spacing:.06em; text-transform:uppercase; color:var(--coral); font-weight:700; }
.card-noticia h3{ font-size:1.15rem; margin:.4rem 0 .6rem; line-height:1.3; }
.card-noticia p{ color:var(--ink-soft); font-size:.92rem; }

.noticia-detalle img.noticia-portada{ width:100%; max-height:440px; object-fit:cover; border-radius:.5rem; }
.noticia-detalle .contenido{ font-size:1.05rem; line-height:1.8; color:var(--ink); }
.noticia-detalle .contenido p{ margin-bottom:1.2rem; }

.gal-item{ position:relative; border-radius:.5rem; overflow:hidden; display:block; }
.gal-item img{ width:100%; aspect-ratio:4/3; object-fit:cover; transition:transform .35s ease; }
.gal-item:hover img{ transform:scale(1.06); }
.gal-caption{
  position:absolute; inset:auto 0 0 0; padding:.9rem 1rem .7rem;
  background:linear-gradient(0deg, rgba(15,59,77,.9), rgba(15,59,77,0));
  color:#fff; font-size:.85rem; font-weight:600;
}
.gal-filter .btn{ font-size:.82rem; }

.video-card{ border:1px solid var(--line); border-top:3px solid var(--navy); border-radius:.5rem; overflow:hidden; background:#fff; }
.video-ratio{ aspect-ratio:16/9; }
.video-card .video-body{ padding:1rem 1.2rem 1.3rem; }
.video-card h3{ font-size:1.05rem; margin-bottom:.3rem; color:var(--navy); }
.video-card p{ color:var(--ink-soft); font-size:.9rem; margin:0; }

.pagination .page-link{ color:var(--navy); }
.pagination .page-item.active .page-link{ background:var(--coral); border-color:var(--coral); }

@media (max-width: 767.98px){
  .hero{ padding:2.5rem 0 2rem; text-align:center; }
  .hero .lead{ margin-left:auto; margin-right:auto; }
  .scale-icon{ max-width:220px; margin-top:1.5rem; }
  section{ scroll-margin-top:70px; }
}
