/* Shared proportions from the supplied Legal Prime layouts. */
:root { --navy:#071827; --ink:#071827; --gold:#af7a36; --sand:#f7f6f3; --paper:#f7f6f3; }
body { font-family:Arial,Helvetica,sans-serif; line-height:1.45; }
h1,h2,h3,.hero h1,.benefit-grid p,.service-card h3,.team-card h3,.person-card h3 { font-family:Georgia,'Times New Roman',serif; letter-spacing:-.025em; }
.button { width:fit-content; max-width:100%; align-self:flex-start; line-height:1.3; border-radius:2px; }
.site-header,.page-header { height:100px; padding-inline:6.5%; position:relative; z-index:30; }
.main-nav,.page-nav { gap:clamp(14px,1.8vw,28px); font-size:14px; }
.brand-image,.page-logo { width:125px; height:auto; }
.footer-logo { height:auto; }
.hero,.hero-page { min-height:0; height:auto; overflow:visible; align-items:stretch; }
.hero { grid-template-columns:1fr 1fr; }
.hero-copy { padding:5.2vw 5vw 5vw 7.5vw; }
.hero h1 { font-size:clamp(38px,4.35vw,78px); font-weight:400; line-height:1.02; letter-spacing:-.025em; }
.hero .eyebrow { font-size:clamp(12px,.98vw,17px); margin-bottom:1.8vw; color:#91b6d6; }
.hero .intro { max-width:none; font-size:clamp(16px,1.32vw,23px); line-height:1.5; margin:1.9vw 0 2.2vw; }
.hero-note { font-family:Georgia,serif; font-size:clamp(12px,1.1vw,19px); margin:1.65vw 0 0; }
.hero-image,.hero-page__image,.feature__image { position:relative; min-width:0; min-height:0; }
.hero-image img,.hero-page__image img,.feature__image img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero-page { grid-template-columns:46% 54%; min-height:36vw; }
.hero-page__copy { padding:4.8vw 3vw 4vw 6vw; justify-content:center; }
.hero-page h1 { font-size:clamp(34px,3.7vw,64px); line-height:1.08; font-weight:700; }
.hero-page p:not(.eyebrow) { font-size:clamp(16px,1.2vw,21px); margin:1.7vw 0 2.2vw; max-width:95%; }
.eyebrow,.section-label { font-size:clamp(12px,.95vw,16px); }
body[data-page="laboral"] .hero-page h1 { font-size:clamp(30px,2.85vw,50px); }
body[data-page="familia"] .hero-page h1 { font-size:clamp(42px,4.8vw,80px); max-width:8em; }
body[data-page="contacto"] .hero-page { grid-template-columns:51% 49%; min-height:31vw; }
body[data-page="contacto"] .hero-page__copy { padding-left:10vw; }
body[data-page="contacto"] .hero-page h1 { max-width:10em; font-size:clamp(38px,4vw,68px); }
.page-section { padding:4vw 9%; }
.page-section--tight { padding-bottom:3vw; }
.page-section h2 { font-size:clamp(30px,3.15vw,54px); line-height:1.08; margin-bottom:2vw; }
body[data-page="laboral"] .page-section h2,body[data-page="penal"] .page-section h2,body[data-page="empresas"] .page-section h2 { max-width:17em; }
.service-cards { gap:16px; }
.service-cards .service-card { height:auto; min-height:0; }
.service-cards .service-card>img { height:auto; aspect-ratio:1.38; object-fit:cover; }
.service-cards[style="--columns:3"] .service-card>img { aspect-ratio:2; }
.service-card__body { padding:18px 20px 20px; }
.service-card__body h3 { font-size:clamp(20px,1.7vw,29px); line-height:1.12; }
.service-card__body p { font-size:16px; line-height:1.4; }
.service-card__body a { font-size:14px; padding-top:22px; }
.feature,.final-feature { width:84%; max-width:1500px; margin:3vw auto; min-height:0; grid-template-columns:1fr 1fr; }
.feature__copy,.final-feature__copy { padding:3.8vw; min-width:0; }
.feature h2,.final-feature h2,.dark-feature h2 { font-size:clamp(30px,3.3vw,56px); line-height:1.08; }
.feature p,.final-feature p { font-size:16px; line-height:1.5; }
.feature .button { align-self:flex-start; }
.final-feature { position:relative; }
.final-feature>img { position:absolute; width:50%; height:100%; right:0; top:0; object-fit:cover; }
.dark-feature { padding:3.6vw 9%; }
.dark-feature__inner { max-width:1420px; gap:5vw; grid-template-columns:1fr 1fr; }
.dark-feature__image { min-height:0; aspect-ratio:1.35; position:relative; }
.dark-feature__image img { position:absolute; inset:0; height:100%; width:100%; object-fit:cover; }
.dark-feature p { font-size:clamp(16px,1.4vw,23px); }
.trust-block { gap:4vw; }
.trust-block img { height:auto; aspect-ratio:1.1; }
.contact-grid { gap:6vw; max-width:1400px; }
.contact-grid h2 { font-size:clamp(28px,2.7vw,44px); }
.contact-form { padding:28px; }
.contact-form label { font-size:14px; }
.contact-form input,.contact-form textarea { font:16px Arial,sans-serif; }
.contact-aside img { height:auto; aspect-ratio:1.8; }
.team-grid { gap:16px; }
.person-card img,.team-card img { height:auto; aspect-ratio:.81; object-fit:cover; }
.person-card h3,.team-card h3 { font-size:16px; line-height:1.2; margin:12px 6px 6px; }
.person-card p,.team-card p,.person-card a,.team-card a { font-size:14px; }
.options { min-height:0; padding:6vw 7.3%; grid-template-columns:1fr 1fr; gap:5vw; }
.options h2 { font-size:clamp(30px,3.6vw,62px); font-weight:400; line-height:1.03; }
.options-cta { padding:12px 0 12px 3vw; max-width:none; }
.options-cta p { font-size:clamp(16px,1.5vw,24px); }
.services { padding:4.5vw 7% 3vw; }
.services .section-heading h2 { font-size:clamp(30px,3.2vw,55px); letter-spacing:0; }
.services .section-heading>p:last-child { font-size:clamp(16px,1.35vw,23px); margin:16px 0 26px; }
.service-grid { width:100%; max-width:1300px; gap:14px; }
.service-grid .service-card { height:auto; min-height:0; }
.service-grid .service-card>img { height:auto; aspect-ratio:1.22; object-fit:cover; }
.card-body { padding:16px 20px 20px; gap:0; }
.card-kicker { white-space:normal; font-size:11px; gap:8px; letter-spacing:.07em; margin-bottom:10px; }
.service-icon { flex:0 0 42px; width:42px; height:42px; }
.service-icon img { width:42px; height:42px; }
.service-grid h3 { font-size:clamp(20px,1.8vw,30px); line-height:1.12; margin-bottom:12px; }
.card-description,.service-grid ul { font-size:16px; line-height:1.35; }
.service-grid li { padding-left:16px; margin:6px 0; }
.service-grid li:before { width:6px; height:6px; top:7px; }
.service-grid .card-body>a { font-size:14px; margin-top:20px; padding-top:16px; }
.card-description,.service-grid ul { flex:1; }
.benefits { padding:6vw 7% 6.5vw 9.2%; }
.benefits h2 { font:400 clamp(32px,3.4vw,58px)/1.1 Georgia,serif; margin:0 0 3.4vw; }
.benefit-grid { grid-template-columns:1fr 1fr 1fr; }
.benefit-grid article { height:auto; min-height:0; padding:1vw 0 1vw 3.8vw; }
.benefit-grid article:first-child { padding-left:0; }
.benefit-grid p { font:400 clamp(38px,4.1vw,70px)/1 Georgia,serif; margin:0 0 2vw; }
.benefit-grid h3 { font:700 clamp(20px,2.35vw,40px)/1.2 Arial,sans-serif; margin-bottom:1.3vw; white-space:normal; }
.benefit-grid span { font-size:clamp(16px,1.6vw,27px); }
.team.section { padding:4.5vw 6%; }
.section-heading h2 { font-size:clamp(28px,3vw,50px); line-height:1.12; }
.team-grid { max-width:1500px; }
.final-cta { padding:5vw 7%; }
.final-cta h2 { font-weight:400; font-size:clamp(30px,3.5vw,60px); }
.footer,.page-footer { padding:3vw 6% 0; font-size:14px; gap:26px; }
.footer h3,.page-footer h3 { font-size:12px; }
.footer-bottom { font-size:12px; }
@media(max-width:1050px) {
 .site-header,.page-header { height:86px; padding-inline:4%; }
 .main-nav,.page-nav { gap:14px; }
 .main-nav .button,.page-nav .button { padding:12px; }
 .brand-image,.page-logo { width:105px; }
 .service-grid,.service-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .service-grid { max-width:800px; }
 .team-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(max-width:850px) {
 .main-nav,.page-nav { display:none; transform:none; top:86px; z-index:40; max-height:calc(100vh - 86px); overflow:auto; }
 .main-nav.open,.page-nav.open { display:flex; transform:none; }
 .hero,.hero-page { grid-template-columns:1fr; min-height:0; }
 .hero-copy,.hero-page__copy,body[data-page="contacto"] .hero-page__copy { padding:40px 7%; }
 .hero h1,.hero-page h1,body[data-page="familia"] .hero-page h1,body[data-page="contacto"] .hero-page h1 { font-size:44px; }
 body[data-page="laboral"] .hero-page h1 { font-size:34px; }
 .hero-image,.hero-page__image { height:auto; min-height:0; aspect-ratio:1.5; }
 body[data-page="contacto"] .hero-page { grid-template-columns:1fr; }
 .hero .intro,.hero-page p:not(.eyebrow) { font-size:17px; margin:20px 0 24px; }
 .hero-note { margin-top:20px; font-size:14px; }
 .hero .eyebrow { margin-bottom:18px; }
 .hero-actions { flex-direction:row; flex-wrap:wrap; }
 .options { grid-template-columns:1fr; padding:40px 7%; gap:24px; }
 .options-cta { padding-left:20px; }
 .page-section,.services,.team.section { padding:40px 7%; }
 .feature,.final-feature { width:86%; margin:32px auto; grid-template-columns:1fr; }
 .feature__copy,.final-feature__copy { padding:30px; }
 .feature__image { min-height:0; aspect-ratio:1.5; }
 .final-feature>img { position:static; width:100%; height:auto; aspect-ratio:1.5; }
 .dark-feature { padding:36px 7%; }
 .dark-feature__inner { grid-template-columns:1fr 1fr; gap:24px; }
 .dark-feature h2 { font-size:30px; }
 .benefits { padding:45px 7%; }
 .benefit-grid { grid-template-columns:1fr; gap:22px; }
 .benefit-grid article,.benefit-grid article:first-child { padding:20px 0 0; border-left:0; border-top:1px solid #6b8293; }
 .benefit-grid article:first-child { border-top:0; }
 .benefit-grid p { margin-bottom:15px; }
 .benefit-grid h3 { margin-bottom:10px; font-size:25px; }
 .contact-grid,.trust-block { grid-template-columns:1fr; gap:30px; }
 .final-cta { padding:40px 7%; flex-wrap:wrap; }
 .footer,.page-footer { padding:35px 7% 0; grid-template-columns:1fr 1fr; }
}
@media(max-width:520px) {
 .service-grid,.service-cards { grid-template-columns:1fr; max-width:none; }
 .team-grid { grid-template-columns:1fr 1fr; }
 .team-card:last-child { grid-column:auto; width:100%; max-width:none; }
 .person-card img { height:auto; }
 .dark-feature__inner { grid-template-columns:1fr; }
 .dark-feature__image { aspect-ratio:1.4; }
 .footer,.page-footer { grid-template-columns:1fr; }
 .footer div:not(.footer-main):not(.footer-bottom),.footer address { padding-left:0; }
 .card-body { min-height:0; }
}

/* Hero compositions are page-specific: do not normalize their typography.
   Ratios measured against ABOGADO_LABORAL, ABOGADO_PENAL, EMPRESAS,
   abogado_familia, EQUIPO_-_LP and PAG-CONTACTO reference PDFs. */
.hero-title-line { display:block; }
.hero-page h1 em { color:var(--gold); font-style:normal; }
.hero-page .hero-response { display:block; margin-top:.8em; }
body[data-page] .hero-page { min-height:var(--hero-height); grid-template-columns:var(--hero-split) 1fr; }
body[data-page] .hero-page__copy { padding:var(--hero-top) var(--hero-right) var(--hero-bottom) var(--hero-left); justify-content:flex-start; }
body[data-page] .hero-page h1 { font-family:'Times New Roman',Georgia,serif; font-size:var(--hero-size); font-weight:var(--hero-weight,700); line-height:var(--hero-leading); letter-spacing:var(--hero-tracking,-.025em); max-width:none; margin:0; }
body[data-page] .hero-page .eyebrow { font-size:1.1vw; margin:0 0 1.3vw; }
body[data-page] .hero-page .eyebrow:after { margin-top:1.4vw; width:2.4vw; }
body[data-page] .hero-page p:not(.eyebrow) { max-width:var(--hero-paragraph,100%); font-size:var(--hero-body,1.35vw); line-height:1.5; margin:var(--hero-description-gap,2vw) 0 2.2vw; }
body[data-page] .hero-page .button { font-size:1.4vw; padding:1.15vw 1.8vw; }
body[data-page="laboral"] { --hero-height:37.5vw; --hero-split:45.5%; --hero-top:5vw; --hero-bottom:4vw; --hero-left:6.2vw; --hero-right:1vw; --hero-size:2.7vw; --hero-leading:1.1; --hero-tracking:-.015em; --hero-body:1.2vw; --hero-description-gap:1.7vw; }
body[data-page="penal"] { --hero-height:39.2vw; --hero-split:43%; --hero-top:5.5vw; --hero-bottom:5vw; --hero-left:4.15vw; --hero-right:1vw; --hero-size:4vw; --hero-leading:1.08; --hero-paragraph:93%; }
body[data-page="empresas"] { --hero-height:38vw; --hero-split:43%; --hero-top:4.4vw; --hero-bottom:4vw; --hero-left:5vw; --hero-right:1vw; --hero-size:3.6vw; --hero-leading:1.08; --hero-weight:400; --hero-body:1.4vw; --hero-description-gap:1.5vw; }
body[data-page="familia"] { --hero-height:36.3vw; --hero-split:47.2%; --hero-top:5.4vw; --hero-bottom:4.8vw; --hero-left:6vw; --hero-right:3vw; --hero-size:5vw; --hero-leading:1.03; --hero-body:1.5vw; --hero-description-gap:2.2vw; }
body[data-page="familia"] .hero-page .eyebrow:after { display:none; }
body[data-page="familia"] .hero-page .eyebrow { margin-bottom:2.2vw; }
body[data-page="equipo"] { --hero-height:33.5vw; --hero-split:50%; --hero-top:5.4vw; --hero-bottom:4vw; --hero-left:5.8vw; --hero-right:2vw; --hero-size:4vw; --hero-leading:1.1; --hero-tracking:0; --hero-description-gap:1.5vw; }
body[data-page="contacto"] { --hero-height:30.5vw; --hero-split:51.4%; --hero-top:3.8vw; --hero-bottom:3vw; --hero-left:10.4vw; --hero-right:4vw; --hero-size:4.3vw; --hero-leading:1.05; --hero-description-gap:1.6vw; }
body[data-page="contacto"] .hero-page .eyebrow { margin-bottom:2.2vw; }
body[data-page="contacto"] .hero-page p:not(.eyebrow) { margin-bottom:0; }
@media(max-width:850px) {
 body[data-page] .hero-page { grid-template-columns:1fr; min-height:0; }
 body[data-page] .hero-page__copy { padding:38px 7%; }
 body[data-page] .hero-page h1 { font-size:clamp(30px,6.8vw,54px); }
 body[data-page="laboral"] .hero-page h1 { font-size:clamp(24px,5.7vw,44px); }
 body[data-page="familia"] .hero-page h1 { font-size:clamp(44px,8vw,64px); }
 body[data-page] .hero-page .eyebrow { font-size:12px; margin-bottom:20px; }
 body[data-page] .hero-page .eyebrow:after { width:28px; margin-top:14px; }
 body[data-page] .hero-page p:not(.eyebrow) { font-size:16px; max-width:100%; margin:22px 0 24px; }
 body[data-page] .hero-page .button { font-size:14px; padding:14px 20px; }
 .hero-title-line { display:inline; }
}
