/* ==========================================================================
   FERRO & ASOCIADOS, S.C. — Capa de identidad
   Se carga después de app.css. Paleta: azul marino + dorado. Titulares en
   serif (Cormorant Garamond), texto en Montserrat.
   ========================================================================== */

:root {
  --fa-navy: #2E3439;
  --fa-navy-2: #3D454C;
  --fa-gold: #A47E43;
  --fa-gold-light: #C9A867;
  --fa-ink: #2b2f36;
  --fa-mist: #f5f3ef;
  --fa-serif: 'Cormorant Garamond', 'Times New Roman', serif;
}

body { background: #fff; }
body .fa-brand, body .fa-brand *,
body h1, body h2.font-light, body h3.font-light,
body .fa-serif { font-family: var(--fa-serif); }

/* --------------------------------------------------------------------------
   Marca tipográfica
   -------------------------------------------------------------------------- */
.fa-brand { display: inline-flex; flex-direction: column; color: #fff; line-height: 1; }
.fa-brand__name {
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .2em;
  white-space: nowrap;
}
.fa-brand__amp { color: var(--fa-gold-light); font-style: italic; font-weight: 400; letter-spacing: 0; padding: 0 .05em; }

.fa-brand--nav .fa-brand__name { font-size: 1.35rem; }
.fa-brand--nav::after {
  content: ''; display: block; width: 36px; height: 1px; margin-top: .55rem;
  background: var(--fa-gold-light);
}
.fa-brand--footer .fa-brand__name { font-size: 1.9rem; }
.fa-brand--footer::after {
  content: 'Abogados'; display: block; margin-top: .7rem;
  font-family: 'Montserrat', sans-serif; font-size: .72rem; font-weight: 600;
  letter-spacing: .45em; text-transform: uppercase; color: var(--fa-gold-light);
}
.fa-brand--stacked { align-items: flex-start; }
.fa-brand--stacked .fa-brand__name { font-size: clamp(2rem, 4vw, 3.4rem); white-space: normal; line-height: 1.1; }
.fa-brand--stacked::after {
  content: ''; display: block; width: 70px; height: 2px; margin-top: 1.2rem; background: var(--fa-gold-light);
}
@media (max-width: 480px) {
  .fa-brand--nav .fa-brand__name { font-size: 1.05rem; letter-spacing: .14em; }
  .fa-brand--footer .fa-brand__name { font-size: 1.45rem; }
}

/* --------------------------------------------------------------------------
   Navegación
   -------------------------------------------------------------------------- */
.fa-navbar {
  background: rgba(46, 52, 57, .96) !important;
  border-bottom: 1px solid rgba(201, 168, 103, .35);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.fa-navbar > div { min-height: 76px; }
.fa-nav-brand { display: inline-block; padding: .9rem 0; }
.MainMenu li { font-size: .82rem !important; letter-spacing: .14em; font-weight: 600 !important; }
.MainMenu li > a { position: relative; padding: .4rem 0; transition: color .2s ease; }
.MainMenu li > a:hover { color: var(--fa-gold-light); }
.MainMenu li.active { color: var(--fa-gold-light) !important; }
.MainMenu li.active > a::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: -4px; height: 1px; background: var(--fa-gold-light);
}
.fa-lang { display: inline-block; padding: .35rem .55rem; font-weight: 600; opacity: .55; letter-spacing: .12em; }
.fa-lang.is-active { opacity: 1; color: var(--fa-gold-light); border-bottom: 1px solid var(--fa-gold-light); }
#submenu-container-desk { border-top: 1px solid var(--fa-gold); }
.fa-has-submenu { position: relative; }
#submenu-container-desk {
  top: 100%; left: 0; z-index: 60;
  min-width: 19rem; max-width: calc(100vw - 2rem);
  max-height: calc(100vh - 10rem); overflow-y: auto;
  background: var(--fa-navy);
  box-shadow: 0 12px 24px rgba(0, 0, 0, .2);
}
.MainMenu #submenu-container-desk li { margin: 0; padding: 0; }
.MainMenu #submenu-container-desk a { display: block; padding: 1rem; }
#submenu-button, #submenu-button-desk { display: inline-block; cursor: pointer; }
#submenu-button::after, #submenu-button-desk::after {
  content: ''; display: inline-block; width: .4rem; height: .4rem;
  margin-left: .65rem; vertical-align: .15rem;
  border-right: 1px solid currentColor; border-bottom: 1px solid currentColor;
  transform: rotate(45deg);
}
#submenu-button[aria-expanded='true']::after,
#submenu-button-desk[aria-expanded='true']::after { transform: rotate(225deg); }
.MainMenu li.active > #submenu-button-desk::after { position: static; background: none; }
#fa-mobile-menu { z-index: 60; max-height: calc(100dvh - 5rem); overflow-y: auto; }
.fa-navbar a:focus-visible, .fa-navbar button:focus-visible, .title:focus-visible {
  outline: 2px solid var(--fa-gold-light); outline-offset: 4px;
}
html { scroll-padding-top: 10rem; }
.fa-navbar button.bg-primary { background: transparent; border: 1px solid var(--fa-gold-light); color: var(--fa-gold-light); }
.fa-navbar .bg-primary.w-3\/4 { background: var(--fa-navy); border-top: 1px solid var(--fa-gold); }

/* --------------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------------- */
.parallax-header .bg-black, header.bg-black { background-color: var(--fa-navy); }
.parallax-header video { filter: grayscale(1) contrast(1.05) brightness(.7); }
.banner-home {
  background-image: url('../images/home/header-edificio-real.jpg');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
@media (max-width: 767px) {
  .banner-home { background-position: 60% center; }
}
.parallax-header::after {
  content: ''; position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background: linear-gradient(100deg, rgba(46,52,57,.82) 0%, rgba(46,52,57,.45) 55%, rgba(46,52,57,.15) 100%);
}
.parallax-header > div { z-index: 20; }
.fa-hero-accent {
  position: absolute; left: -1.75rem; top: .3rem; bottom: .3rem; width: 2px;
  background: var(--fa-gold-light);
}
#hero-text h2, .parallax-header h1, .parallax-header h2 {
  font-family: var(--fa-serif) !important;
  font-weight: 500 !important;
  letter-spacing: .04em;
  line-height: 1.15 !important;
}
#hero-text h2 .font-light { font-style: italic; color: var(--fa-gold-light); }

/* --------------------------------------------------------------------------
   Titulares de sección
   -------------------------------------------------------------------------- */
h2.font-light {
  font-weight: 500 !important;
  letter-spacing: .06em !important;
}
h2.font-light.text-gris, h3.text-gris { color: var(--fa-navy) !important; }

/* Línea de sección: de bloque grueso a filete dorado fino */
.Borde::before {
  width: 56px !important;
  height: 2px !important;
  top: -18px !important;
  background: var(--fa-gold) !important;
}
.BordeWhite::before { width: 28px !important; height: 1px !important; background: var(--fa-gold-light) !important; }

/* Párrafos: tono más sobrio y lectura más cómoda */
p { color: var(--fa-ink); line-height: 1.7; }
p.text-white, .text-white p { color: #fff; }
.text-naranja { color: var(--fa-gold) !important; }
#About p, #Acerca p { font-size: 1.12rem; }

/* --------------------------------------------------------------------------
   Imágenes: marco desplazado en lugar de esquina sólida
   -------------------------------------------------------------------------- */
.imagen-con-borde, .foto-con-borde { position: relative; display: inline-block; isolation: isolate; }
.imagen-con-borde::before, .foto-con-borde::before {
  top: 18px !important; left: 18px !important; right: -18px !important; bottom: -18px !important;
  width: auto !important; height: auto !important;
  border: 1px solid var(--fa-gold) !important;
  z-index: -1;
}
#About img, #Acerca img { filter: grayscale(.35); }

/* --------------------------------------------------------------------------
   Botones
   -------------------------------------------------------------------------- */
.btn {
  border-radius: 0 !important;
  font-size: .8rem !important;
  letter-spacing: .2em;
  text-transform: uppercase;
  padding: 1rem 1.9rem !important;
  transition: background-color .25s ease, color .25s ease, border-color .25s ease;
}
.btn-primary { background: var(--fa-navy) !important; border-color: var(--fa-navy) !important; color: #fff !important; }
.btn-primary:hover { background: var(--fa-gold) !important; border-color: var(--fa-gold) !important; }
#Footer .btn-primary, #contacto .btn-primary, #Contacto .btn-primary {
  background: transparent !important; border: 1px solid var(--fa-gold-light) !important; color: var(--fa-gold-light) !important;
}
#Footer .btn-primary:hover, #contacto .btn-primary:hover, #Contacto .btn-primary:hover {
  background: var(--fa-gold-light) !important; color: var(--fa-navy) !important;
}

/* --------------------------------------------------------------------------
   Áreas de práctica: tarjetas uniformes azul marino con filete dorado
   -------------------------------------------------------------------------- */
#Areas > div { background: var(--fa-navy) !important; position: relative; }
#Areas > div::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse at 85% 0%, rgba(201,168,103,.12), transparent 60%);
}
#servicios-slider a {
  background: rgba(255, 255, 255, .04) !important;
  border: 1px solid rgba(255, 255, 255, .12);
  border-top: 2px solid var(--fa-gold-light);
  opacity: 1 !important;
  transition: background-color .3s ease, transform .3s ease;
}
#servicios-slider a:hover { background: rgba(201, 168, 103, .16) !important; transform: translateY(-3px); }
#servicios-slider a p.font-bold.uppercase { font-family: var(--fa-serif); font-size: 1.35rem; letter-spacing: .06em; font-weight: 600; }
#servicios-slider a p.text-lg { font-size: .75rem; letter-spacing: .25em; color: var(--fa-gold-light); }
.areas-list .active { background: var(--fa-navy) !important; color: #fff; border-left: 3px solid var(--fa-gold); }
.title { background: #8d9099; }
.title.active { background: var(--fa-navy) !important; border-left: 4px solid var(--fa-gold); }

/* --------------------------------------------------------------------------
   Asociaciones
   -------------------------------------------------------------------------- */
#Reconocimientos { background: var(--fa-mist) !important; }
#Reconocimientos img { filter: grayscale(1); opacity: .75; transition: opacity .25s ease, filter .25s ease; }
#Reconocimientos a:hover img { filter: none; opacity: 1; }

/* --------------------------------------------------------------------------
   Pie y contacto
   -------------------------------------------------------------------------- */
#Footer video, #contacto video { filter: grayscale(1); }
#Footer .bg-azul, #contacto .bg-azul { background-color: rgba(46, 52, 57, .94) !important; }
.fa-contact { position: relative; isolation: isolate; }
.fa-contact::before { content: ''; position: absolute; inset: 0; z-index: -1; background: rgba(46, 52, 57, .9); }
.fa-office__label {
  color: var(--fa-gold-light) !important; font-size: .75rem !important; font-weight: 700;
  letter-spacing: .3em; margin-bottom: .6rem;
}
.fa-office__address { color: #fff; font-style: normal; font-size: 1rem; line-height: 1.7; margin-bottom: .9rem; }
.fa-office__map {
  display: inline-block; color: #fff; font-size: .75rem; font-weight: 600; letter-spacing: .22em;
  border-bottom: 1px solid var(--fa-gold-light); padding-bottom: 2px; margin-bottom: 1rem;
}
.fa-office__map:hover { color: var(--fa-gold-light); }
.fa-office__phone { display: block; color: #fff; font-family: var(--fa-serif); font-size: 1.75rem; letter-spacing: .04em; }
.fa-office__phone:hover { color: var(--fa-gold-light); }
.socials img { opacity: .8; }
.socials a:hover img { opacity: 1; }

#Footer h3, #contacto h3, #Contacto h3 { font-family: var(--fa-serif); font-weight: 500 !important; letter-spacing: .05em; }
.form-control {
  background: rgba(255, 255, 255, .06) !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(255, 255, 255, .35) !important;
  border-radius: 0 !important;
  padding: .9rem .25rem;
}
.form-control:focus { border-bottom-color: var(--fa-gold-light) !important; --tw-ring-color: rgba(201, 168, 103, .25) !important; }
.form-control::placeholder { color: rgba(255, 255, 255, .7) !important; letter-spacing: .12em; font-size: .85rem; }
.privacidad a { font-size: .85rem !important; letter-spacing: .05em; opacity: .85; }
.privacidad a:hover { color: var(--fa-gold-light); opacity: 1; }

/* Slick dots */
.slick-dots li.slick-active button:before { background: var(--fa-gold-light) !important; color: var(--fa-gold-light) !important; }

/* Contacto por correo */
.fa-mail-cta__text { color: rgba(255,255,255,.85) !important; margin-bottom: 1rem; }
.fa-mail-cta__email {
  display: inline-block; color: #fff; font-family: var(--fa-serif); font-size: clamp(1.4rem, 3vw, 2.1rem);
  letter-spacing: .02em; border-bottom: 1px solid var(--fa-gold-light); padding-bottom: 4px; word-break: break-all;
}
.fa-mail-cta__email:hover { color: var(--fa-gold-light); }

/* Encabezado principal convertido a H1 (SEO): mismo estilo que los H2 de sección */
h1.font-light, h1.font-ligh { font-weight: 500 !important; letter-spacing: .06em !important; }
h1.font-light.text-gris, h1.text-gris { color: #2E3439 !important; }
#hero-text h1 { font-family: var(--fa-serif) !important; font-weight: 500 !important; letter-spacing: .04em; line-height: 1.15 !important; }
#hero-text h1 .font-light { font-style: italic; color: var(--fa-gold-light); }

/* Áreas en el inicio: cuadrícula fija (sin carrusel) */
#servicios-slider.fa-areas-grid {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.75rem;
  padding: 0 1.5rem;
}
#servicios-slider.fa-areas-grid .WrapItems, #servicios-slider.fa-areas-grid .WrapSix { display: contents; }
#servicios-slider.fa-areas-grid > .WrapItems a, #servicios-slider.fa-areas-grid a {
  width: auto !important; margin: 0 !important; padding: 2rem !important;
  display: flex; flex-direction: column;
}
#servicios-slider.fa-areas-grid a > div { display: flex; flex-direction: column; height: 100%; }
#servicios-slider.fa-areas-grid a p.text-lg { margin-top: auto; }
@media (max-width: 1023px) { #servicios-slider.fa-areas-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; } }
@media (max-width: 640px)  { #servicios-slider.fa-areas-grid { grid-template-columns: 1fr; padding: 0 1rem; } }
#Footer h1, #contacto h1, #Contacto h1 { font-family: var(--fa-serif); font-weight: 500 !important; letter-spacing: .05em; }
#servicios-slider.fa-areas-grid a p.text-justify { text-align: left !important; }
