
:root {
  --navy: #0b2d53;
  --navy-2: #123f6e;
  --gold: #b88a3d;
  --gold-soft: #d6b779;
  --ivory: #f8f4ec;
  --paper: #fffdf8;
  --ink: #172231;
  --muted: #606975;
  --line: rgba(184, 138, 61, .28);
  --shadow: 0 24px 70px rgba(11, 45, 83, .10);
  --radius: 26px;
  --serif: "Libre Baskerville", Georgia, serif;
  --sans: "DM Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--sans);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; }
.container { width: min(1160px, calc(100% - 40px)); margin-inline: auto; }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255,253,248,.91);
  border-bottom: 1px solid rgba(11,45,83,.08);
  backdrop-filter: blur(16px);
}
.nav-wrap { height: 84px; display:flex; align-items:center; justify-content:space-between; }
.brand img { width: 68px; height: 68px; object-fit: contain; border-radius: 50%; }
.main-nav { display:flex; gap:30px; align-items:center; }
.main-nav a {
  text-decoration:none;
  font-size:.93rem;
  font-weight:600;
  color:#26374a;
  transition:.2s ease;
}
.main-nav a:hover { color: var(--gold); }
.nav-cta {
  border:1px solid var(--gold);
  border-radius:999px;
  padding:10px 18px;
}
.menu-toggle { display:none; background:none; border:0; padding:10px; }
.menu-toggle span:not(.sr-only) { display:block; width:24px; height:2px; margin:5px 0; background:var(--navy); }

.hero {
  position: relative;
  overflow: hidden;
  padding: 105px 0 96px;
  background:
    radial-gradient(circle at 83% 12%, rgba(214,183,121,.18), transparent 30%),
    linear-gradient(135deg, #fffdf8 0%, #f6f0e5 100%);
}
.hero:before {
  content:"";
  position:absolute;
  left:-10vw; bottom:-35vw;
  width:72vw; height:72vw;
  border:1px solid rgba(184,138,61,.16);
  border-radius:50%;
}
.hero-grid {
  position:relative;
  display:grid;
  grid-template-columns: 1.5fr .72fr;
  gap:90px;
  align-items:end;
}
.eyebrow {
  margin:0 0 18px;
  color: var(--gold);
  font-weight:600;
  letter-spacing:.18em;
  font-size:.79rem;
}
.hero h1, .section h2 {
  font-family: var(--serif);
  color:var(--navy);
  font-weight:400;
  letter-spacing:-.035em;
}
.hero h1 {
  margin:0;
  max-width:820px;
  font-size:clamp(3.15rem, 6vw, 5.8rem);
  line-height:1.02;
}
.hero h1 em { color:var(--gold); font-style:normal; }
.hero-lead {
  max-width:760px;
  margin:30px 0 0;
  font-size:1.16rem;
  color:#495463;
}
.hero-actions { display:flex; gap:14px; flex-wrap:wrap; margin-top:36px; }
.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:50px;
  padding:0 22px;
  border-radius:999px;
  text-decoration:none;
  font-weight:600;
  transition:.2s ease;
}
.btn-primary { background:var(--navy); color:white; box-shadow:0 10px 28px rgba(11,45,83,.18); }
.btn-primary:hover { transform:translateY(-2px); background:var(--navy-2); }
.btn-ghost { border:1px solid rgba(11,45,83,.18); color:var(--navy); background:rgba(255,255,255,.45); }
.hero-note {
  padding:30px;
  border:1px solid rgba(184,138,61,.28);
  border-radius:var(--radius);
  background:rgba(255,255,255,.66);
  box-shadow:var(--shadow);
}
.note-kicker { color:var(--gold); text-transform:uppercase; letter-spacing:.12em; font-size:.75rem; font-weight:600; }
.note-quote {
  margin:15px 0 24px;
  font-family:var(--serif);
  color:var(--navy);
  font-size:1.55rem;
  line-height:1.35;
}
.note-tags { display:flex; gap:8px; flex-wrap:wrap; }
.note-tags span { border:1px solid rgba(11,45,83,.12); border-radius:999px; padding:6px 10px; font-size:.78rem; color:#4c5866; background:#fff; }

.section { padding:105px 0; }
.section-head { max-width:760px; margin-bottom:55px; }
.section-head.narrow { max-width:850px; }
.section h2 {
  font-size:clamp(2.15rem, 4vw, 3.6rem);
  line-height:1.17;
  margin:0 0 20px;
}
.section-head p:last-child { color:var(--muted); font-size:1.08rem; margin:0; }

.proposal { background:#fff; }
.steps {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.step { padding:34px 28px 34px 0; position:relative; }
.step + .step { padding-left:28px; border-left:1px solid var(--line); }
.step-number { display:block; margin-bottom:36px; font-family:var(--serif); font-size:1rem; color:var(--gold); }
.step h3 { margin:0 0 10px; font-family:var(--serif); font-weight:400; font-size:1.55rem; color:var(--navy); }
.step p { margin:0; color:var(--muted); font-size:.95rem; }

.areas-section { background:var(--ivory); }
.area-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.area-card {
  position:relative;
  padding:38px;
  min-height:310px;
  border:1px solid rgba(11,45,83,.09);
  border-radius:var(--radius);
  background:#fff;
  box-shadow:0 14px 36px rgba(11,45,83,.06);
  transition:.25s ease;
}
.area-card:hover { transform:translateY(-4px); box-shadow:var(--shadow); }
.area-index { position:absolute; right:32px; top:30px; color:var(--gold-soft); font-family:var(--serif); font-size:1.8rem; }
.area-card h3 { margin:0 0 8px; font-family:var(--serif); color:var(--navy); font-size:1.8rem; font-weight:400; }
.area-card > p { color:var(--muted); margin:0 0 24px; }
.area-card ul { margin:0; padding:0; list-style:none; display:grid; gap:7px; }
.area-card li:before { content:"—"; color:var(--gold); margin-right:9px; }

.team-section { background:#fff; }
.team-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.person-card {
  border:1px solid rgba(184,138,61,.22);
  border-radius:22px;
  overflow:hidden;
  background:#fff;
}
.portrait { aspect-ratio: 4/4.4; background:#eee; overflow:hidden; }
.portrait img { width:100%; height:100%; object-fit:cover; object-position:center; }
.person-card:nth-child(1) .portrait img { object-position:center 32%; }
.person-card:nth-child(2) .portrait img { object-position:center 35%; }
.person-body { padding:23px 23px 28px; }
.role { color:var(--gold); font-weight:600; font-size:.82rem; margin:0 0 6px; text-transform:uppercase; letter-spacing:.06em; }
.person-body h3 { font-family:var(--serif); font-weight:400; color:var(--navy); font-size:1.46rem; margin:0 0 14px; line-height:1.2; }
.person-body p:last-child { margin:0; color:var(--muted); font-size:.9rem; line-height:1.6; }

.diagnostic-section {
  color:#fff;
  background:
    radial-gradient(circle at 75% 20%, rgba(214,183,121,.16), transparent 32%),
    var(--navy);
}
.diagnostic-grid { display:grid; grid-template-columns:1fr 1fr; gap:90px; align-items:center; }
.eyebrow.light { color:var(--gold-soft); }
.diagnostic-section h2 { color:#fff; max-width:650px; }
.diagnostic-lead { color:rgba(255,255,255,.72); font-size:1.06rem; max-width:640px; }
.diagnostic-list { display:grid; }
.diagnostic-list div {
  display:grid;
  grid-template-columns:44px 1fr;
  gap:4px 18px;
  padding:18px 0;
  border-bottom:1px solid rgba(255,255,255,.16);
}
.diagnostic-list span { grid-row:1 / 3; color:var(--gold-soft); font-family:var(--serif); }
.diagnostic-list strong { font-family:var(--serif); font-size:1.28rem; font-weight:400; }
.diagnostic-list small { color:rgba(255,255,255,.65); font-size:.88rem; }

.problems-section { background:#fff; }
.problem-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.problem-grid article {
  display:flex;
  gap:20px;
  padding:28px;
  border:1px solid rgba(11,45,83,.1);
  border-radius:20px;
  background:linear-gradient(145deg,#fff,#fbf7f0);
}
.problem-grid span { font-family:var(--serif); color:var(--gold); font-size:1.15rem; }
.problem-grid p { margin:0; color:#3e4a59; }

.contact-section { background:var(--ivory); }
.contact-card {
  display:grid;
  grid-template-columns:1.25fr .75fr;
  align-items:center;
  gap:50px;
  padding:55px;
  border:1px solid var(--line);
  border-radius:32px;
  background:#fff;
  box-shadow:var(--shadow);
}
.contact-card h2 { margin-bottom:18px; }
.contact-card p { color:var(--muted); max-width:680px; }
.contact-actions { text-align:right; }
.contact-actions p { margin:14px 5px 0; font-size:.9rem; }

.footer { padding:38px 0; background:#071f3a; color:rgba(255,255,255,.72); }
.footer-inner { display:grid; grid-template-columns:auto 1fr auto; gap:20px; align-items:center; }
.footer img { width:62px; height:62px; border-radius:50%; }
.footer p { margin:0; font-size:.88rem; }
.footer-note { color:var(--gold-soft); text-align:right; font-family:var(--serif); font-size:1rem !important; }

@media (max-width: 980px) {
  .main-nav { position:absolute; top:84px; left:0; right:0; display:none; flex-direction:column; align-items:stretch; padding:22px 20px 26px; background:#fffdf8; border-bottom:1px solid rgba(11,45,83,.08); }
  .main-nav.open { display:flex; }
  .main-nav a { padding:8px 0; }
  .menu-toggle { display:block; }
  .hero-grid, .diagnostic-grid, .contact-card { grid-template-columns:1fr; gap:42px; }
  .hero { padding-top:72px; }
  .hero h1 { font-size:clamp(3rem, 10vw, 5rem); }
  .steps { grid-template-columns:repeat(2,1fr); }
  .step:nth-child(3) { border-left:0; border-top:1px solid var(--line); padding-left:0; }
  .step:nth-child(4) { border-top:1px solid var(--line); }
  .team-grid { grid-template-columns:repeat(2,1fr); }
  .contact-actions { text-align:left; }
}

@media (max-width: 640px) {
  .container { width:min(100% - 28px, 1160px); }
  .nav-wrap { height:74px; }
  .brand img { width:58px; height:58px; }
  .main-nav { top:74px; }
  .hero { padding:58px 0 68px; }
  .hero h1 { font-size:2.75rem; line-height:1.04; }
  .hero-lead { font-size:1.02rem; }
  .section { padding:74px 0; }
  .section h2 { font-size:2.2rem; letter-spacing:-.028em; }
  .steps, .area-grid, .team-grid, .problem-grid { grid-template-columns:1fr; }
  .step, .step + .step, .step:nth-child(3) {
    padding:28px 0;
    border-left:0;
    border-top:1px solid var(--line);
  }
  .step:first-child { border-top:0; }
  .step-number { margin-bottom:16px; }
  .area-card { padding:30px 26px; min-height:auto; }
  .portrait { aspect-ratio:4/4.15; }
  .contact-card { padding:34px 26px; }
  .contact-actions .btn { width:100%; font-size:.9rem; }
  .footer-inner { grid-template-columns:auto 1fr; }
  .footer-note { grid-column:1 / -1; text-align:left; padding-top:10px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *:before, *:after { transition:none !important; }
}


/* ===== Team section v2: homogeneous editorial portraits ===== */
.team-head {
  max-width: 820px;
}

.team-grid-editorial {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.person-card-editorial {
  display: grid;
  grid-template-columns: 190px 1fr;
  align-items: center;
  min-height: 260px;
  padding: 28px;
  border: 1px solid rgba(184, 138, 61, .30);
  border-radius: 26px;
  background:
    linear-gradient(145deg, rgba(255,255,255,.98), rgba(248,244,236,.82));
  box-shadow: 0 16px 38px rgba(11,45,83,.055);
  overflow: visible;
}

.person-card-editorial:hover {
  transform: translateY(-3px);
  box-shadow: 0 22px 55px rgba(11,45,83,.085);
}

.portrait-circle {
  width: 164px;
  height: 164px;
  aspect-ratio: 1;
  overflow: visible;
  background: transparent;
  justify-self: center;
}

.portrait-circle img {
  width: 100%;
  height: 100%;
  object-fit: contain !important;
  object-position: center !important;
  border-radius: 50%;
}

.person-card-editorial .person-body {
  padding: 0 0 0 4px;
}

.person-card-editorial .role {
  margin-bottom: 7px;
  color: var(--gold);
  letter-spacing: .075em;
}

.person-card-editorial h3 {
  margin-bottom: 9px;
  font-size: clamp(1.35rem, 2vw, 1.75rem);
}

.person-tagline {
  color: var(--navy) !important;
  font-family: var(--serif);
  font-size: 1.02rem !important;
  line-height: 1.4 !important;
  margin: 0 0 10px !important;
}

.person-card-editorial .person-body > p:last-child {
  color: var(--muted);
  font-size: .89rem;
  line-height: 1.6;
}

.team-manifesto {
  margin-top: 28px;
  padding: 28px 34px;
  display: grid;
  grid-template-columns: 1.5fr .75fr;
  gap: 42px;
  align-items: center;
  border-radius: 24px;
  background: var(--navy);
  color: white;
}

.team-manifesto .eyebrow {
  color: var(--gold-soft);
  margin-bottom: 8px;
}

.team-manifesto p:last-child {
  margin: 0;
  color: rgba(255,255,255,.75);
}

.team-manifesto strong {
  font-family: var(--serif);
  font-size: 1.35rem;
  font-weight: 400;
  color: var(--gold-soft);
  line-height: 1.4;
  border-left: 1px solid rgba(214,183,121,.45);
  padding-left: 32px;
}

@media (max-width: 980px) {
  .team-grid-editorial {
    grid-template-columns: 1fr;
  }

  .person-card-editorial {
    grid-template-columns: 180px 1fr;
  }
}

@media (max-width: 640px) {
  .person-card-editorial {
    grid-template-columns: 1fr;
    text-align: center;
    padding: 28px 22px;
  }

  .portrait-circle {
    width: 150px;
    height: 150px;
    margin-bottom: 18px;
  }

  .person-card-editorial .person-body {
    padding: 0;
  }

  .team-manifesto {
    grid-template-columns: 1fr;
    gap: 18px;
    text-align: left;
  }

  .team-manifesto strong {
    border-left: 0;
    border-top: 1px solid rgba(214,183,121,.45);
    padding: 18px 0 0;
  }
}

/* ===== Team portrait v3 exact uniformity ===== */
.portrait-circle{
  width: 168px !important;
  height: 168px !important;
  min-width: 168px;
  min-height: 168px;
  background: transparent !important;
  overflow: visible !important;
}
.portrait-circle img{
  width:168px !important;
  height:168px !important;
  display:block;
  object-fit:contain !important;
  object-position:center !important;
  border-radius:50% !important;
  background:transparent !important;
}
@media (max-width:640px){
  .portrait-circle,
  .portrait-circle img{
    width:154px !important;
    height:154px !important;
    min-width:154px;
    min-height:154px;
  }
}


/* ===== A&C Integra v4: refined typography and spacing ===== */

/* HERO: elegant, controlled title, always 2 lines on desktop */
.hero {
  padding-top: 88px;
  padding-bottom: 82px;
}
.hero-copy {
  min-width: 0;
}
.hero h1 {
  max-width: 900px;
  font-size: clamp(3rem, 5.1vw, 4.65rem);
  line-height: 1.06;
  letter-spacing: -.038em;
}
.hero h1 span {
  display: block;
}
.hero-lead {
  max-width: 780px;
  margin-top: 26px;
}
.hero-grid {
  gap: 62px;
}

/* PROPOSAL: reduce title so it resolves in 2 elegant lines */
.proposal-head {
  max-width: 920px !important;
}
.proposal-head h2 {
  max-width: 900px;
  font-size: clamp(2.2rem, 4vw, 3.35rem);
  line-height: 1.14;
}

/* TEAM heading: allow one line on normal desktop widths */
.team-head {
  max-width: 1120px !important;
}
.team-head h2 {
  max-width: 1120px;
  font-size: clamp(2rem, 3.45vw, 3.2rem);
  white-space: nowrap;
}

/* PROBLEMS: use available width; avoid the large dead area on the right */
.problems-head {
  max-width: 1080px !important;
  margin-bottom: 42px;
}
.problems-head h2 {
  max-width: 1050px;
  font-size: clamp(2.15rem, 3.7vw, 3.25rem);
  line-height: 1.13;
}
.problem-grid {
  width: 100%;
  gap: 18px;
}
.problem-grid article {
  min-height: 112px;
  align-items: flex-start;
}

/* Contact/social */
.contact-links {
  margin-top: 15px;
  display: flex;
  gap: 12px 18px;
  flex-wrap: wrap;
  justify-content: flex-end;
  font-size: .91rem;
}
.contact-links a {
  color: var(--navy);
  font-weight: 600;
  text-decoration: none;
}
.contact-links a:hover {
  color: var(--gold);
}
.contact-links span {
  color: var(--muted);
}

/* Footer */
.copyright {
  display: inline-block;
  margin-top: 6px;
  color: rgba(255,255,255,.48);
  font-size: .76rem;
}
.footer-right {
  text-align: right;
}
.footer-social {
  display: inline-block;
  margin-top: 7px;
  color: var(--gold-soft);
  text-decoration: none;
  font-size: .86rem;
  font-weight: 600;
}
.footer-social:hover {
  color: #fff;
}

/* Responsive refinements */
@media (max-width: 1050px) {
  .team-head h2 {
    white-space: normal;
  }
}

@media (max-width: 980px) {
  .hero h1 {
    font-size: clamp(2.9rem, 8vw, 4.4rem);
  }
  .proposal-head h2,
  .team-head h2,
  .problems-head h2 {
    font-size: clamp(2.05rem, 6vw, 3rem);
  }
  .contact-links {
    justify-content: flex-start;
  }
}

@media (max-width: 640px) {
  .hero {
    padding-top: 52px;
    padding-bottom: 62px;
  }
  .hero h1 {
    font-size: clamp(2.45rem, 12vw, 3.05rem);
  }
  .proposal-head h2,
  .team-head h2,
  .problems-head h2 {
    font-size: 2.05rem;
    line-height: 1.15;
  }
  .footer-right {
    text-align: left;
  }
}


/* ===== A&C Integra v5: proposal section rebalanced ===== */
.proposal {
  padding-top: 88px;
  padding-bottom: 92px;
}

.proposal-head {
  max-width: 1120px !important;
  margin-bottom: 48px;
}

.proposal-head .eyebrow {
  margin-bottom: 18px;
}

.proposal-title {
  max-width: 1120px !important;
  width: 100%;
  margin: 0 0 24px !important;
  font-size: clamp(2.35rem, 3.45vw, 3.25rem) !important;
  line-height: 1.16 !important;
  letter-spacing: -.032em !important;
}

.proposal-title span {
  display: block;
  white-space: nowrap;
}

.proposal-head > p:last-child {
  max-width: 860px;
  font-size: 1.04rem;
  line-height: 1.72;
}

/* make the four process steps feel closer to the headline */
.proposal .steps {
  margin-top: 8px;
}

@media (max-width: 980px) {
  .proposal-title {
    font-size: clamp(2.2rem, 5.6vw, 2.9rem) !important;
  }
  .proposal-title span {
    white-space: normal;
  }
}

@media (max-width: 640px) {
  .proposal {
    padding-top: 68px;
    padding-bottom: 72px;
  }
  .proposal-title {
    font-size: 2.05rem !important;
    line-height: 1.18 !important;
  }
  .proposal-title span {
    display: inline;
    white-space: normal;
  }
}


/* ===== A&C Integra v6: centered editorial aesthetic ===== */

/* HERO: centered, cleaner and more premium */
.hero {
  padding-top: 86px;
  padding-bottom: 84px;
}

.hero-grid {
  display: block !important;
  max-width: 1080px;
  margin: 0 auto;
}

.hero-copy-centered {
  max-width: 980px;
  margin: 0 auto;
  text-align: center;
}

.hero-copy-centered .eyebrow {
  text-align: center;
  margin-bottom: 18px;
}

.hero-copy-centered h1 {
  max-width: 980px;
  margin-left: auto;
  margin-right: auto;
  font-size: clamp(3.2rem, 5vw, 4.9rem);
  line-height: 1.03;
}

.hero-copy-centered .hero-lead {
  max-width: 820px;
  margin: 28px auto 0;
  text-align: center;
  font-size: 1.12rem;
  line-height: 1.7;
}

.hero-principle {
  margin: 18px auto 0;
  color: var(--gold);
  font-family: var(--serif);
  font-size: 1.08rem;
  letter-spacing: -.01em;
}

.hero-copy-centered .hero-actions {
  justify-content: center;
  margin-top: 30px;
}

/* PROPOSAL: centered like a strong editorial statement */
.proposal-head-centered {
  max-width: 1120px !important;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.proposal-head-centered .eyebrow {
  text-align: center;
}

.proposal-head-centered .proposal-title {
  max-width: 1080px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center;
  font-size: clamp(2.5rem, 3.55vw, 3.45rem) !important;
  line-height: 1.12 !important;
}

.proposal-head-centered > p:last-child {
  max-width: 820px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

/* Team headline also feels more composed centered */
.team-head {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.team-head .eyebrow {
  text-align: center;
}
.team-head p:last-child {
  margin-left: auto;
  margin-right: auto;
}

/* Problems title: centered and wider, using space better */
.problems-head {
  max-width: 1180px !important;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.problems-head .eyebrow {
  text-align: center;
}
.problems-head h2 {
  max-width: 1120px;
  margin-left: auto;
  margin-right: auto;
}

@media (max-width: 640px) {
  .hero-copy-centered h1 {
    font-size: 2.65rem;
  }

  .hero-copy-centered .hero-lead {
    font-size: 1rem;
  }

  .proposal-head-centered .proposal-title {
    font-size: 2.08rem !important;
  }
}


/* ===== A&C Integra v7: HERO opción B centrada ===== */
.hero {
  padding-top: 92px;
  padding-bottom: 84px;
}

.hero-grid {
  display: block !important;
  max-width: 1180px !important;
  margin: 0 auto !important;
}

.hero-copy-centered {
  max-width: 1100px !important;
  margin: 0 auto !important;
  text-align: center !important;
}

.hero-copy-centered .eyebrow {
  text-align: center !important;
  margin-bottom: 20px !important;
}

.hero-title-b {
  width: 100% !important;
  max-width: 1100px !important;
  margin: 0 auto !important;
  text-align: center !important;
  font-size: clamp(3.4rem, 5.1vw, 5rem) !important;
  line-height: 1.03 !important;
  letter-spacing: -.04em !important;
}

.hero-title-b span {
  display: block !important;
  white-space: nowrap !important;
}

.hero-title-b em {
  font-style: normal !important;
  color: var(--gold) !important;
}

.hero-copy-centered .hero-lead {
  max-width: 820px !important;
  margin: 30px auto 0 !important;
  text-align: center !important;
  font-size: 1.08rem !important;
  line-height: 1.7 !important;
}

.hero-copy-centered .hero-principle {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.hero-copy-centered .hero-actions {
  justify-content: center !important;
}

@media (max-width: 900px) {
  .hero-title-b {
    font-size: clamp(2.8rem, 7.5vw, 4.1rem) !important;
  }
}

@media (max-width: 640px) {
  .hero {
    padding-top: 56px;
    padding-bottom: 64px;
  }

  .hero-title-b {
    font-size: 2.55rem !important;
    line-height: 1.06 !important;
  }

  .hero-title-b span {
    white-space: normal !important;
  }
}


/* ===== A&C Integra v9: Áreas / Cuatro especialidades ===== */
.areas-section {
  padding-top: 82px;
  padding-bottom: 92px;
}

.areas-head {
  max-width: 1120px !important;
  margin: 0 auto 44px !important;
  text-align: center;
}

.areas-head .eyebrow {
  text-align: center;
  margin-bottom: 16px;
}

.areas-head h2 {
  max-width: 1120px;
  margin: 0 auto 16px;
  text-align: center;
  font-size: clamp(2.3rem, 3.55vw, 3.45rem);
  line-height: 1.12;
  white-space: nowrap;
  letter-spacing: -.032em;
}

.areas-head p:last-child {
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
  font-size: 1.02rem;
  line-height: 1.65;
}

.area-grid {
  gap: 22px;
}

.area-card {
  padding: 34px 36px;
  min-height: 286px;
  border-radius: 24px;
}

.area-card h3 {
  font-size: 1.65rem;
  margin-bottom: 10px;
}

.area-card > p {
  margin-bottom: 22px;
  font-size: .96rem;
}

.area-index {
  right: 30px;
  top: 28px;
  font-size: 1.55rem;
}

@media (max-width: 980px) {
  .areas-head h2 {
    white-space: normal;
    font-size: clamp(2.1rem, 5.5vw, 3rem);
  }
}

@media (max-width: 640px) {
  .areas-section {
    padding-top: 68px;
    padding-bottom: 72px;
  }

  .areas-head {
    margin-bottom: 34px !important;
  }

  .areas-head h2 {
    font-size: 2.05rem;
    line-height: 1.16;
  }

  .area-card {
    padding: 28px 24px;
  }
}


/* ===== A&C Integra v10: heading Areas ===== */
.areas-head h2{
  font-size:clamp(2.2rem,3.25vw,3.15rem)!important;
  white-space:nowrap!important;
}
@media(max-width:980px){
  .areas-head h2{white-space:normal!important}
}


/* ===== A&C Integra v11: equipo totalmente homogéneo ===== */

.team-grid-editorial {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  grid-auto-rows: 1fr !important;
  gap: 24px !important;
  align-items: stretch !important;
}

.person-card-editorial {
  display: grid !important;
  grid-template-columns: 190px minmax(0, 1fr) !important;
  align-items: center !important;
  min-height: 330px !important;
  height: 100% !important;
  padding: 30px !important;
  border: 1px solid rgba(184,138,61,.30) !important;
  border-radius: 26px !important;
  background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(248,244,236,.82)) !important;
  box-shadow: 0 16px 38px rgba(11,45,83,.055) !important;
  overflow: hidden !important;
}

.portrait-circle {
  width: 168px !important;
  height: 168px !important;
  min-width: 168px !important;
  min-height: 168px !important;
  margin: 0 auto !important;
  background: transparent !important;
  overflow: visible !important;
}

.portrait-circle img {
  width: 168px !important;
  height: 168px !important;
  display: block !important;
  object-fit: contain !important;
  object-position: center !important;
  border-radius: 50% !important;
  background: transparent !important;
}

.person-card-editorial .person-body {
  padding: 0 0 0 8px !important;
  align-self: center !important;
}

.person-card-editorial .role {
  min-height: 1.35em;
  margin: 0 0 7px !important;
}

.person-card-editorial h3 {
  margin: 0 0 9px !important;
  line-height: 1.18 !important;
}

.person-tagline {
  min-height: 2.8em;
  margin: 0 0 11px !important;
}

.person-card-editorial .person-body > p:last-child {
  margin: 0 !important;
  line-height: 1.58 !important;
}

/* Slightly smaller text only where needed so all four cards remain balanced */
.person-card-editorial:nth-child(3) .person-body > p:last-child,
.person-card-editorial:nth-child(4) .person-body > p:last-child {
  font-size: .865rem !important;
}

@media (max-width: 980px) {
  .team-grid-editorial {
    grid-template-columns: 1fr !important;
    grid-auto-rows: auto !important;
  }

  .person-card-editorial {
    min-height: 300px !important;
    grid-template-columns: 180px minmax(0, 1fr) !important;
  }
}

@media (max-width: 640px) {
  .person-card-editorial {
    grid-template-columns: 1fr !important;
    min-height: auto !important;
    text-align: center !important;
    padding: 28px 22px !important;
  }

  .portrait-circle,
  .portrait-circle img {
    width: 154px !important;
    height: 154px !important;
    min-width: 154px !important;
    min-height: 154px !important;
  }

  .person-card-editorial .person-body {
    padding: 18px 0 0 !important;
  }

  .person-tagline {
    min-height: auto;
  }
}


/* ===== A&C Integra v12: Instagram clickable with icon ===== */
.contact-links {
  align-items: center;
}

.instagram-link,
.site-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
}

.instagram-link {
  color: var(--navy) !important;
  font-weight: 600;
}

.instagram-link:hover,
.site-link:hover {
  color: var(--gold) !important;
}

.instagram-icon {
  display: inline-flex;
  width: 34px;
  height: 34px;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(184,138,61,.42);
  border-radius: 50%;
  color: var(--gold);
  background: rgba(255,255,255,.8);
}

.site-link {
  color: var(--muted) !important;
}

.footer-social {
  display: inline-flex !important;
  align-items: center;
  gap: 6px;
}

.footer-instagram-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}


/* ===== A&C Integra v13: motion + lead capture ===== */

.motion-section {
  padding: 24px 0 0;
  background: #fff;
}

.motion-panel {
  position: relative;
  overflow: hidden;
  padding: 52px 42px;
  border-radius: 28px;
  background:
    radial-gradient(circle at 15% 20%, rgba(214,183,121,.14), transparent 34%),
    linear-gradient(135deg, #fffdf8 0%, #f7f1e7 100%);
  border: 1px solid rgba(184,138,61,.24);
}

.motion-panel::after {
  content:"";
  position:absolute;
  width:340px;
  height:340px;
  border:1px solid rgba(184,138,61,.16);
  border-radius:50%;
  right:-110px;
  top:-145px;
  animation: driftRing 12s ease-in-out infinite alternate;
}

.motion-panel .eyebrow {
  text-align:center;
  margin-bottom:20px;
}

.motion-words {
  position:relative;
  z-index:1;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:16px;
  flex-wrap:wrap;
  font-family:var(--serif);
  color:var(--navy);
  font-size:clamp(1.85rem,3.4vw,3.15rem);
  line-height:1.2;
  text-align:center;
}

.motion-words span {
  animation: gentleFloat 6s ease-in-out infinite;
}

.motion-words span:nth-of-type(2) { animation-delay:.6s; }
.motion-words span:nth-of-type(3) { animation-delay:1.2s; }
.motion-words span:nth-of-type(4) { animation-delay:1.8s; }

.motion-words i {
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--gold);
  opacity:.72;
}

.motion-copy {
  position:relative;
  z-index:1;
  max-width:760px;
  margin:22px auto 0;
  text-align:center;
  color:var(--muted);
}

@keyframes gentleFloat {
  0%,100% { transform:translateY(0); }
  50% { transform:translateY(-5px); }
}

@keyframes driftRing {
  from { transform:translate(0,0) scale(1); }
  to { transform:translate(-22px,18px) scale(1.05); }
}

/* Scroll reveal */
.reveal {
  opacity:0;
  transform:translateY(22px);
  transition:opacity .75s ease, transform .75s ease;
}
.reveal.is-visible {
  opacity:1;
  transform:translateY(0);
}

/* Contact lead form */
.contact-section {
  background:var(--ivory);
  padding-top:92px;
}

.contact-intro {
  max-width:900px;
  margin:0 auto 46px;
  text-align:center;
}

.contact-intro .eyebrow {
  text-align:center;
}

.contact-intro h2 {
  margin:0 0 16px;
  text-align:center;
}

.contact-intro > p:last-child {
  max-width:680px;
  margin:0 auto;
  color:var(--muted);
  font-size:1.05rem;
}

.contact-layout {
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);
  gap:28px;
  align-items:start;
}

.lead-form,
.contact-side {
  border:1px solid rgba(184,138,61,.24);
  border-radius:28px;
  background:#fff;
  box-shadow:0 18px 50px rgba(11,45,83,.07);
}

.lead-form {
  padding:34px;
}

.form-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}

.field {
  display:flex;
  flex-direction:column;
  gap:8px;
}

.field-full {
  grid-column:1/-1;
}

.field label {
  color:var(--navy);
  font-size:.88rem;
  font-weight:600;
}

.field input,
.field select,
.field textarea {
  width:100%;
  border:1px solid rgba(11,45,83,.14);
  border-radius:14px;
  padding:13px 14px;
  font:inherit;
  color:var(--ink);
  background:#fffdf9;
  outline:none;
  transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.field textarea {
  resize:vertical;
  min-height:130px;
}

.field input:focus,
.field select:focus,
.field textarea:focus {
  border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(184,138,61,.10);
  background:#fff;
}

.consent label {
  display:flex;
  flex-direction:row;
  gap:10px;
  align-items:flex-start;
  font-weight:400;
  color:var(--muted);
  line-height:1.5;
}

.consent input {
  width:auto;
  margin-top:4px;
}

.form-submit {
  border:0;
  cursor:pointer;
}

.contact-side {
  padding:34px;
  position:sticky;
  top:112px;
}

.contact-side-kicker {
  margin:0 0 14px;
  font-family:var(--serif);
  color:var(--navy);
  font-size:1.65rem;
  line-height:1.32;
}

.contact-side > p:nth-child(2) {
  color:var(--muted);
  margin:0 0 24px;
}

.contact-methods {
  display:grid;
  gap:12px;
}

.contact-methods a {
  display:flex;
  gap:12px;
  align-items:center;
  padding:14px 14px;
  border:1px solid rgba(11,45,83,.09);
  border-radius:16px;
  background:#fffdf9;
  text-decoration:none;
  transition:transform .2s ease, border-color .2s ease;
}

.contact-methods a:hover {
  transform:translateY(-2px);
  border-color:rgba(184,138,61,.5);
}

.method-icon {
  width:38px;
  height:38px;
  min-width:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:var(--navy);
  color:#fff;
  font-size:.78rem;
  font-weight:700;
}

.contact-methods small {
  display:block;
  color:var(--gold);
  font-size:.73rem;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.contact-methods strong {
  display:block;
  margin-top:2px;
  color:var(--navy);
  font-size:.91rem;
  font-weight:600;
  word-break:break-word;
}

.form-feedback {
  max-width:760px;
  margin:20px auto 0;
  text-align:center;
}

@media (max-width: 900px) {
  .contact-layout {
    grid-template-columns:1fr;
  }
  .contact-side {
    position:static;
  }
}

@media (max-width: 640px) {
  .motion-panel {
    padding:40px 22px;
  }

  .motion-words {
    gap:10px;
    font-size:1.9rem;
  }

  .motion-words i {
    display:none;
  }

  .form-grid {
    grid-template-columns:1fr;
  }

  .field-full {
    grid-column:auto;
  }

  .lead-form,
  .contact-side {
    padding:26px 22px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .motion-panel::after,
  .motion-words span {
    animation:none !important;
  }
  .reveal {
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
}


/* ===== A&C Integra v14: equipo alineado desde arriba ===== */
.team-grid-editorial{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:24px !important;
  align-items:stretch !important;
}

.person-card-editorial{
  display:grid !important;
  grid-template-columns:170px minmax(0,1fr) !important;
  gap:22px !important;
  align-items:start !important;
  min-height:340px !important;
  height:100% !important;
  padding:30px !important;
}

.portrait-circle{
  width:158px !important;
  height:158px !important;
  min-width:158px !important;
  min-height:158px !important;
  margin:0 !important;
  align-self:start !important;
}

.portrait-circle img{
  width:158px !important;
  height:158px !important;
  object-fit:contain !important;
  object-position:center !important;
  display:block !important;
}

.person-card-editorial .person-body{
  padding:0 !important;
  margin:0 !important;
  align-self:start !important;
}

.person-card-editorial .role{
  margin:0 0 6px !important;
  min-height:auto !important;
}

.person-card-editorial h3{
  margin:0 0 8px !important;
}

.person-tagline{
  margin:0 0 12px !important;
  min-height:auto !important;
}

.person-card-editorial .person-body > p:last-child{
  margin:0 !important;
  font-size:.89rem !important;
  line-height:1.58 !important;
}

/* keep all four cards visually identical */
.person-card-editorial:nth-child(3) .person-body > p:last-child,
.person-card-editorial:nth-child(4) .person-body > p:last-child{
  font-size:.89rem !important;
}

@media (max-width:980px){
  .team-grid-editorial{grid-template-columns:1fr !important}
}

@media (max-width:640px){
  .person-card-editorial{
    grid-template-columns:1fr !important;
    text-align:center !important;
    min-height:auto !important;
  }
  .portrait-circle{
    margin:0 auto !important;
  }
}


/* =========================================================
   A&C INTEGRA — VERSIÓN DEFINITIVA
   Marca más visible + movimiento sutil + sin bloque repetido
   ========================================================= */

/* Logo más protagonista en la portada */
.hero-brand-logo{
  width: 148px;
  height: 148px;
  object-fit: contain;
  margin: 0 auto 22px;
  border-radius: 50%;
  display: block;
  filter: drop-shadow(0 14px 28px rgba(11,45,83,.10));
  animation: brandEntrance 1.05s cubic-bezier(.2,.75,.2,1) both;
}

@keyframes brandEntrance{
  from{opacity:0; transform:translateY(-14px) scale(.94);}
  to{opacity:1; transform:translateY(0) scale(1);}
}

/* Un poquito más de presencia también en la barra */
.brand img{
  width:72px !important;
  height:72px !important;
}

/* Entrada progresiva al hacer scroll */
.reveal{
  opacity:0;
  transform:translateY(24px);
  transition:
    opacity .72s ease,
    transform .72s cubic-bezier(.2,.72,.2,1);
  will-change: opacity, transform;
}

.reveal.is-visible{
  opacity:1;
  transform:translateY(0);
}

/* Ritmo visual: pequeñas demoras dentro de grillas */
.steps .reveal:nth-child(2),
.area-grid .reveal:nth-child(2),
.team-grid .reveal:nth-child(2),
.problem-grid .reveal:nth-child(2){transition-delay:.08s;}

.steps .reveal:nth-child(3),
.area-grid .reveal:nth-child(3),
.team-grid .reveal:nth-child(3),
.problem-grid .reveal:nth-child(3){transition-delay:.16s;}

.steps .reveal:nth-child(4),
.area-grid .reveal:nth-child(4),
.team-grid .reveal:nth-child(4),
.problem-grid .reveal:nth-child(4){transition-delay:.24s;}

/* Movimiento elegante, no invasivo */
.area-card,
.person-card-editorial,
.problem-grid article{
  transition:
    transform .28s ease,
    box-shadow .28s ease,
    border-color .28s ease;
}

.area-card:hover,
.person-card-editorial:hover,
.problem-grid article:hover{
  transform:translateY(-5px);
  box-shadow:0 20px 50px rgba(11,45,83,.09);
  border-color:rgba(184,138,61,.46);
}

/* El aro del fondo del hero se desplaza suavemente */
.hero::before{
  animation: heroArc 14s ease-in-out infinite alternate;
}

@keyframes heroArc{
  from{transform:translate3d(0,0,0) scale(1);}
  to{transform:translate3d(24px,-12px,0) scale(1.025);}
}

/* Botones con microinteracción */
.btn{
  transition:
    transform .22s ease,
    box-shadow .22s ease,
    background-color .22s ease,
    border-color .22s ease !important;
}

.btn:hover{
  transform:translateY(-2px);
}

/* Footer y logo */
.footer img{
  width:72px !important;
  height:72px !important;
}

/* Al reducir pantalla */
@media(max-width:640px){
  .hero-brand-logo{
    width:112px;
    height:112px;
    margin-bottom:18px;
  }
  .brand img{
    width:58px !important;
    height:58px !important;
  }
}

/* Respeto por accesibilidad */
@media(prefers-reduced-motion:reduce){
  .hero-brand-logo,
  .hero::before{
    animation:none !important;
  }
  .reveal{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
  .area-card,
  .person-card-editorial,
  .problem-grid article,
  .btn{
    transition:none !important;
  }
}


/* ===== A&C Integra v20: redes visibles en header + LinkedIn ===== */
.header-right {
  display: flex;
  align-items: center;
  gap: 18px;
}

.header-socials {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.header-socials a {
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(11,45,83,.18);
  border-radius: 50%;
  color: var(--navy);
  background: rgba(255,255,255,.72);
  text-decoration: none;
  transition: .2s ease;
}

.header-socials a:hover {
  color: #fff;
  background: var(--navy);
  border-color: var(--navy);
  transform: translateY(-1px);
}

.footer-socials {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}

.footer-social {
  display: inline-flex !important;
  align-items: center;
  gap: 6px;
}

.footer-linkedin-icon,
.footer-instagram-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

@media (max-width: 1040px) {
  .main-nav { gap: 20px; }
  .header-right { gap: 12px; }
}

@media (max-width: 900px) {
  .nav-wrap {
    position: relative;
  }

  .header-right {
    margin-left: auto;
    gap: 10px;
  }

  .header-socials {
    order: 1;
  }

  .menu-toggle {
    display: block;
    order: 2;
  }

  .main-nav {
    position: absolute;
    top: 84px;
    left: 0;
    right: 0;
    z-index: 60;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 14px 20px 22px;
    background: rgba(255,253,248,.98);
    border-bottom: 1px solid rgba(11,45,83,.10);
    box-shadow: 0 18px 28px rgba(11,45,83,.08);
  }

  .main-nav.open,
  .main-nav.is-open {
    display: flex;
  }

  .main-nav a {
    padding: 11px 4px;
  }

  .main-nav .nav-cta {
    text-align: center;
    margin-top: 6px;
  }
}

@media (max-width: 640px) {
  .nav-wrap { height: 76px; }
  .brand img { width: 60px; height: 60px; }
  .header-socials a { width: 34px; height: 34px; }
  .main-nav { top: 76px; }
  .footer-socials {
    justify-content: flex-start;
  }
}
