/* ALDAY & Asociados Abogados */
:root {
  --navy: #1f3042;
  --navy-dark: #182738;
  --gold: #a58a63;
  --gold-light: #d9c09a;
  --cream: #f8f7f4;
  --text: #243447;
  --line: rgba(165, 138, 99, .42);
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans: "Montserrat", Arial, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--text); font-family: var(--sans); background: var(--cream); }
a { color: inherit; text-decoration: none; }
.container { width: min(1180px, calc(100% - 48px)); margin: 0 auto; }
.site-header { position: fixed; inset: 0 0 auto; z-index: 1000; background: rgba(255,255,255,.97); transition: box-shadow .25s; }
.site-header.scrolled { box-shadow: 0 4px 20px rgba(0,0,0,.1); }
.header-inner { min-height: 154px; display: flex; align-items: center; justify-content: space-between; gap: 40px; }
.brand { display: inline-flex; flex-direction: column; align-items: center; }
.brand-mark { font-family: var(--serif); font-size: 6.4rem; font-weight: 700; line-height: .72; letter-spacing: -7px; color: #505050; }
.brand-mark span { color: #1c2c3e; font-size: .64em; letter-spacing: -3px; }
.brand-name { margin-top: 18px; font-family: var(--serif); font-size: 1.55rem; line-height: .9; text-align: center; color: #263548; }
.brand-name strong { font-weight: 500; }
.main-nav { display: flex; align-items: center; gap: 35px; }
.main-nav a { position: relative; padding: 18px 0; font-size: .78rem; font-weight: 500; letter-spacing: .02em; text-transform: uppercase; }
.main-nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 4px; height: 2px; background: var(--gold); transform: scaleX(0); transition: transform .2s; }
.main-nav a:hover::after, .main-nav a.active::after { transform: scaleX(1); }
.menu-toggle { display: none; border: 0; background: transparent; padding: 8px; cursor: pointer; }
.menu-toggle span { display: block; width: 28px; height: 2px; margin: 5px; background: var(--navy); }
.hero { min-height: 560px; padding-top: 154px; position: relative; display: flex; align-items: center; background: url("../img/hero-monterrey.jpg") center / cover no-repeat, linear-gradient(100deg,#1d2d3f,#7890a0); }
.hero-overlay { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(18,32,48,.96),rgba(24,39,55,.76) 42%,rgba(24,39,55,.12) 78%); }
.hero-content { position: relative; z-index: 1; color: white; padding: 70px 0; }
.eyebrow, .hero h1 { margin: 0; font-family: var(--serif); font-weight: 600; line-height: .85; }
.eyebrow { font-size: clamp(3.3rem,6vw,5.2rem); }
.hero h1 { color: var(--gold-light); font-size: clamp(3.2rem,5.5vw,4.9rem); margin-top: 16px; }
.gold-line { display: block; width: 56px; height: 4px; margin: 34px 0 25px; background: var(--gold-light); }
.hero-description { margin: 0 0 30px; font-family: var(--serif); font-size: clamp(1.55rem,2.5vw,2.25rem); line-height: 1.18; }
.btn { display: inline-block; border: 1px solid transparent; padding: 14px 24px; font: 600 .78rem var(--sans); letter-spacing: .04em; text-transform: uppercase; cursor: pointer; transition: .2s; }
.btn-gold { background: var(--gold); color: white; border-color: var(--gold); }
.btn-gold:hover { background: #8e734d; border-color: #8e734d; }
.section-light { background: var(--cream); }
.intro { padding: 75px 0; }
.intro-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 75px; align-items: start; }
h2 { margin: 0 0 25px; font: 600 clamp(2.8rem,4.5vw,4rem)/.95 var(--serif); color: var(--navy); }
.section-kicker { margin: 0 0 15px; font-size: .72rem; letter-spacing: .22em; text-transform: uppercase; color: var(--gold); font-weight: 700; }
.section-kicker.light { color: var(--gold-light); }
.section-kicker.center, .center { text-align: center; }
.intro-copy { font-size: 1rem; line-height: 1.9; }
.intro-copy p { margin: 0 0 18px; }
.section-dark { position: relative; background: url("../img/team-background.jpg") center/cover no-repeat,linear-gradient(90deg,#273748,#53606b); color: white; }
.team-overlay { position: absolute; inset: 0; background: rgba(19,32,45,.78); }
.team-content { position: relative; padding: 70px 0 75px; }
.team h2 { color: white; margin-bottom: 15px; }
.section-lead { max-width: 720px; margin: 0 auto 40px; text-align: center; line-height: 1.7; }
.section-lead.dark { color: #53606b; }
.team-grid { display: grid; grid-template-columns: repeat(3,1fr); }
.team-member { text-align: center; padding: 0 28px; border-right: 1px solid rgba(255,255,255,.55); }
.team-member:last-child { border-right: 0; }
.profile-icon { width: 78px; height: 78px; margin: 0 auto 18px; border: 2px solid white; border-radius: 50%; display: grid; place-items: center; font-size: 2.4rem; }
.team-member h3 { margin: 0 0 10px; font-size: 1rem; line-height: 1.4; font-weight: 600; }
.team-member p { margin: 0; font-size: .85rem; line-height: 1.6; opacity: .85; }
.services { padding: 75px 0; }
.services h2 { text-align: center; }
.services-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--line); margin-top: 35px; }
.service-card { background: var(--cream); padding: 35px 28px; text-align: center; min-height: 245px; }
.service-icon { height: 58px; color: var(--gold); font: 3.6rem/1 var(--serif); }
.service-card h3 { margin: 15px 0 12px; font-size: 1rem; }
.service-card p { margin: 0; font-size: .88rem; line-height: 1.7; color: #53606b; }
.process { padding: 0 0 80px; }
.process h2 { text-align: center; }
.process-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 35px; margin-top: 35px; }
.process-item { border-top: 2px solid var(--gold); padding-top: 20px; }
.process-item span { font: 2rem var(--serif); color: var(--gold); }
.process-item h3 { font-size: 1rem; margin: 12px 0; }
.process-item p { font-size: .88rem; line-height: 1.7; color: #53606b; }
.contact { position: relative; overflow: hidden; background: var(--navy); color: white; }
.contact-side { position: absolute; inset: 0 auto 0 0; width: 7%; background: #ded6cc; }
.contact-inner { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 70px; padding: 70px 0; }
.address-block h2 { color: white; max-width: 480px; }
.address-block > p:not(.section-kicker) { max-width: 470px; line-height: 1.7; color: rgba(255,255,255,.82); }
.address-details { margin-top: 30px; line-height: 1.7; color: rgba(255,255,255,.9); }
.address-details p { margin: 0 0 12px; }
.address-details a:hover { color: var(--gold-light); }
.consultation { display: inline-block; margin-top: 18px; border: 1px solid var(--gold-light); padding: 15px 18px; color: var(--gold-light); line-height: 1.5; }
.contact-form { background: rgba(255,255,255,.06); padding: 30px; border: 1px solid rgba(255,255,255,.22); }
.contact-form h3 { margin: 0 0 8px; font: 2rem var(--serif); }
.contact-form > p { margin: 0 0 25px; font-size: .85rem; line-height: 1.6; color: rgba(255,255,255,.75); }
.contact-form label { display: block; margin: 15px 0 7px; font-size: .78rem; font-weight: 600; }
.contact-form input, .contact-form select, .contact-form textarea { width: 100%; border: 1px solid rgba(255,255,255,.35); background: rgba(255,255,255,.95); color: var(--text); padding: 12px; font: .88rem var(--sans); border-radius: 0; }
.contact-form textarea { resize: vertical; }
.contact-form .btn { margin-top: 20px; }
.form-note { font-size: .72rem !important; margin: 15px 0 0 !important; }
.footer-motto { padding: 28px 0; background: var(--cream); text-align: center; letter-spacing: .38em; font-size: .75rem; color: #263548; }
.footer-motto p { margin: 0; }
.footer-motto span { margin: 0 18px; color: var(--gold); }
/* Botón flotante de WhatsApp */
.whatsapp-float {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 1100;

  width: 62px;
  height: 62px;

  display: flex;
  align-items: center;
  justify-content: center;

  border-radius: 50%;
  background: #25D366;
  color: #FFFFFF;

  box-shadow: 0 5px 18px rgba(0, 0, 0, 0.25);

  transition: transform 0.2s ease;
}

.whatsapp-float:hover {
  transform: scale(1.08);
  color: #FFFFFF;
}

.whatsapp-float svg {
  width: 36px;
  height: 36px;
  display: block;
}
@media (max-width: 1000px) {
  .header-inner { min-height: 110px; }
  .brand-mark { font-size: 4.8rem; }
  .brand-name { font-size: 1.15rem; margin-top: 14px; }
  .main-nav { gap: 20px; }
  .main-nav a { font-size: .68rem; }
  .hero { padding-top: 110px; }
  .services-grid { grid-template-columns: repeat(2,1fr); }
  .contact-inner { gap: 35px; }
}
@media (max-width: 700px) {
  .container { width: calc(100% - 32px); }
  .header-inner { min-height: 86px; }
  .brand-mark { font-size: 3.8rem; letter-spacing: -5px; }
  .brand-name { font-size: .9rem; margin-top: 12px; }
  .menu-toggle { display: block; }
  .main-nav { position: absolute; top: 86px; left: 0; right: 0; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: 12px 24px 18px; background: white; box-shadow: 0 12px 20px rgba(0,0,0,.08); }
  .main-nav.open { display: flex; }
  .main-nav a { padding: 14px 0; }
  .hero { min-height: 500px; padding-top: 86px; }
  .hero-overlay { background: linear-gradient(90deg,rgba(18,32,48,.95),rgba(18,32,48,.35)); }
  .desktop-only { display: none; }
  .intro-grid, .contact-inner { grid-template-columns: 1fr; gap: 35px; }
  .intro { padding: 55px 0; }
  .team-content, .services { padding: 55px 0; }
  .team-grid, .services-grid, .process-grid { grid-template-columns: 1fr; }
  .team-member { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.4); padding: 0 0 25px; margin-bottom: 25px; }
  .team-member:last-child { border-bottom: 0; margin-bottom: 0; }
  .service-card { min-height: auto; }
  .contact-inner { padding: 55px 0; }
  .contact-side { width: 3%; }
  .contact-form { padding: 22px; }
  .footer-motto { font-size: .6rem; letter-spacing: .12em; }
  .footer-motto span { margin: 0 7px; }
  .whatsapp-float { right: 17px; bottom: 17px; width: 56px; height: 56px; }
}
