/* Firma Legal Especializada — hoja de estilos principal */
:root {
  --ink: #1b1d1a;
  --ink-deep: #141613;
  --ink-muted: #555950;
  --dark: #181b18;
  --dark-2: #222520;
  --cream: #fdf6ec;
  --paper: #fffdf8;
  --beige: #f3ecdf;
  --beige-deep: #e8dece;
  --gold: #b78b50;
  --gold-2: #d1aa70;
  --gold-light: #ead1aa;
  --border: rgba(145, 111, 68, .28);
  --font-display: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --font-body: 'Manrope', 'Segoe UI', Arial, sans-serif;
  --container: 1320px;
  --header-height: 92px;
  --section-space: clamp(85px, 9vw, 142px);
  --ease: cubic-bezier(.2,.75,.25,1);
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 100px; }
body { margin: 0; min-width: 320px; background: var(--paper); color: var(--ink); font-family: var(--font-body); font-size: 15px; -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
img, svg { display: block; }
img { max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
::selection { background: var(--gold); color: #111; }
:focus-visible { outline: 3px solid #b78b50; outline-offset: 4px; }
.container { width: min(var(--container), calc(100% - 96px)); margin-inline: auto; }
.section { padding-block: var(--section-space); }
.skip-link { position: fixed; z-index: 5000; top: 8px; left: 8px; transform: translateY(-160%); background: #fff; color: #000; padding: 12px 18px; border-radius: 4px; }
.skip-link:focus { transform: translateY(0); }
.reading-progress { position: fixed; top: 0; left: 0; height: 3px; width: 0; z-index: 4000; background: linear-gradient(90deg,#98703c,#f4dba9,#b78b50); pointer-events: none; }
svg { width: 1em; height: 1em; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

/* Línea superior */
.topline { background: var(--ink-deep); color: #e7ded1; }
.topline__inner { min-height: 37px; display: flex; align-items: center; justify-content: space-between; gap: 22px; }
.topline__inner > span, .topline__inner > a { display: inline-flex; align-items: center; gap: 9px; font-size: 10px; font-weight: 600; letter-spacing: .09em; }
.topline__inner svg { width: 13px; height: 13px; color: var(--gold-2); }
.topline__inner a:hover { color: var(--gold-light); }
.topline__center { text-transform: uppercase; color: #c7b7a1; }
.topline__center i, .footer__bottom i { display: inline-block; width: 3px; height: 3px; margin: 0 4px; vertical-align: middle; background: var(--gold); border-radius: 50%; }

/* Navegación */
.site-header { position: sticky; top: 0; z-index: 1000; background: rgba(253,246,236,.98); box-shadow: 0 1px 0 rgba(107,76,43,.16); transition: box-shadow .3s ease; }
.site-header.is-scrolled { box-shadow: 0 10px 30px rgba(27,24,18,.09), 0 1px 0 rgba(107,76,43,.10); }
.header__inner { display: flex; min-height: var(--header-height); align-items: center; justify-content: space-between; gap: 20px; }
.brand { display: flex; align-items: center; gap: 12px; flex: 0 0 auto; }
.brand__image { width: 82px; height: 72px; display: grid; place-items: center; overflow: hidden; background: var(--cream); }
.brand__image img { width: 100%; height: 100%; object-fit: contain; }
.brand__words { display: flex; flex-direction: column; min-width: 157px; padding-top: 2px; }
.brand__words strong { font-family: var(--font-display); font-size: 27px; font-weight: 700; line-height: .87; letter-spacing: -.035em; }
.brand__words span { margin-top: 8px; letter-spacing: .27em; font-size: 9px; font-weight: 800; color: #8e6c40; }
.nav { display: flex; align-items: center; gap: clamp(16px,2.2vw,34px); }
.nav__link { position: relative; padding: 34px 0; white-space: nowrap; font-size: 11px; font-weight: 800; color: #44483f; letter-spacing: .02em; transition: color .2s ease; }
.nav__link::after { content: ''; position: absolute; height: 2px; left: 0; bottom: 25px; width: 0; background: var(--gold); transition: width .28s var(--ease); }
.nav__link:hover, .nav__link.is-active { color: #9f763f; }
.nav__link:hover::after, .nav__link.is-active::after { width: 100%; }
.nav__contact { display: inline-flex; align-items: center; justify-content: center; gap: 13px; min-height: 41px; padding: 0 17px; color: white; background: var(--ink); font-size: 11px; font-weight: 700; border: 1px solid var(--ink); white-space: nowrap; transition: background .25s,color .25s,transform .25s; }
.nav__contact svg { width: 17px; height: 17px; }
.nav__contact:hover { background: var(--gold); border-color: var(--gold); color: #161713; transform: translateY(-1px); }
.menu-toggle { display: none; align-items: center; justify-content: center; flex-direction: column; gap: 5px; width: 45px; height: 45px; border: 1px solid var(--border); background: transparent; cursor: pointer; }
.menu-toggle span { display: block; width: 21px; height: 1.5px; background: var(--ink); transition: transform .3s,opacity .3s; }

/* Utilidades visuales */
.eyebrow { display: inline-flex; align-items: center; gap: 13px; font-size: 10px; letter-spacing: .23em; font-weight: 800; line-height: 1.5; color: #967140; }
.eyebrow__line { display: inline-block; height: 1px; width: 33px; background: currentColor; flex: 0 0 33px; }
.eyebrow--light { color: #d8b67d; }
.eyebrow--center { justify-content: center; }
.section-title { margin: 21px 0 0; font: 600 clamp(55px,5.7vw,87px)/.99 var(--font-display); letter-spacing: -.046em; }
.section-title em { font-weight: 500; color: #a98250; }
.section-title--light { color: #f9f4e9; }
.section-title--light em { color: #d3af79; }
.section-lead { font-size: 15px; line-height: 1.95; color: var(--ink-muted); }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 21px; min-height: 56px; padding: 0 24px; border: 1px solid transparent; font-size: 12px; font-weight: 800; letter-spacing: .005em; transition: transform .25s var(--ease), background .25s,color .25s,box-shadow .25s; white-space: nowrap; }
.btn svg { width: 19px; height: 19px; transition: transform .25s var(--ease); }
.btn:hover { transform: translateY(-3px); }
.btn:hover svg { transform: translateX(4px); }
.btn--gold { background: linear-gradient(125deg,#e6c997,#bd9257); color: #1c1d1a; box-shadow: 0 12px 30px rgba(165,115,50,.16); }
.btn--gold:hover { background: linear-gradient(125deg,#f1dcaf,#cba56d); box-shadow: 0 15px 36px rgba(155,106,39,.22); }
.btn--outline { border-color: rgba(234,211,178,.39); color: #f6f0e5; background: rgba(255,255,255,.025); }
.btn--outline:hover { color: #1d1d19; background: #f4e8d3; border-color: #f4e8d3; }
.btn--outline:hover svg { transform: translateY(3px); }

/* Portada */
.hero { position: relative; isolation: isolate; overflow: hidden; color: #fbf5e8; background: radial-gradient(ellipse at 82% 52%,#37352a 0%,#24251f 33%,#181a17 69%,#131512 100%); }
.hero::before { content: ''; position: absolute; z-index: -1; top: -230px; left: -150px; width: 480px; height: 480px; border: 1px solid rgba(208,162,99,.11); border-radius: 50%; box-shadow: 0 0 0 74px rgba(208,162,99,.025), 0 0 0 148px rgba(208,162,99,.015); }
.hero__texture { position: absolute; inset: 0; z-index: -1; opacity: .13; pointer-events: none; background-image: repeating-linear-gradient(90deg,transparent 0, transparent 150px,rgba(255,255,255,.09) 151px), repeating-linear-gradient(0deg,transparent 0,transparent 150px,rgba(255,255,255,.06) 151px); mask-image: linear-gradient(90deg,transparent,black); }
.hero__inner { position: relative; display: grid; grid-template-columns: 1.08fr .92fr; gap: clamp(35px,5vw,90px); align-items: center; min-height: min(745px, calc(100svh - 20px)); padding-top: 72px; padding-bottom: 90px; }
.hero__copy { position: relative; z-index: 2; padding-bottom: 0; }
.hero h1 { margin: 32px 0 0; font: 500 clamp(74px,6.3vw,109px)/.90 var(--font-display); letter-spacing: -.055em; white-space: nowrap; }
.hero h1 em { color: #d4aa73; font-weight: 400; }
.hero__dot { color: #c2955c; }
.hero__divider { display: flex; align-items: center; gap: 14px; width: min(340px,80%); margin: 29px 0 23px; color: #d6ae76; }
.hero__divider span:first-child { flex: 1; height: 1px; background: linear-gradient(90deg,#d4aa73,transparent); }
.hero__divider span:last-child { width: 70px; height: 1px; background: linear-gradient(90deg,#d4aa73,transparent); }
.hero__divider span:nth-child(2) { font-size: 16px; }
.hero__subtitle { margin: 0 0 15px; font-family: var(--font-display); font-size: clamp(26px,2.7vw,35px); font-weight: 500; letter-spacing: -.012em; }
.hero__copy > p { max-width: 520px; margin: 0; color: #d7d5ce; font-size: 13px; line-height: 1.95; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.hero__location { display: flex; align-items: center; gap: 10px; margin-top: 36px; color: #c6b89f; text-transform: uppercase; font-size: 10px; font-weight: 600; letter-spacing: .17em; }
.hero__location svg { width: 16px; height: 16px; color: #d2a974; }
.hero__art { position: relative; width: 100%; max-width: 570px; justify-self: center; padding: 16px 20px 28px; }
.hero__art-card { position: relative; z-index: 1; padding: 11px; background: var(--cream); border: 1px solid rgba(238,199,143,.65); outline: 1px solid rgba(208,161,92,.3); outline-offset: 8px; box-shadow: 0 38px 75px rgba(0,0,0,.22), 0 4px 2px rgba(0,0,0,.06); }
.hero__art-card img { display: block; width: 100%; height: auto; aspect-ratio: 672 / 642; object-fit: contain; background: #fdf6ec; }
.hero__art-corner { position: absolute; z-index: 2; height: 26px; width: 26px; pointer-events: none; }
.hero__art-corner--top { border-top: 2px solid #ae844d; border-left: 2px solid #ae844d; top: 7px; left: 7px; }
.hero__art-corner--bottom { border-bottom: 2px solid #ae844d; border-right: 2px solid #ae844d; right: 7px; bottom: 7px; }
.hero__orbit { position: absolute; pointer-events: none; width: 500px; aspect-ratio: 1; border: 1px solid rgba(205,157,95,.14); border-radius: 50%; top: 50%; left: 50%; transform: translate(-50%,-50%) rotate(-30deg); }
.hero__orbit--one { width: 125%; }
.hero__orbit--two { width: 143%; border-style: dashed; opacity: .47; }
.hero__since { position: absolute; z-index: 2; bottom: -11px; left: -38px; display: grid; gap: 0; padding: 16px 21px 9px; min-width: 190px; background: #e7c999; color: #3b3123; box-shadow: 0 15px 30px rgba(0,0,0,.19); }
.hero__since span { font-size: 8px; font-weight: 800; letter-spacing: .12em; }
.hero__since strong { font: 600 49px/.9 var(--font-display); letter-spacing: -.03em; }
.hero__side-label { position: absolute; z-index: 2; right: -26px; top: 51%; writing-mode: vertical-rl; font-size: 9px; font-weight: 700; letter-spacing: .22em; color: #c5ad89; }
.hero__bottom { position: relative; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding-bottom: 28px; color: #c1b49e; border-top: 1px solid rgba(213,178,132,.2); padding-top: 21px; }
.hero__bottom-small { font: italic 22px var(--font-display); letter-spacing: -.008em; }
.hero__scroll { display: inline-flex; align-items: center; gap: 15px; font-size: 9px; letter-spacing: .18em; font-weight: 700; }
.hero__scroll span { font-size: 18px; color: #ddba84; transition: transform .2s; }
.hero__scroll:hover span { transform: translateY(4px); }

/* Franja de trayectoria */
.credentials { position: relative; background: #eae0d0; border-bottom: 1px solid #ddd0bb; }
.credentials__inner { display: grid; grid-template-columns: 1fr repeat(3,1.2fr); align-items: center; min-height: 112px; }
.credentials__year, .credentials__item { display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 50px; border-right: 1px solid rgba(144,104,58,.21); }
.credentials__inner > :last-child { border-right: 0; }
.credentials__year { gap: 10px; justify-content: flex-start; }
.credentials__year span { font-family: var(--font-display); font-style: italic; font-size: 27px; color: #8b673e; }
.credentials__year strong { font-family: var(--font-display); font-size: 46px; font-weight: 600; letter-spacing: -.05em; }
.credentials__item { font-size: 12px; font-weight: 700; letter-spacing: .005em; text-align: center; color: #373b34; }
.credentials__mark { color: #a98049; font-size: 16px; }

/* Sobre nosotros */
.about { background: var(--paper); overflow: hidden; }
.about__grid { display: grid; grid-template-columns: .95fr 1.05fr; gap: clamp(56px,8vw,135px); align-items: center; }
.about__visual { position: relative; padding: 33px 32px 54px 0; }
.about__visual-outline { position: absolute; top: 0; right: 0; bottom: 30px; left: 32px; border: 1px solid #c5a16e; opacity: .65; }
.about__block { position: relative; z-index: 1; min-height: 435px; display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 26px 24px 35px; background: linear-gradient(135deg,#e5d5bc,#f2e7d5 51%,#dfcaa8); box-shadow: 0 25px 40px rgba(82,61,34,.075); }
.about__block::before, .about__block::after { content: '✦'; position: absolute; color: #b78b50; font-size: 15px; }
.about__block::before { top: 22px; left: 22px; }
.about__block::after { right: 22px; bottom: 22px; }
.about__upper { font-size: 10px; font-weight: 800; letter-spacing: .2em; color: #8b6e48; }
.about__number { font: 400 clamp(155px,15vw,245px)/1 var(--font-display); letter-spacing: -.095em; color: #332d24; }
.about__number span { color: #a37e4d; }
.about__signature { font: italic clamp(22px,2.2vw,32px) var(--font-display); text-align: center; }
.about__signature span { color: var(--gold); }
.about__quote { position: relative; z-index: 3; max-width: 85%; margin: -35px 0 0 auto; padding: 19px 23px; background: #24251e; color: #e9d9bf; border-left: 3px solid #cfa56d; font: italic 22px/1.27 var(--font-display); box-shadow: 0 16px 26px rgba(0,0,0,.12); }
.about__copy { max-width: 620px; }
.about__copy .section-lead { margin: 27px 0 33px; }
.about__areas { border-top: 1px solid #dcd1bf; }
.about__area { display: flex; gap: 19px; align-items: center; min-height: 66px; border-bottom: 1px solid #dcd1bf; font-size: 13px; font-weight: 700; }
.about__area-number { font: italic 20px var(--font-display); color: #ab834d; }
.about__area svg { width: 18px; height: 18px; margin-left: auto; color: #a87e45; }

/* Áreas de práctica */
.practice { background: #f3eddf; position: relative; }
.practice::before { content: ''; position: absolute; top: 0; right: 0; width: 42%; height: 180px; pointer-events: none; background: radial-gradient(ellipse at top right,rgba(207,175,128,.18),transparent 65%); }
.practice__heading { display: flex; justify-content: space-between; align-items: end; gap: 40px; margin-bottom: 48px; }
.practice__heading p { max-width: 310px; margin: 0 0 7px; color: #646052; font-size: 13px; line-height: 1.8; border-left: 1px solid #b38c55; padding-left: 21px; }
.practice__grid { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 16px; }
.service { position: relative; display: flex; flex-direction: column; padding: 31px 30px 23px; min-height: 366px; background: rgba(255,253,248,.85); border: 1px solid #e3d6c2; border-radius: 2px; box-shadow: 0 10px 28px rgba(84,65,38,.035); transition: border-color .3s,transform .4s var(--ease),box-shadow .3s; overflow: hidden; }
.service::before { content: ''; position: absolute; height: 2px; left: 0; top: 0; right: 100%; background: linear-gradient(90deg,#9b703b,#eacb98); transition: right .45s var(--ease); }
.service:hover { transform: translateY(-6px); border-color: #c7a16f; box-shadow: 0 23px 42px rgba(84,65,38,.12); }
.service:hover::before { right: 0; }
.service--small { grid-column: span 2; }
.service--wide { grid-column: span 3; min-height: 340px; }
.service--featured { background: #eaddc6; border-color: #d3bd9b; }
.service__top { display: flex; justify-content: space-between; align-items: flex-start; }
.service__icon { display: grid; place-items: center; width: 64px; height: 64px; background: #f3e8d5; color: #a77942; border: 1px solid #e3ccb0; border-radius: 50%; }
.service--featured .service__icon { background: #f2e8d7; }
.service__icon svg { width: 33px; height: 33px; stroke-width: 1.45; }
.service__number { font: italic 18px var(--font-display); color: #a28051; }
.service__content { margin-top: 26px; flex: 1; }
.service h3 { margin: 0 0 12px; font: 600 clamp(32px,3vw,43px)/.98 var(--font-display); letter-spacing: -.027em; }
.service h3 em { font-weight: 500; color: #a67d47; }
.service p { margin: 0; color: #5c5e55; font-size: 12px; line-height: 1.9; }
.service__foot { display: flex; align-items: center; justify-content: space-between; gap: 6px; border-top: 1px solid #dfd1bd; margin-top: 24px; padding-top: 16px; color: #94754d; }
.service__foot > span:first-child { font-size: 9px; font-weight: 800; letter-spacing: .12em; }
.service__spark { font-size: 17px; }

/* Atención familiar */
.family { padding-block: clamp(88px,9vw,130px); background: #20231e; color: #f7f0e6; overflow: hidden; }
.family__grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(55px,7vw,130px); align-items: center; }
.family__copy .section-title { margin-top: 20px; font-size: clamp(58px,5.3vw,80px); }
.family__copy > p { max-width: 510px; margin: 30px 0 24px; font-size: 14px; color: #d5d1c5; line-height: 1.95; }
.family__tags { display: flex; flex-wrap: wrap; gap: 10px; max-width: 520px; }
.family__tags span { padding: 10px 14px; border: 1px solid rgba(217,187,147,.30); color: #e3d7c4; font-size: 11px; }
.text-link { display: inline-flex; align-items: center; gap: 19px; margin-top: 29px; padding-bottom: 8px; color: #d8b884; font-size: 12px; font-weight: 800; border-bottom: 1px solid #bd945f; }
.text-link svg { width: 18px; height: 18px; transition: transform .2s; }
.text-link:hover svg { transform: translateX(6px); }
.family__visual { position: relative; min-height: 480px; display: flex; flex-direction: column; justify-content: center; padding: 55px 45px; border: 1px solid rgba(196,157,104,.44); background: radial-gradient(ellipse at center,#303128,#252820 70%); box-shadow: 18px 18px 0 rgba(215,165,94,.07); }
.family__visual::before { content: ''; position: absolute; inset: 13px; border: 1px solid rgba(216,168,105,.19); pointer-events: none; }
.family__visual-corners::after, .family__visual-corners::before { content: ''; position: absolute; width: 28px; height: 28px; border-color: #c6a16a; border-style: solid; }
.family__visual-corners::before { top: 11px; left: 11px; border-width: 2px 0 0 2px; }
.family__visual-corners::after { right: 11px; bottom: 11px; border-width: 0 2px 2px 0; }
.family__visual-label { font-size: 10px; font-weight: 800; letter-spacing: .21em; color: #d0ae7b; }
.family__visual-mark { position: absolute; right: 42px; top: 25px; font: italic 95px/.8 var(--font-display); color: rgba(212,171,114,.15); }
.family__visual h3 { margin: 23px 0 23px; font: 500 clamp(45px,4vw,67px)/.95 var(--font-display); letter-spacing: -.025em; }
.family__visual h3 em { color: #d2ad7b; }
.family__pillars { display: grid; grid-template-columns: 1fr 1fr; gap: 1px 20px; }
.family__pillars span { padding: 12px 0; font-size: 12px; color: #e9dfcb; border-bottom: 1px solid rgba(221,187,141,.29); }
.family__pillars span::before { content: '✦'; color: #cda673; margin-right: 10px; font-size: 11px; }
.family__visual > p { color: #d8c8b0; font-size: 11px; line-height: 1.8; margin: 22px 0 0; }

/* Filosofía */
.philosophy { background: #fffcf5; text-align: center; position: relative; overflow: hidden; }
.philosophy::before, .philosophy::after { content: ''; position: absolute; border: 1px solid rgba(172,125,62,.09); border-radius: 50%; height: 500px; width: 500px; pointer-events: none; }
.philosophy::before { left: -330px; top: -150px; }
.philosophy::after { right: -330px; bottom: -280px; }
.philosophy__inner { position: relative; }
.philosophy__title { margin-top: 17px; }
.philosophy__quote-wrap { position: relative; max-width: 1000px; margin: 23px auto 0; }
.philosophy__quote-mark { height: 87px; margin-bottom: 0; font: 600 155px/.95 var(--font-display); color: #d6b782; opacity: .65; }
.philosophy blockquote { margin: 10px auto 0; font: 500 clamp(31px,3.5vw,56px)/1.13 var(--font-display); letter-spacing: -.023em; color: #33352f; }
.philosophy blockquote em { color: #a6814f; }
.philosophy__gold-rule { width: 84px; height: 1px; background: #c29a67; margin: 32px auto 22px; }
.philosophy__quote-wrap p { max-width: 650px; margin: 0 auto; color: #62645d; font-size: 14px; line-height: 1.9; }

/* Compromiso */
.commitment { padding-block: clamp(80px,7vw,112px); background: #191c18; color: #f7f1e7; }
.commitment__header { display: flex; align-items: center; gap: 45px; justify-content: space-between; margin-bottom: 35px; }
.commitment__header h2 { max-width: 600px; margin: 0; font: italic 35px/1.1 var(--font-display); color: #e7dbca; font-weight: 400; }
.commitment__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 0; border-top: 1px solid rgba(194,154,104,.30); border-bottom: 1px solid rgba(194,154,104,.30); }
.commitment__item { padding: 35px 32px 38px; border-right: 1px solid rgba(194,154,104,.30); }
.commitment__item:first-child { padding-left: 0; }
.commitment__item:last-child { border-right: none; padding-right: 0; }
.commitment__index { color: #b99562; font: italic 20px var(--font-display); }
.commitment__item h3 { font: 500 clamp(39px,4.3vw,63px)/1 var(--font-display); letter-spacing: -.04em; margin: 28px 0 14px; }
.commitment__item h3 span { color: #be925b; }
.commitment__item p { font-size: 12px; line-height: 1.7; color: #c7c9c0; margin: 0; }

/* Contacto */
.contact { position: relative; padding-block: clamp(95px,9vw,140px); background: #eee4d4; overflow: hidden; }
.contact::before { content: '✦'; position: absolute; right: -40px; top: -170px; font: 500 470px var(--font-display); color: rgba(191,154,103,.10); }
.contact__grid { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(65px,8vw,140px); align-items: center; }
.contact__copy p { margin: 28px 0; font-size: 14px; line-height: 1.9; color: #5c5e55; }
.contact__address { display: flex; align-items: center; gap: 10px; font-weight: 700; font-size: 13px; }
.contact__address svg { color: #a47c49; width: 18px; height: 18px; }
.contact__card { position: relative; background: #242721; padding: clamp(30px,3.4vw,53px); color: #fff7ea; box-shadow: 22px 22px 0 rgba(157,119,70,.16); }
.contact__card::after { content: ''; position: absolute; top: 12px; left: 12px; right: 12px; bottom: 12px; border: 1px solid rgba(211,169,113,.26); pointer-events: none; }
.contact__card-top { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(225,195,156,.30); padding-bottom: 23px; margin-bottom: 33px; color: #cfb48c; font-size: 10px; font-weight: 800; letter-spacing: .19em; }
.contact__card-top span:last-child { font-size: 17px; }
.contact__label { display: block; font-size: 10px; font-weight: 700; letter-spacing: .18em; color: #c6bba9; }
.contact__number { display: block; width: fit-content; margin: 8px 0 41px; font: 500 clamp(38px,4.4vw,65px)/1.12 var(--font-display); white-space: nowrap; letter-spacing: -.025em; transition: color .2s; }
.contact__number:hover { color: #e6be86; }
.contact__card-bottom { position: relative; z-index: 2; display: flex; justify-content: space-between; align-items: center; gap: 15px; }
.contact__card-bottom > span { font-size: 10px; color: #d0bfa5; letter-spacing: .04em; }

/* Pie */
.footer { background: #111411; color: #ece2d3; }
.footer__main { padding-block: 54px 45px; display: grid; grid-template-columns: 1.5fr .8fr .7fr; gap: 52px; align-items: start; }
.footer__brand { display: flex; gap: 20px; align-items: center; }
.footer__logo { background: var(--cream); flex: 0 0 98px; height: 93px; overflow: hidden; }
.footer__logo img { width: 100%; height: 100%; object-fit: contain; }
.footer__brand strong { font: 600 29px/1.1 var(--font-display); }
.footer__brand p { margin: 8px 0 10px; color: #d1c4af; font-size: 11px; }
.footer__brand div:last-child > span { font: italic 21px var(--font-display); color: #d3b381; }
.footer__nav { display: grid; grid-template-columns: 1fr 1fr; gap: 13px 23px; padding-top: 5px; }
.footer__nav a { color: #d4cbbb; font-size: 11px; font-weight: 600; transition: color .2s; }
.footer__nav a:hover { color: #eac798; }
.footer__contact { display: grid; gap: 13px; justify-items: start; padding-top: 5px; }
.footer__contact span { color: #bcab8d; font-size: 9px; font-weight: 700; letter-spacing: .12em; }
.footer__contact a { font: 500 26px var(--font-display); }
.footer__contact a:hover { color: #eac798; }
.footer__bottom { padding: 21px 0 27px; border-top: 1px solid rgba(217,176,122,.2); display: flex; justify-content: space-between; gap: 20px; color: #aea595; font-size: 10px; }

/* Contacto flotante */
.floating-call { display: flex; align-items: center; gap: 10px; position: fixed; bottom: 25px; right: 25px; z-index: 500; padding: 14px 18px; border-radius: 50px; color: #1d211d; background: linear-gradient(130deg,#efd5a5,#bd9055); border: 1px solid #ae804a; box-shadow: 0 8px 32px rgba(10,12,10,.30); font-size: 12px; font-weight: 800; transition: transform .3s var(--ease),box-shadow .3s; }
.floating-call:hover { transform: translateY(-5px); box-shadow: 0 13px 36px rgba(10,12,10,.28); }
.floating-call svg { width: 19px; height: 19px; }

/* Revelado progresivo seguro para Cloudflare Pages.
   El contenido permanece visible desde el HTML incluso si JavaScript,
   la red o IntersectionObserver fallan. La animación es solo decorativa. */
@media (prefers-reduced-motion: no-preference) {
  html.has-js .reveal.is-visible { animation: revealSoft .72s var(--ease) both; animation-delay: var(--reveal-delay, 0s); }
  @keyframes revealSoft {
    from { opacity: .78; transform: translateY(18px); }
    to { opacity: 1; transform: translateY(0); }
  }
}

@media (max-width: 1200px) {
  .container { width: min(var(--container),calc(100% - 68px)); }
  .nav { gap: 19px; }
  .nav__link { font-size: 10px; }
  .brand__words { min-width: 136px; }
  .brand__words strong { font-size: 24px; }
  .brand__image { width: 70px; height: 65px; }
  .hero h1 { font-size: clamp(69px,6.2vw,95px); }
  .hero__since { left: -12px; }
  .hero__side-label { right: -10px; }
  .service { padding-inline: 25px; }
}
@media (max-width: 1030px) {
  :root { --header-height: 78px; }
  .site-header { z-index: 1100; }
  .header__inner { min-height: var(--header-height); }
  .menu-toggle { display: flex; z-index: 2; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(6.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-6.5px) rotate(-45deg); }
  .nav { display: flex; position: absolute; left: 0; right: 0; top: 100%; max-height: calc(100dvh - var(--header-height) - 15px); overflow-y: auto; flex-direction: column; align-items: stretch; gap: 0; padding: 12px 34px 25px; background: var(--cream); border-bottom: 1px solid #d3b98b; box-shadow: 0 24px 34px rgba(16,20,16,.13); visibility: hidden; pointer-events: none; opacity: 0; transform: translateY(-10px); transition: opacity .25s, transform .25s, visibility .25s; }
  .nav.is-open { visibility: visible; opacity: 1; transform: translateY(0); pointer-events: auto; }
  .nav__link { display: block; padding: 17px 0; font-size: 13px; border-bottom: 1px solid #e8d8bf; }
  .nav__link::after { bottom: -1px; }
  .nav__contact { margin-top: 17px; min-height: 49px; font-size: 12px; }
  .hero__inner { min-height: 650px; padding-top: 65px; }
  .hero h1 { font-size: clamp(62px,6.9vw,87px); }
  .hero__copy > p { font-size: 12px; }
  .hero__side-label { display: none; }
  .about__grid { gap: 60px; }
  .about__block { min-height: 385px; }
  .about__number { font-size: 160px; }
  .service h3 { font-size: 36px; }
  .service p { font-size: 11.5px; }
}
@media (max-width: 810px) {
  .container { width: calc(100% - 44px); }
  .topline__center { display: none !important; }
  .hero__inner { grid-template-columns: 1fr; gap: 70px; padding-top: 70px; padding-bottom: 95px; }
  .hero h1 { font-size: clamp(72px,11.6vw,111px); }
  .hero__copy > p { font-size: 13px; max-width: 640px; }
  .hero__art { width: min(100%,550px); justify-self: center; }
  .hero__since { left: -12px; }
  .hero__bottom { padding-top: 18px; }
  .credentials__inner { grid-template-columns: repeat(2,1fr); padding-block: 19px; row-gap: 14px; }
  .credentials__year, .credentials__item { justify-content: flex-start; padding-inline: 20px; }
  .credentials__year { border-bottom: 1px solid rgba(144,104,58,.21); }
  .credentials__item:nth-child(2) { border-right: none; border-bottom: 1px solid rgba(144,104,58,.21); }
  .credentials__item:nth-child(3) { border-right: 1px solid rgba(144,104,58,.21); }
  .about__grid, .family__grid, .contact__grid { grid-template-columns: 1fr; }
  .about__grid { gap: 45px; }
  .about__visual { max-width: 560px; width: 100%; margin-inline: auto; }
  .about__number { font-size: clamp(180px,31vw,245px); }
  .about__copy { max-width: none; }
  .practice__heading { align-items: start; }
  .practice__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .service--small,.service--wide { grid-column: span 1; }
  .service { min-height: 355px; }
  .service:last-child { grid-column: span 2; min-height: 310px; }
  .family__grid { gap: 65px; }
  .family__visual { max-width: 600px; width: 100%; margin: 0 auto; }
  .contact__grid { gap: 48px; }
  .contact__card { max-width: 680px; }
  .footer__main { grid-template-columns: 1fr 1fr; }
  .footer__brand { grid-column: span 2; }
}
@media (max-width: 580px) {
  :root { --header-height: 73px; --section-space: 80px; }
  html { scroll-padding-top: 84px; }
  .container { width: calc(100% - 38px); }
  .topline__inner { min-height: 34px; }
  .topline__inner > span, .topline__inner > a { font-size: 9px; letter-spacing: .015em; gap: 5px; }
  .topline__inner svg { width: 11px; height: 11px; }
  .brand { gap: 5px; }
  .brand__image { width: 60px; height: 59px; }
  .brand__words { min-width: 0; }
  .brand__words strong { font-size: 23px; }
  .brand__words span { font-size: 8px; letter-spacing: .19em; margin-top: 7px; }
  .menu-toggle { height: 43px; width: 43px; }
  .nav { padding-inline: 22px; }
  .hero__inner { gap: 53px; padding-top: 65px; padding-bottom: 85px; }
  .hero h1 { font-size: clamp(55px,12vw,75px); margin-top: 23px; }
  .eyebrow { font-size: 9px; gap: 8px; letter-spacing: .16em; }
  .eyebrow__line { width: 26px; flex-basis: 26px; }
  .hero__divider { margin: 21px 0 17px; }
  .hero__subtitle { font-size: 26px; line-height: 1.1; }
  .hero__copy > p { font-size: 12px; line-height: 1.95; }
  .hero__actions { margin-top: 24px; gap: 10px; }
  .btn { min-height: 51px; gap: 11px; padding: 0 15px; font-size: 10px; }
  .btn svg { width: 16px; height: 16px; }
  .hero__location { margin-top: 30px; font-size: 9px; }
  .hero__art { padding: 13px 10px 35px; }
  .hero__art-card { padding: 5px; }
  .hero__since { left: -6px; bottom: -8px; min-width: 140px; padding: 12px 14px 8px; }
  .hero__since span { font-size: 7px; }
  .hero__since strong { font-size: 41px; }
  .hero__bottom-small { font-size: 18px; }
  .hero__scroll { font-size: 8px; gap: 4px; }
  .credentials__inner { grid-template-columns: 1fr 1fr; row-gap: 0; padding-block: 13px; }
  .credentials__year, .credentials__item { min-height: 80px; padding-inline: 9px; }
  .credentials__year { gap: 7px; }
  .credentials__year strong { font-size: 42px; }
  .credentials__year span { font-size: 22px; }
  .credentials__item { font-size: 10px; gap: 7px; text-align: left; }
  .credentials__mark { font-size: 11px; }
  .section-title { margin-top: 17px; font-size: clamp(55px,12.8vw,73px); }
  .about__grid { gap: 48px; }
  .about__visual { padding: 21px 19px 45px 0; }
  .about__block { min-height: 340px; }
  .about__visual-outline { left: 19px; }
  .about__number { font-size: clamp(140px,38vw,210px); }
  .about__upper { text-align: center; font-size: 8px; }
  .about__signature { font-size: 20px; }
  .about__quote { padding: 16px 17px; font-size: 20px; }
  .about__copy .section-lead { margin: 20px 0 26px; }
  .section-lead { font-size: 13px; line-height: 1.85; }
  .practice__heading { display: block; margin-bottom: 31px; }
  .practice__heading p { margin: 22px 0 0; font-size: 12px; }
  .practice__grid { grid-template-columns: 1fr; gap: 12px; }
  .service, .service:last-child { grid-column: 1; min-height: auto; padding: 25px 24px 20px; }
  .service__content { margin-top: 19px; }
  .service h3 { font-size: 41px; }
  .service p { font-size: 12px; }
  .service__icon { width: 58px; height: 58px; }
  .service__icon svg { width: 31px; height: 31px; }
  .service__foot { margin-top: 27px; }
  .family { padding-block: 80px; }
  .family__copy .section-title { font-size: clamp(52px,11.5vw,72px); }
  .family__copy > p { font-size: 13px; margin-top: 23px; }
  .family__grid { gap: 50px; }
  .family__visual { min-height: 430px; padding: 45px 29px; }
  .family__visual h3 { font-size: 49px; }
  .family__visual-label { font-size: 9px; }
  .family__tags { gap: 7px; }
  .family__tags span { font-size: 10px; padding: 9px 10px; }
  .philosophy__quote-mark { font-size: 125px; height: 71px; }
  .philosophy blockquote { font-size: clamp(33px,8.8vw,43px); }
  .philosophy__quote-wrap p { font-size: 12px; }
  .commitment__header { display: block; margin-bottom: 24px; }
  .commitment__header h2 { margin-top: 15px; font-size: 32px; }
  .commitment__grid { grid-template-columns: 1fr; }
  .commitment__item { display: grid; grid-template-columns: 32px 1fr; column-gap: 18px; padding: 25px 0 !important; border-right: 0; border-bottom: 1px solid rgba(194,154,104,.30); }
  .commitment__item:last-child { border-bottom: none; }
  .commitment__index { grid-row: 1 / 3; padding-top: 12px; }
  .commitment__item h3 { font-size: 48px; margin: 0 0 6px; }
  .commitment__item p { font-size: 11px; }
  .contact { padding-block: 85px; }
  .contact__copy p { font-size: 13px; }
  .contact__grid { gap: 35px; }
  .contact__card { padding: 34px 25px; box-shadow: 10px 10px 0 rgba(157,119,70,.16); }
  .contact__card-top { margin-bottom: 27px; }
  .contact__number { font-size: clamp(41px,10.5vw,62px); margin-bottom: 28px; }
  .contact__card-bottom > span { font-size: 9px; }
  .footer__main { grid-template-columns: 1fr; gap: 33px; padding-block: 45px 36px; }
  .footer__brand { grid-column: 1; gap: 12px; }
  .footer__logo { flex-basis: 78px; height: 78px; }
  .footer__brand strong { font-size: 25px; }
  .footer__brand div:last-child > span { font-size: 19px; }
  .footer__nav { max-width: 330px; }
  .footer__bottom { flex-wrap: wrap; padding-bottom: 26px; font-size: 9px; }
  .floating-call { right: 16px; bottom: 15px; padding: 14px; border-radius: 50%; }
  .floating-call span { display: none; }
  .floating-call svg { width: 23px; height: 23px; }
}
@media (max-width: 380px) {
  .container { width: calc(100% - 30px); }
  .brand__words strong { font-size: 21px; }
  .brand__image { width: 56px; height: 55px; }
  .hero h1 { font-size: 51px; }
  .hero__actions { flex-direction: column; align-items: stretch; }
  .hero__actions .btn { width: 100%; justify-content: space-between; }
  .contact__number { font-size: 38px; }
  .family__visual h3 { font-size: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,*::before,*::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
  html.has-js .reveal { opacity: 1; transform: none; animation: none !important; }
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  html.has-js .service.reveal.is-visible:hover { transform: translateY(-6px); }
}
