/* DJ-KHABAS — editorial legal redesign */
:root {
  --legal-ink: #07120f;
  --legal-green: #0a2a20;
  --legal-green-2: #103a2d;
  --legal-paper: #f0eadf;
  --legal-paper-2: #d8cfc0;
  --legal-gold: #c59a42;
  --legal-gold-light: #e1bd71;
  --legal-line: rgba(224, 192, 125, .23);
  --legal-serif: Didot, "Bodoni MT", Georgia, "Times New Roman", serif;
  --legal-sans: "Helvetica Neue", Poppins, Arial, sans-serif;
}

html {
  scroll-behavior: smooth;
  font-size: clamp(16px, 1vw, 20px);
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
body {
  overflow-x: hidden;
  background: var(--legal-ink) !important;
  color: var(--legal-paper);
  font-family: var(--legal-sans) !important;
  font-size: 1rem;
  line-height: 1.7;
}
body, p, a, span, input, textarea, button { -webkit-font-smoothing: antialiased; }
::selection { background: var(--legal-gold); color: var(--legal-ink); }
.social-icon {
  display: block;
  width: clamp(15px, .9rem, 20px);
  height: clamp(15px, .9rem, 20px);
  flex: 0 0 auto;
  fill: currentColor;
}
.social-icon--stroke {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
}
.social-icon--stroke .social-icon__dot { fill: currentColor; stroke: none; }
.social-icon--inline { display: inline-block; width: 14px; height: 14px; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible {
  outline: 2px solid var(--legal-gold-light) !important;
  outline-offset: 4px;
}
.skip-link { background: var(--legal-paper) !important; color: var(--legal-ink) !important; }

/* Announcement and utility bar */
.promo-banner {
  position: relative !important;
  z-index: 1001 !important;
  margin: 0 !important;
  border: 0 !important;
  border-bottom: 1px solid var(--legal-line) !important;
  border-radius: 0 !important;
  background: var(--legal-ink) !important;
  box-shadow: none !important;
}
.promo-banner__inner {
  width: min(1440px, 100%) !important;
  min-height: 58px !important;
  margin: auto !important;
  padding: 8px clamp(1.2rem, 4vw, 4.5rem) !important;
}
.promo-banner__message {
  color: var(--legal-paper) !important;
  font-family: var(--legal-serif) !important;
  font-size: 1.05rem !important;
  font-weight: 400 !important;
  letter-spacing: .02em !important;
}
.promo-banner__icon { color: var(--legal-gold) !important; }
.promo-banner__button {
  min-height: 38px !important;
  padding: 9px 18px !important;
  border: 1px solid rgba(224, 192, 125, .55) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--legal-gold-light) !important;
  font-size: .75rem !important;
  font-weight: 600 !important;
  letter-spacing: .15em !important;
  text-transform: uppercase;
}
.promo-banner__button:hover { background: var(--legal-gold) !important; color: var(--legal-ink) !important; }
.promo-banner__close { color: var(--legal-paper) !important; }
.pre-header {
  min-height: 40px;
  padding: 7px 0 !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(255,255,255,.07) !important;
  background: #06100d !important;
}
.pre-header ul.info li a, .pre-header ul.social-media li a {
  color: rgba(240,234,223,.66) !important;
  font-size: .76rem !important;
  letter-spacing: .05em;
}
.pre-header ul.info li a { display: inline-flex; align-items: center; gap: .42rem; }
.pre-header ul.info li a:hover, .pre-header ul.social-media li a:hover { color: var(--legal-gold-light) !important; }
.pre-header ul.info li a i, .pre-header ul.social-media li a i { color: var(--legal-gold) !important; }
.pre-header ul.social-media li a {
  display: grid !important;
  width: 26px !important;
  height: 26px !important;
  place-items: center;
  border: 1px solid var(--legal-line);
  border-radius: 50% !important;
  background: transparent !important;
}

/* Navigation */
.header-area {
  position: relative !important;
  top: 0 !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  z-index: 999 !important;
  min-height: 98px !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(255,255,255,.08) !important;
  background: var(--legal-green) !important;
  box-shadow: none !important;
}
.header-area.background-header {
  position: fixed !important;
  top: 0 !important;
  background: rgba(7, 18, 15, .94) !important;
  backdrop-filter: blur(16px);
}
.header-area .main-nav { min-height: 98px !important; display: flex; align-items: center; }
.header-area .main-nav .logo { margin-top: 0 !important; }
.header-area .main-nav .logo img {
  width: 210px !important;
  max-height: 68px !important;
  border-radius: 0 !important;
  object-fit: contain;
}
.header-area .main-nav .nav { margin-top: 0 !important; align-items: center; }
.header-area .main-nav .nav li { padding: 0 clamp(.65rem, 1.35vw, 1.35rem) !important; }
.header-area .main-nav .nav li a {
  height: auto !important;
  color: rgba(240,234,223,.76) !important;
  font-size: .78rem !important;
  font-weight: 500 !important;
  letter-spacing: .15em !important;
  line-height: 1 !important;
  text-transform: uppercase;
}
.header-area .main-nav .nav li a:hover,
.header-area .main-nav .nav li a.active { color: var(--legal-gold-light) !important; }
.header-area .main-nav .nav li a::after {
  content: "";
  display: block;
  width: 0;
  height: 1px;
  margin-top: 8px;
  background: var(--legal-gold);
  transition: width .3s ease;
}
.header-area .main-nav .nav li a:hover::after,
.header-area .main-nav .nav li a.active::after { width: 100%; }
.header-area .border-first-button a {
  padding: 13px 20px !important;
  border: 1px solid rgba(224,192,125,.6) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--legal-gold-light) !important;
}
.header-area .border-first-button a:hover { background: var(--legal-gold) !important; color: var(--legal-ink) !important; }

/* Hero */
.main-banner {
  position: relative;
  min-height: calc(100svh - 196px);
  padding: clamp(5rem, 9vh, 7rem) 0 clamp(5rem, 9vh, 7rem) !important;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(4,14,11,.97) 0%, rgba(4,14,11,.88) 39%, rgba(4,14,11,.47) 68%, rgba(4,14,11,.18) 100%),
    linear-gradient(0deg, rgba(4,14,11,.72), transparent 40%),
    url("../images/fondo1.png") center 43% / cover no-repeat !important;
}
.main-banner::before {
  content: "ESTUDIO JURÍDICO · LIMA, PERÚ";
  position: absolute;
  left: auto;
  right: 2.5rem;
  top: 50%;
  bottom: auto;
  width: auto;
  height: auto;
  background: none !important;
  color: rgba(240,234,223,.48);
  font-size: .65rem;
  letter-spacing: .38em;
  writing-mode: vertical-rl;
  z-index: 1;
}
.main-banner::after {
  content: "";
  position: absolute;
  left: clamp(1.5rem, 5vw, 5rem);
  right: auto;
  top: auto;
  bottom: 2.2rem;
  width: 54px;
  height: 1px;
  background: var(--legal-gold);
  z-index: 1;
}
.main-banner .container {
  width: 100% !important;
  max-width: none !important;
  padding-inline: clamp(1.5rem, 7vw, 7.5rem) !important;
}
.main-banner .col-lg-6:first-child { flex: 0 0 70% !important; max-width: 70% !important; }
.main-banner .col-lg-6:last-child { display: none !important; }
.main-banner .left-content { margin: 0 !important; }
.main-banner .left-content h6 {
  display: flex;
  align-items: center;
  gap: .9rem;
  margin-bottom: 1.5rem !important;
  color: var(--legal-gold-light) !important;
  font-size: .76rem !important;
  font-weight: 500 !important;
  letter-spacing: .25em !important;
  line-height: 1.6 !important;
  text-transform: uppercase;
}
.main-banner .left-content h6::before { content: ""; width: 38px; height: 1px; background: var(--legal-gold); }
.main-banner .left-content h1 {
  max-width: 920px;
  margin: 0 0 1.5rem !important;
  color: var(--legal-paper) !important;
  font-family: var(--legal-serif) !important;
  font-size: clamp(3.5rem, 5.2vw, 6.5rem) !important;
  font-weight: 400 !important;
  letter-spacing: -.045em !important;
  line-height: .91 !important;
  text-transform: none !important;
}
.main-banner .left-content p {
  max-width: 650px;
  margin: 0 0 2.2rem !important;
  color: rgba(240,234,223,.72) !important;
  font-family: Georgia, serif;
  font-size: 1.02rem !important;
  line-height: 1.8 !important;
}
.main-banner .border-first-button a,
#contact-form .main-button {
  min-width: 170px;
  padding: 16px 24px !important;
  border: 1px solid var(--legal-gold) !important;
  border-radius: 0 !important;
  background: var(--legal-gold) !important;
  color: var(--legal-ink) !important;
  font-size: .76rem !important;
  font-weight: 700 !important;
  letter-spacing: .18em !important;
  text-transform: uppercase;
  transition: transform .25s ease, background .25s ease !important;
}
.main-banner .border-first-button a:hover,
#contact-form .main-button:hover { transform: translateY(-3px); background: var(--legal-gold-light) !important; }

/* Shared typography */
.section { padding-block: clamp(6rem, 10vw, 10rem) !important; }
.section-heading .section-kicker,
.section-heading > p:first-child:not(:only-child) {
  color: #957234 !important;
  font-size: .76rem !important;
  font-weight: 600 !important;
  letter-spacing: .24em !important;
  text-transform: uppercase;
}
.section-heading h2 {
  color: inherit !important;
  font-family: var(--legal-serif) !important;
  font-size: clamp(3rem, 5.6vw, 6.3rem) !important;
  font-weight: 400 !important;
  letter-spacing: -.04em !important;
  line-height: .92 !important;
  text-transform: none !important;
}
.section-heading h2 em { color: var(--legal-gold) !important; font-weight: 400 !important; }
.line-dec { width: 72px !important; height: 1px !important; margin: 1.5rem 0 !important; background: var(--legal-gold) !important; }

/* About */
.about {
  position: relative;
  margin: 0 !important;
  background: var(--legal-paper) !important;
  color: var(--legal-ink) !important;
}
.about::before {
  content: "01  ·  LA FIRMA";
  position: absolute;
  top: 4rem;
  left: max(1.5rem, calc((100vw - 1140px) / 2));
  color: #86662e;
  font-size: .72rem;
  letter-spacing: .24em;
}
.about .container { max-width: 1240px !important; }
.about .about-left-image { position: relative; margin: 0 0 2rem !important; }
.about .about-left-image::before {
  content: "";
  position: absolute;
  inset: -14px 14px 14px -14px;
  z-index: 0;
  border: 1px solid rgba(135,101,45,.35);
}
.about .about-left-image img {
  position: relative;
  z-index: 1;
  width: 100% !important;
  max-height: 540px !important;
  border-radius: 0 !important;
  object-fit: cover;
  filter: saturate(.76) contrast(1.05);
}
.about .col-lg-4 > .section-heading { padding: 0 1.2rem 0 0; }
.about .col-lg-4 > .section-heading > p:first-child { display: none; }
.about .col-lg-4 > .section-heading h3 {
  margin: 0 0 1rem !important;
  color: var(--legal-ink);
  font-family: var(--legal-serif);
  font-size: 2rem;
  font-weight: 400;
  letter-spacing: .02em;
  text-align: left !important;
}
.about .section-heading p, .about .about-right-content > p {
  color: #4f4941 !important;
  font-family: Georgia, serif;
  font-size: .98rem !important;
  line-height: 1.8 !important;
}
.about .about-right-content { margin: 0 0 0 clamp(1rem, 4vw, 4.5rem) !important; }
.about .about-right-content .section-heading { margin-bottom: 2rem !important; }
.about .about-right-content > p { margin-bottom: 1.1rem !important; }
.about .skill-item { margin-top: 2.2rem !important; }
.about .progress {
  width: 120px !important;
  height: 120px !important;
  margin: auto !important;
  border: 1px solid rgba(10,42,32,.18) !important;
  border-radius: 50% !important;
  background: transparent !important;
}
.about .progress .progress-left, .about .progress .progress-right { display: none !important; }
.about .progress .progress-value { color: var(--legal-green) !important; font-family: var(--legal-serif); font-size: 1.6rem !important; }
.about .progress .progress-value span { font-family: var(--legal-sans); font-size: .68rem !important; font-weight: 600 !important; letter-spacing: .15em; text-transform: uppercase; }
.about .about-pillars-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  margin-top: clamp(3rem, 6vw, 5rem);
  border-top: 1px solid rgba(7,18,15,.15);
  border-bottom: 1px solid rgba(7,18,15,.15);
}
.about .about-pillars-grid > .section-heading {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
  margin: 0 !important;
  padding: clamp(1.8rem, 3.2vw, 2.8rem) clamp(1.25rem, 2.7vw, 2.5rem) !important;
  border-right: 1px solid rgba(7,18,15,.15);
  text-align: left !important;
}
.about .about-pillars-grid > .section-heading:last-child { border-right: 0; }
.about .about-pillars-grid > .section-heading h3 {
  margin: 0 !important;
  color: var(--legal-green);
  font-family: var(--legal-serif);
  font-size: clamp(1.45rem, 2.15vw, 1.8rem);
  font-weight: 400;
}
.about .about-pillars-grid > .section-heading .line-dec {
  width: 48px;
  height: 1px;
  margin: 1.15rem 0 1.4rem !important;
  background: var(--legal-gold) !important;
}
.about .about-pillars-grid > .section-heading p {
  margin: 0 !important;
  font-size: .94rem !important;
  line-height: 1.75 !important;
  text-align: left !important;
  hyphens: none;
  overflow-wrap: normal;
  word-break: normal;
}

/* Practice areas */
#services {
  position: relative;
  padding-bottom: clamp(7rem, 12vw, 12rem) !important;
  background:
    radial-gradient(circle at 82% 10%, rgba(197,154,66,.11), transparent 28%),
    var(--legal-ink) !important;
  color: var(--legal-paper) !important;
}
#services::before {
  content: "02  ·  ÁREAS DE PRÁCTICA";
  position: absolute;
  top: 4rem;
  left: max(1.5rem, calc((100vw - 1140px) / 2));
  right: auto;
  bottom: auto;
  width: auto;
  height: auto;
  background: none !important;
  color: var(--legal-gold);
  font-size: .72rem;
  letter-spacing: .24em;
  z-index: 1;
}
#services::after { content: none !important; display: none !important; }
#services .section-heading { margin: 0 0 4rem !important; }
#services .section-heading .section-kicker { color: var(--legal-gold-light) !important; }
#services .section-heading h2 { color: var(--legal-paper) !important; }
#services .services-scroll-sticky { top: 90px !important; }
#services .practice-two-column { gap: 1.2rem !important; }
#services .practice-list { gap: 0 !important; padding: 0 !important; border-top: 1px solid var(--legal-line); }
#services .practice-menu-viewport {
  scroll-behavior: smooth;
  scrollbar-gutter: stable;
}
#services .practice-menu-viewport.is-wheel-navigating {
  cursor: ns-resize;
}
#services .practice-list > .practice-card {
  border: 0 !important;
  border-bottom: 1px solid var(--legal-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  filter: none !important;
}
#services .practice-list > .practice-card .thumb {
  min-height: 74px !important;
  padding: 10px 15px !important;
  gap: 13px !important;
}
#services .practice-list > .practice-card .icon {
  display: grid !important;
  flex: 0 0 50px !important;
  width: 50px !important;
  height: 50px !important;
  place-items: center;
  border: 1px solid rgba(224,192,125,.24);
  border-radius: 2px;
  background: rgba(240,234,223,.94);
  transition: border-color .2s ease, background-color .2s ease, transform .2s ease;
}
#services .practice-list > .practice-card .icon img {
  width: 48px !important;
  height: 48px !important;
  min-width: 48px !important;
  max-width: 48px !important;
  max-height: 48px !important;
  margin: 0 !important;
  justify-self: stretch;
  align-self: stretch;
  object-fit: contain;
  border-radius: 0 !important;
  opacity: .72;
  transition: opacity .2s ease, transform .2s ease;
}
#services .practice-list .practice-name {
  color: rgba(240,234,223,.72) !important;
  font-family: var(--legal-serif);
  font-size: 1.32rem !important;
  font-weight: 400 !important;
}
#services .practice-list > .practice-card.is-scroll-current,
#services .practice-list > .practice-card.active {
  background: linear-gradient(90deg, rgba(197,154,66,.16), transparent) !important;
}
#services .practice-list > .practice-card.is-scroll-current::before {
  top: 0 !important;
  bottom: 0 !important;
  width: 2px !important;
  border-radius: 0 !important;
  background: var(--legal-gold) !important;
}
#services .practice-list > .practice-card.is-scroll-current .practice-name,
#services .practice-list > .practice-card.active .practice-name { color: var(--legal-gold-light) !important; }
#services .practice-list > .practice-card.is-scroll-current .icon,
#services .practice-list > .practice-card.active .icon {
  border-color: rgba(224,192,125,.68);
  background: var(--legal-paper);
  transform: translateX(2px);
}
#services .practice-list > .practice-card.is-scroll-current .icon img,
#services .practice-list > .practice-card.active .icon img {
  opacity: 1;
  transform: none;
}
#services .practice-scroll-status { color: rgba(240,234,223,.58) !important; font-size: .78rem !important; }
#services .practice-scroll-progress { border-radius: 0 !important; background: rgba(255,255,255,.1) !important; }
#services .practice-scroll-progress > span { border-radius: 0 !important; background: var(--legal-gold) !important; }
#services .practice-detail-panel {
  border: 1px solid var(--legal-line) !important;
  border-radius: 0 !important;
  background: var(--legal-paper) !important;
  box-shadow: 0 30px 80px rgba(0,0,0,.28) !important;
}
#services .practice-detail-panel .nacc li .left-text h3 {
  color: var(--legal-green) !important;
  font-family: var(--legal-serif) !important;
  font-size: clamp(2.3rem, 3.5vw, 4rem) !important;
  font-weight: 400 !important;
  line-height: 1 !important;
}
#services .practice-detail-panel .nacc li .left-text > p { color: #504941 !important; font-family: Georgia, serif; line-height: 1.7 !important; }
#services .ticks-list span { color: #3f3a34 !important; font-size: .9rem !important; }
#services .ticks-list span i { color: #916d2d !important; }
#services .practice-more-link {
  display: inline-block !important;
  margin-top: 1.2rem !important;
  padding-bottom: .3rem !important;
  border-bottom: 1px solid #9a7531;
  color: #75571f !important;
  font-size: .76rem !important;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
}
#services .practice-detail-panel .right-image img { border-radius: 0 !important; filter: saturate(.75) contrast(1.04); }

/* Latin statement */
.free-quote {
  position: relative;
  padding: clamp(6rem, 10vw, 10rem) 1.5rem !important;
  background:
    linear-gradient(rgba(7,18,15,.78), rgba(7,18,15,.82)),
    url("../images/quote-bg.jpg") center / cover no-repeat !important;
}
.free-quote::before, .free-quote::after { content: ""; position: absolute; top: 50%; width: 13vw; height: 1px; background: var(--legal-gold); opacity: .55; }
.free-quote::before { left: 0; }
.free-quote::after { right: 0; }
.free-quote .section-heading { margin: 0 !important; text-align: center; }
.free-quote .section-heading h6 { color: var(--legal-gold-light) !important; font-size: .76rem !important; letter-spacing: .3em; text-transform: uppercase; }
.free-quote .section-heading h4 {
  position: relative;
  display: block;
  margin: 1rem 0 0 !important;
  color: var(--legal-paper) !important;
  font-family: var(--legal-serif) !important;
  font-size: clamp(2.2rem, 4.8vw, 5.4rem) !important;
  font-weight: 400 !important;
  letter-spacing: -.02em;
  line-height: 1.1 !important;
}
.latin-typewriter::before {
  content: attr(data-typewriter-text);
  display: block;
  visibility: hidden;
}
.latin-typewriter__live {
  position: absolute;
  inset: 0;
  display: block;
}
.latin-typewriter__caret {
  display: inline-block;
  width: .035em;
  height: .82em;
  margin-left: .08em;
  background: var(--legal-gold-light);
  opacity: 0;
  transform: translateY(.06em);
}
.latin-typewriter.is-typing .latin-typewriter__caret {
  opacity: 1;
  animation: latin-caret-blink .72s steps(1, end) infinite;
}
.latin-typewriter.is-complete .latin-typewriter__caret { opacity: 0; }
@keyframes latin-caret-blink {
  0%, 46% { opacity: 1; }
  47%, 100% { opacity: 0; }
}
.free-quote .line-dec { margin: 2rem auto 0 !important; }

/* Clients */
.our-portfolio { margin: 0 !important; background: var(--legal-paper) !important; color: var(--legal-ink) !important; }
.our-portfolio .section-heading { margin-bottom: 3.5rem !important; }
.our-portfolio .loop { padding-block: 1rem 3rem !important; }
.our-portfolio .portfolio-item {
  overflow: hidden;
  border: 1px solid rgba(7,18,15,.14) !important;
  border-radius: 0 !important;
  background: rgba(255,255,255,.45) !important;
  box-shadow: none !important;
  transition: transform .35s ease, box-shadow .35s ease;
}
.our-portfolio .portfolio-item:hover { transform: translateY(-7px); box-shadow: 0 22px 50px rgba(7,18,15,.13) !important; }
.our-portfolio .portfolio-item .thumb { min-height: 200px; padding: 2rem; display: grid; place-items: center; background: #fff; }
.our-portfolio .portfolio-item .thumb img { max-height: 150px; object-fit: contain !important; filter: saturate(.75); }
.our-portfolio .portfolio-item .down-content { padding: 1.5rem !important; border-top: 1px solid rgba(7,18,15,.1); background: transparent !important; }
.our-portfolio .portfolio-item .down-content h4 { color: var(--legal-green) !important; font-family: var(--legal-serif); font-size: 1.35rem !important; font-weight: 400 !important; }
.our-portfolio .portfolio-item .down-content span { color: #71685e !important; font-size: .75rem !important; letter-spacing: .15em; text-transform: uppercase; }
.owl-nav span { color: var(--legal-gold) !important; }

/* Contact */
.contact-us {
  position: relative;
  margin: 0 !important;
  padding-top: clamp(6rem, 10vw, 10rem) !important;
  background:
    radial-gradient(circle at 20% 0, rgba(197,154,66,.1), transparent 27%),
    var(--legal-green) !important;
  color: var(--legal-paper) !important;
}
.contact-us .section-heading { margin-bottom: 4rem !important; text-align: center; }
.contact-us .section-heading .section-kicker { color: var(--legal-gold-light) !important; }
.contact-us .section-heading h2 { color: var(--legal-paper) !important; }
.contact-us .section-heading .line-dec { margin-inline: auto !important; }
.contact-us form {
  overflow: hidden;
  border: 1px solid var(--legal-line) !important;
  border-radius: 0 !important;
  background: var(--legal-ink) !important;
  box-shadow: 0 35px 90px rgba(0,0,0,.32) !important;
}
.contact-us .contact-dec { display: none !important; }
.contact-us #map { height: 100% !important; min-height: 640px; }
.contact-us #map iframe { height: 100% !important; min-height: 640px; filter: grayscale(1) sepia(.12) contrast(.92); }
.contact-us .fill-form { min-height: 640px; padding: clamp(2rem, 4vw, 4rem) !important; border-radius: 0 !important; background: transparent !important; }
.contact-us .info-post .icon { min-height: 130px !important; padding: 1rem .4rem !important; }
.contact-us .info-post .icon img { width: 34px !important; margin-bottom: .8rem !important; filter: sepia(1) saturate(.7); }
.contact-us .info-post .icon a { color: rgba(240,234,223,.72) !important; font-size: .78rem !important; line-height: 1.5 !important; }
.contact-us fieldset input,
.contact-us fieldset textarea {
  border: 0 !important;
  border-bottom: 1px solid rgba(240,234,223,.25) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--legal-paper) !important;
  font-size: max(15px, .86rem) !important;
  box-shadow: none !important;
}
.contact-us fieldset input::placeholder,
.contact-us fieldset textarea::placeholder { color: rgba(240,234,223,.42) !important; }
.contact-us fieldset input:focus,
.contact-us fieldset textarea:focus { border-color: var(--legal-gold) !important; }
.contact-us fieldset textarea { min-height: 205px !important; }
.contact-us .contact-submit-column { margin-top: 1rem; }

/* Footer and WhatsApp */
footer {
  padding: 3rem 1rem !important;
  border-top: 1px solid var(--legal-line);
  background: #040a08 !important;
}
footer p { color: rgba(240,234,223,.55) !important; font-size: .76rem !important; letter-spacing: .08em; line-height: 1.8 !important; }
footer p a { color: var(--legal-gold-light) !important; }
.whatsapp-button {
  bottom: 24px !important;
  right: 24px !important;
  padding: 13px 18px !important;
  border: 1px solid rgba(224,192,125,.5) !important;
  border-radius: 0 !important;
  background: rgba(7,18,15,.94) !important;
  color: var(--legal-gold-light) !important;
  box-shadow: 0 10px 35px rgba(0,0,0,.28) !important;
  font-size: .76rem !important;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.whatsapp-button .social-icon { width: 19px; height: 19px; }
.whatsapp-button:hover { background: var(--legal-gold) !important; color: var(--legal-ink) !important; transform: translateY(-3px); }

/* Escala de escritorio amplio: 1440p, ultrawide y 4K */
@media (min-width: 1440px) {
  .container {
    width: 100% !important;
    max-width: min(88vw, 1720px) !important;
  }

  .promo-banner__inner {
    width: min(92vw, 1720px) !important;
    min-height: clamp(58px, 3.1vw, 78px) !important;
  }

  .pre-header { min-height: clamp(40px, 2vw, 54px); }
  .pre-header ul.social-media li a {
    width: clamp(26px, 1.5vw, 36px) !important;
    height: clamp(26px, 1.5vw, 36px) !important;
  }

  .header-area,
  .header-area .main-nav { min-height: clamp(98px, 5.2vw, 128px) !important; }
  .header-area .main-nav .logo img {
    width: clamp(210px, 10.5vw, 280px) !important;
    max-height: clamp(68px, 4vw, 96px) !important;
  }
  .header-area .border-first-button a { padding: .8rem 1.25rem !important; }

  .main-banner {
    min-height: calc(100svh - clamp(196px, 9.5vw, 260px));
    padding-block: clamp(7rem, 9vh, 10rem) !important;
  }
  .main-banner .left-content h1 { max-width: clamp(920px, 52vw, 1200px); }
  .main-banner .left-content p { max-width: clamp(650px, 36vw, 860px); }

  .about .container { max-width: min(88vw, 1720px) !important; }
  .about .about-left-image img { max-height: 680px !important; }
  .about .about-right-content { margin-left: clamp(2rem, 4vw, 6rem) !important; }
  .about .progress { width: 140px !important; height: 140px !important; }

  #services .services-scroll-sticky {
    top: clamp(90px, 5.2vw, 132px) !important;
    height: calc(100svh - 164px) !important;
    min-height: 760px;
  }
  #services .practice-two-column { gap: 2rem !important; }
  #services .practice-list > .practice-card .thumb {
    min-height: 94px !important;
    padding: 14px 20px !important;
    gap: 18px !important;
  }
  #services .practice-list > .practice-card .icon {
    flex-basis: 64px !important;
    width: 64px !important;
    height: 64px !important;
  }
  #services .practice-list > .practice-card .icon img {
    width: 62px !important;
    height: 62px !important;
    min-width: 62px !important;
    max-width: 62px !important;
    max-height: 62px !important;
  }
  #services .practice-detail-panel .nacc li .left-text > p { font-size: 1rem !important; }
  #services .ticks-list span { font-size: .95rem !important; }

  .our-portfolio .portfolio-item .thumb { min-height: 250px; }
  .our-portfolio .portfolio-item .thumb img { max-height: 190px; }
  .our-portfolio .portfolio-item .down-content { padding: 1.8rem !important; }

  .contact-us #map,
  .contact-us #map iframe,
  .contact-us .fill-form { min-height: 760px !important; }
  .contact-us .info-post .icon { min-height: 150px !important; }

  .whatsapp-button {
    right: 1.5rem !important;
    bottom: 1.5rem !important;
    padding: .85rem 1.1rem !important;
  }
}

@media (max-width: 991px) {
  .pre-header { display: none !important; }
  .header-area { min-height: 78px !important; }
  .header-area .main-nav { min-height: 78px !important; }
  .header-area .main-nav .logo img { width: 175px !important; max-height: 58px !important; }
  .header-area .main-nav .menu-trigger { color: var(--legal-paper) !important; }
  .header-area .main-nav .menu-trigger span,
  .header-area .main-nav .menu-trigger span::before,
  .header-area .main-nav .menu-trigger span::after { background: var(--legal-gold-light) !important; }
  .header-area .main-nav .nav {
    position: fixed !important;
    inset: 78px 0 0 !important;
    width: 100vw !important;
    height: calc(100svh - 78px) !important;
    padding: 2.5rem 1.5rem !important;
    overflow-y: auto;
    border-top: 1px solid var(--legal-line) !important;
    background: rgba(7,18,15,.98) !important;
  }
  .header-area .main-nav .nav li {
    width: 100% !important;
    padding: 0 !important;
    border-bottom: 1px solid rgba(255,255,255,.08) !important;
    background: transparent !important;
  }
  .header-area .main-nav .nav li a {
    width: 100% !important;
    height: 62px !important;
    padding: 0 1rem !important;
    line-height: 62px !important;
    color: var(--legal-paper) !important;
    font-family: var(--legal-serif) !important;
    font-size: 1.35rem !important;
    font-weight: 400 !important;
    letter-spacing: .03em !important;
    text-align: left !important;
    text-transform: none;
    background: transparent !important;
  }
  .header-area .main-nav .nav li .border-first-button { margin: 1.5rem 0 0 !important; }
  .header-area .main-nav .nav li .border-first-button a {
    height: 54px !important;
    line-height: 52px !important;
    text-align: center !important;
    text-transform: uppercase;
    font-family: var(--legal-sans) !important;
    font-size: .68rem !important;
    letter-spacing: .16em !important;
  }
  .header-area .main-nav .nav li a::after { display: none; }
  .main-banner { min-height: 760px; background-position: 62% center !important; }
  .main-banner .col-lg-6:first-child { flex: 0 0 90% !important; max-width: 90% !important; }
  .main-banner .left-content { text-align: left !important; }
  .main-banner .left-content h6 { justify-content: flex-start; }
  .main-banner .left-content p { margin-inline: 0 !important; }
  .about .about-right-content { margin: 4rem 0 0 !important; }
  #services .services-scroll-sticky { position: relative !important; top: auto !important; height: auto !important; min-height: 0 !important; }
  #services .practice-two-column { grid-template-columns: 1fr !important; height: auto !important; }
  #services .practice-left-column { min-height: auto !important; }
  #services .practice-menu-viewport { overflow: visible !important; }
  #services .practice-list { display: grid !important; grid-template-columns: repeat(2, 1fr); }
  #services .practice-detail-panel { min-height: 680px; }
  .contact-us #map, .contact-us #map iframe { min-height: 420px !important; }
  .contact-us .fill-form { min-height: 0; }
}

@media (max-width: 767px) {
  .about .about-pillars-grid { grid-template-columns: 1fr; }
  .about .about-pillars-grid > .section-heading {
    padding: 1.8rem 0 !important;
    border-right: 0;
    border-bottom: 1px solid rgba(7,18,15,.15);
  }
  .about .about-pillars-grid > .section-heading:last-child { border-bottom: 0; }
}

@media (max-width: 575px) {
  .promo-banner__inner { min-height: 66px !important; padding: 8px 2.8rem 8px 1rem !important; }
  .promo-banner__message { font-size: .87rem !important; line-height: 1.2 !important; }
  .promo-banner__button { padding: 8px 10px !important; }
  .promo-banner__button-text-long { display: none; }
  .main-banner { min-height: 740px; padding: 7rem 0 6rem !important; background-position: 68% center !important; }
  .main-banner::before { display: none; }
  .main-banner .col-lg-6:first-child { flex: 0 0 100% !important; max-width: 100% !important; }
  .main-banner .left-content h1 { font-size: clamp(3.05rem, 14vw, 4.8rem) !important; }
  .main-banner .left-content h6 { font-size: .57rem !important; letter-spacing: .17em !important; }
  .main-banner .left-content p { font-size: .94rem !important; }
  .section { padding-block: 6rem !important; }
  .about::before, #services::before { top: 2.4rem; left: 1rem; }
  .about .progress { width: 96px !important; height: 96px !important; }
  #services .section-heading { margin-bottom: 2.5rem !important; }
  #services .practice-list { grid-template-columns: 1fr; }
  #services .practice-list > .practice-card .thumb { min-height: 58px !important; }
  #services .practice-list .practice-name { font-size: 1.06rem !important; }
  #services .practice-detail-panel { min-height: 720px; }
  #services .practice-detail-panel .nacc li .thumb { padding: 1.4rem !important; }
  .free-quote::before, .free-quote::after { display: none; }
  .contact-us #map, .contact-us #map iframe { min-height: 320px !important; }
  .contact-us .fill-form { padding: 2rem 1.3rem !important; }
  .contact-us .info-post .icon { min-height: 100px !important; }
  .whatsapp-button { bottom: 14px !important; right: 14px !important; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
