:root {
    --navy:#26313e;
    --navy-dark:#17212d;
    --gold:#d1a650;
    --gold-hover:#dfb762;
    --white:#fff;
    --muted:#f3f5f7;
    --text:#1d2a3d;
    --container:1250px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--text);background:#fff}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.container{width:min(var(--container),calc(100% - 40px));margin-inline:auto}
h1,h2,h3,h4{font-family:Georgia,"Times New Roman",serif;color:#0d2037}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 20px;border:0;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.5px;cursor:pointer}
.btn-primary,.btn-login{background:var(--gold);color:#fff}
.btn:hover{background:var(--gold-hover)}
.section-line{display:block;width:80px;height:5px;margin-bottom:32px;background:var(--gold)}
.site-alert{position:fixed;left:50%;top:12px;transform:translateX(-50%);z-index:10000;padding:11px 18px;border-radius:6px;background:#a33;color:#fff;font-size:14px;box-shadow:0 5px 18px rgba(0,0,0,.25)}
.site-alert.success{background:#2c7c47}

.site-header{position:absolute;inset:0 0 auto 0;z-index:20;padding-top:26px}
.header-inner{display:flex;align-items:center;min-height:68px}
.brand{display:inline-flex;align-items:center;gap:10px;margin-right:auto}
.brand-mark{width:61px;height:61px;color:#05080c}.brand-mark svg{width:100%;height:100%}
.brand-text{display:flex;flex-direction:column;color:#d4ad45;font-family:Georgia,"Times New Roman",serif;font-size:27px;line-height:.92}
.main-nav{display:flex;align-items:center;gap:31px;margin-left:55px}
.main-nav a{color:#fff;font-size:15px;font-weight:600}.main-nav a:hover{color:var(--gold)}
.header-actions{display:flex;align-items:center;gap:15px;margin-left:35px}
.btn-login{min-width:147px}
.menu-toggle{display:none;width:40px;height:40px;margin-left:15px;padding:9px;border:0;background:transparent;cursor:pointer}
.menu-toggle span{display:block;height:2px;margin:5px 0;background:#fff}

.hero{min-height:549px;display:flex;align-items:center;background-image:linear-gradient(90deg,rgba(39,50,63,.94),rgba(39,50,63,.76) 42%,rgba(39,50,63,.5)),var(--home-hero-image,url("../img/hero.jpg"));background-position:center top;background-size:cover;background-repeat:no-repeat}
.hero-content{padding-top:85px}.eyebrow{margin:0 0 25px;color:var(--gold);font-family:Georgia,"Times New Roman",serif;font-size:15px;font-weight:700}
.hero h1{max-width:730px;margin:0 0 28px;color:#fff;font-size:clamp(42px,4vw,55px);line-height:1.2}.hero h1 span{display:block}

.about-grid{display:grid;grid-template-columns:1.6fr .72fr;min-height:740px}
.about-copy{padding:120px 80px 80px 0;align-self:center}
.about-copy h2,.practice-visual h2{margin:0 0 14px;font-size:34px}
.about-copy h3{margin:0 0 24px;font-size:17px}.about-copy>p{max-width:670px;margin:0 0 64px;font-size:16px;line-height:1.55}
.about-features{display:grid;grid-template-columns:1fr 1fr;gap:55px;margin-bottom:45px}
.about-features h4{margin:0 0 16px;font-size:21px}.about-features p{margin:0;font-size:15px;line-height:1.65}
.about-photo-wrap,.practice-photo-wrap{position:relative;min-height:100%}
.about-photo-wrap{transform:translateY(-55px)}
.about-photo,.practice-photo{width:calc(100% - 38px);height:100%;object-fit:cover;position:relative;z-index:2}
.gold-strip{position:absolute;top:-20px;right:0;width:40px;height:100%;background:var(--gold)}

.stats-section{background:#f3f5f7;padding:55px 0 72px}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:40px;text-align:center}
.stat-card{display:flex;flex-direction:column;align-items:center}.stat-icon{min-height:45px;margin-bottom:8px;color:var(--gold);font-size:32px}
.stat-card strong{margin-bottom:20px;font-family:Georgia,"Times New Roman",serif;font-size:29px;color:#10233a}.stat-card span{font-size:16px}

.practice-section{background:#f3f5f7;padding:115px 0 0}
.practice-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:90px}
.practice-visual h2{margin-bottom:55px}.practice-photo-wrap{height:370px}.practice-photo{width:calc(100% - 30px)}
.practice-list{display:grid;grid-template-columns:1fr 1fr;gap:36px 58px;padding-top:22px}
.practice-item h3{margin:0 0 12px;font-size:21px}.practice-item p{margin:0;font-size:15px;line-height:1.65}

.process-section{padding:105px 0 108px}.section-heading.center{text-align:center}.section-heading.center .section-line{margin:0 auto 28px}.section-heading h2{margin:0;font-size:36px}
.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:72px}.step-card{min-height:162px;padding:25px;display:grid;place-items:center;align-content:center;border-radius:12px;background:#f3f5f7;text-align:center}
.step-number{margin-bottom:10px;font-family:Georgia,"Times New Roman",serif;color:#b8c2d0;font-size:56px;font-weight:700}.step-card h3{margin:0;font-size:22px}
.process-cta{display:flex;justify-content:center;margin-top:60px}

.locations-section{padding:0 0 92px}.locations-title{margin:0 0 60px;text-align:center;font-size:30px}.location-card{padding:35px;border-radius:10px;background:#f3f5f7;box-shadow:0 18px 40px rgba(0,0,0,.06)}
.location-card h3{margin:0 0 44px;font-size:21px}.location-card p{margin:0;font-size:15px;line-height:1.6}

.footer{background:#303337;color:#fff;text-align:center}.footer-top{min-height:405px;display:flex;flex-direction:column;justify-content:center;align-items:center}
.footer-description{max-width:920px;margin:0 auto 60px;padding:0 20px;font-size:16px;line-height:1.5}.footer-menu{display:flex;gap:42px}.footer-menu a{color:#fff}.footer-menu a:hover{color:var(--gold)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.7)}.footer-bottom-content{position:relative;min-height:80px;display:flex;justify-content:center;align-items:center}.footer-bottom p{margin:0}
.back-to-top{position:absolute;right:0;width:32px;height:32px;display:grid;place-items:center;background:#fff;color:#303337}

/* Login */
.login-modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:9999}.login-modal.active{display:flex}
.login-overlay{position:absolute;inset:0;background:rgba(0,0,0,.6)}
.login-box{position:relative;z-index:2;width:410px;max-width:calc(100% - 30px);padding:35px 26px;background:#eee;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.login-box h2{margin:0 0 25px;text-align:center;font-size:28px}.login-close{position:absolute;top:10px;right:15px;border:0;background:transparent;font-size:28px;cursor:pointer}
.login-box form{display:flex;flex-direction:column}.login-box label{margin-bottom:8px;font-size:14px;font-weight:600}
.login-box input[type=text],.login-box input[type=password]{width:100%;height:42px;padding:0 12px;border:1px solid #ccc;background:#fff;outline:none}
.login-box input[type=text]{margin-bottom:16px}.password-container{position:relative}.password-container input{padding-right:45px!important}
.show-password{position:absolute;right:7px;top:50%;transform:translateY(-50%);width:35px;height:35px;border:0;background:transparent;cursor:pointer}
.remember{display:flex;align-items:center;gap:10px;margin:25px 0 12px;color:#888}
.login-submit,.register-btn{width:200px;min-height:42px;margin:0 auto;display:flex;align-items:center;justify-content:center;border:0;border-radius:3px;color:#fff;font-weight:600;cursor:pointer}
.login-submit{background:#3da5d7}.register-btn{background:var(--gold)}
.login-separator{position:relative;margin:25px 0 15px;text-align:center;color:#888;font-size:13px}.login-separator:before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:#ccc}.login-separator span{position:relative;padding:0 10px;background:#eee}
.login-error{margin-bottom:15px;padding:10px;background:#f8d7da;color:#842029;border-radius:4px;font-size:13px}
.demo-credentials{margin-top:16px;text-align:center;color:#666;font-size:12px}

/* Registro */
.auth-page{min-height:100vh;display:grid;place-items:center;padding:30px;background:#26313e}.auth-card{width:min(500px,100%);padding:34px;background:#fff;box-shadow:0 20px 60px rgba(0,0,0,.25)}
.auth-card h1{margin-top:0;text-align:center}.auth-form{display:grid;gap:12px}.auth-form label{font-size:14px;font-weight:600}.auth-form input{height:42px;padding:0 12px;border:1px solid #d4d4d4}
.auth-form .register-btn{width:100%;margin-top:8px}.auth-back{display:block;margin-top:20px;text-align:center;color:#9b742c}

@media(max-width:1050px){
.main-nav{position:absolute;top:90px;left:20px;right:20px;display:none;flex-direction:column;align-items:stretch;gap:0;margin:0;padding:12px;border-radius:12px;background:rgba(23,33,45,.98)}
.main-nav.open{display:flex}.main-nav a{padding:13px 15px}.header-actions{margin-left:auto}.menu-toggle{display:block}
}
@media(max-width:820px){
.about-grid,.practice-grid{grid-template-columns:1fr}.about-copy{padding:90px 0 60px}.about-photo-wrap{height:540px;transform:none}.stats-grid{grid-template-columns:repeat(2,1fr)}
.practice-list{padding:10px 0 70px}.steps-grid{grid-template-columns:1fr}
}
@media(max-width:700px){
.container{width:min(100% - 28px,var(--container))}.site-header{padding-top:14px}.brand-mark{width:46px;height:46px}.brand-text{font-size:19px}.btn-login{min-width:112px;font-size:10px}
.hero{min-height:610px;background-position:62% top}.hero-content{padding-top:110px}.about-features,.practice-list{grid-template-columns:1fr}.about-photo-wrap{height:420px}.practice-photo-wrap{height:320px}
.stats-grid{grid-template-columns:1fr 1fr;gap:50px 20px}.footer-menu{flex-wrap:wrap;justify-content:center;gap:22px 30px}
}

.forgot-password{margin:18px auto 0;color:#7b7b7b;font-size:13px;text-align:center}.forgot-password:hover{color:var(--gold);text-decoration:underline}.auth-help{margin:0 0 22px;text-align:center;color:#6f6f6f;font-size:14px;line-height:1.5}

.site-local-reset{
    margin:18px 0;
    padding:15px;
    border-radius:6px;
    background:#f3f5f7;
    color:#4e5965;
    font-size:14px;
    line-height:1.5;
    text-align:center;
}
.site-local-reset a{color:#9b742c;font-weight:700}


/* Datos dinámicos del despacho */
.contact-office-card{
    margin-bottom:42px;
    padding:30px 35px;
    border-radius:10px;
    background:#f3f5f7;
    box-shadow:0 18px 40px rgba(0,0,0,.05);
}
.contact-office-card h3{margin:0 0 22px;font-size:22px}
.contact-office-card p{margin:8px 0;font-size:15px;line-height:1.6}
.contact-office-card a{color:#a67d2f;font-weight:700}
.regional-title{margin:0 0 24px;text-align:center;font-size:25px}
.locations-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.locations-grid .location-card{margin:0}
.locations-grid .location-card h3{margin-bottom:22px}
.locations-grid .location-card p{margin:6px 0}
@media(max-width:760px){.locations-grid{grid-template-columns:1fr}}


/* Mapas del despacho */
.office-map,
.regional-office-map {
    width: 100%;
    overflow: hidden;
    border-radius: 10px;
    background: #eef1f4;
}

.office-map {
    margin: 20px 0 10px;
    height: 360px;
}

.regional-office-map {
    margin: 18px 0 9px;
    height: 245px;
}

.office-map iframe,
.regional-office-map iframe {
    width: 100%;
    height: 100%;
    border: 0;
}

.open-maps-link {
    display: inline-block;
    margin: 0 0 16px;
    color: #087bff;
    font-size: 14px;
    font-weight: 600;
}

.open-maps-link:hover {
    text-decoration: underline;
}

/* Blog de comentarios */
.comments-blog {
    margin-top: 70px;
    padding-top: 60px;
    border-top: 1px solid #e1e4e8;
}

.comments-heading {
    margin-bottom: 34px;
}

.comments-heading .section-line {
    margin-bottom: 20px;
}

.comments-heading h2 {
    margin: 0 0 10px;
    font-size: 31px;
}

.comments-heading p {
    margin: 0;
    color: #6f7882;
}

.comments-layout {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: 36px;
    align-items: start;
}

.comment-form,
.comments-feed {
    padding: 28px;
    border-radius: 12px;
    background: #f5f6f8;
}

.comment-form h3,
.comments-feed h3 {
    margin: 0 0 22px;
    font-size: 22px;
}

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

.comment-field {
    margin-bottom: 17px;
}

.comment-field label {
    display: block;
    margin-bottom: 7px;
    font-weight: 700;
    font-size: 14px;
}

.comment-field input,
.comment-field textarea {
    width: 100%;
    padding: 11px 12px;
    border: 1px solid #ccd3da;
    border-radius: 5px;
    background: #fff;
    font: inherit;
}

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

.comment-field small {
    display: block;
    margin-top: 5px;
    color: #737d87;
    font-size: 11px;
}

.comment-honeypot {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(1px, 1px, 1px, 1px) !important;
    white-space: nowrap !important;
}

.comment-submit {
    border-radius: 5px;
}

.comment-moderation-note {
    margin: 13px 0 0;
    color: #77808a;
    font-size: 12px;
    line-height: 1.45;
}

.comments-feed {
    max-height: 650px;
    overflow-y: auto;
}

.comment-card {
    padding: 18px 0;
    border-bottom: 1px solid #dfe3e8;
}

.comment-card:first-of-type {
    padding-top: 0;
}

.comment-card:last-child {
    border-bottom: 0;
}

.comment-card-head {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    margin-bottom: 9px;
}

.comment-card-head strong {
    color: #10233a;
}

.comment-card-head time {
    color: #8a929b;
    font-size: 12px;
}

.comment-card p {
    margin: 0;
    color: #334151;
    line-height: 1.65;
}

.no-comments {
    padding: 28px 16px;
    border: 1px dashed #cfd5dc;
    text-align: center;
    color: #7b848d;
    background: #fff;
}

.site-alert.error {
    background: #b63838;
}

@media (max-width: 820px) {
    .comments-layout,
    .comment-form-grid {
        grid-template-columns: 1fr;
    }

    .office-map {
        height: 300px;
    }
}


/* =========================================================
   COMENTARIOS / TESTIMONIOS VISUALES
   ========================================================= */
.testimonials-heading {
    text-align: center;
    margin: 10px auto 42px;
    max-width: 780px;
}

.testimonials-heading .section-line {
    margin: 0 auto 22px;
}

.testimonials-heading h2 {
    margin: 0 0 12px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(30px, 3vw, 44px);
    line-height: 1.18;
    color: #0d2036;
}

.testimonials-heading p {
    margin: 0;
    color: #6b737d;
    font-size: 16px;
    line-height: 1.6;
}

.testimonials-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 28px;
    margin: 0 auto 60px;
}

.testimonial-card {
    position: relative;
    min-height: 330px;
    padding: 34px 36px 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    border: 1px solid #edf0f3;
    border-radius: 14px;
    background: #f4f6f8;
    text-align: center;
    box-shadow: 0 16px 40px rgba(17, 31, 48, .06);
    transition: transform .2s ease, box-shadow .2s ease;
}

.testimonial-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 22px 46px rgba(17, 31, 48, .10);
}

.testimonial-avatar {
    width: 88px;
    height: 88px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    margin-bottom: 18px;
    border: 5px solid #fff;
    border-radius: 50%;
    background: #d4aa4e;
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 30px;
    font-weight: 700;
    box-shadow: 0 5px 14px rgba(0, 0, 0, .10);
}

.testimonial-quote {
    position: absolute;
    top: 25px;
    right: 28px;
    color: rgba(212, 170, 78, .28);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 64px;
    line-height: 1;
}

.testimonial-text {
    flex: 1;
    display: flex;
    align-items: center;
    margin: 0 0 24px;
    color: #47515c;
    font-size: 16px;
    line-height: 1.65;
}

.testimonial-person {
    margin-top: auto;
}

.testimonial-person strong {
    display: block;
    margin-bottom: 7px;
    color: #10233a;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 18px;
}

.testimonial-person span {
    display: block;
    color: #d0a243;
    font-size: 13px;
    line-height: 1.4;
}

.testimonial-empty {
    max-width: 850px;
    margin: 0 auto 48px;
}

.comment-form-shell {
    max-width: 1040px;
    margin: 0 auto;
    padding: 34px;
    border: 1px solid #e3e6e9;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 14px 38px rgba(17, 31, 48, .05);
}

.comment-form-intro {
    margin-bottom: 24px;
}

.comment-form-intro .section-line {
    margin-bottom: 16px;
}

.comment-form-intro h3 {
    margin: 0 0 8px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 27px;
    color: #10233a;
}

.comment-form-intro p {
    margin: 0;
    color: #69747f;
    line-height: 1.55;
}

.visual-comment-form {
    padding: 0;
    background: transparent;
}

.comment-submit-row {
    display: flex;
    align-items: center;
    gap: 18px;
    flex-wrap: wrap;
}

.comment-submit-row .comment-moderation-note {
    flex: 1 1 320px;
    margin: 0;
}

@media (max-width: 980px) {
    .testimonials-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 660px) {
    .testimonials-grid {
        grid-template-columns: 1fr;
    }

    .testimonial-card {
        min-height: 0;
    }

    .comment-form-shell {
        padding: 24px 18px;
    }
}


/* =========================================================
   CTA LEGAL + FORMULARIO DE CASO
   ========================================================= */
.legal-help-cta {
    position: relative;
    min-height: 440px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background-image:
        linear-gradient(rgba(9, 24, 40, .68), rgba(9, 24, 40, .68)),
        var(--legal-help-image, url("../img/practice.jpg"));
    background-position: center 45%;
    background-size: cover;
    background-repeat: no-repeat;
}

.legal-help-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        90deg,
        rgba(8, 25, 43, .26),
        rgba(8, 25, 43, .08)
    );
}

.legal-help-content {
    position: relative;
    z-index: 2;
    max-width: 850px;
    text-align: center;
}

.legal-help-content h2 {
    max-width: 760px;
    margin: 0 auto 28px;
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(34px, 4.2vw, 56px);
    line-height: 1.15;
    text-shadow: 0 3px 14px rgba(0, 0, 0, .25);
}

.legal-help-button {
    min-width: 160px;
    cursor: pointer;
}

.legal-brand-band {
    min-height: 290px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 45px 20px;
    background: #313338;
}

.legal-brand-lockup {
    display: flex;
    align-items: center;
    gap: 20px;
    color: #d4aa4e;
}

.legal-brand-mark {
    width: 105px;
    height: 105px;
    color: #090b0e;
}

.legal-brand-mark svg {
    width: 100%;
    height: 100%;
}

.legal-brand-text {
    display: flex;
    flex-direction: column;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(30px, 3.5vw, 52px);
    line-height: .92;
}

.case-modal {
    position: fixed;
    inset: 0;
    z-index: 20000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.case-modal.active {
    display: flex;
}

.case-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(8, 14, 23, .72);
    backdrop-filter: blur(3px);
}

.case-modal-card {
    position: relative;
    z-index: 2;
    width: min(860px, 100%);
    max-height: calc(100vh - 48px);
    overflow-y: auto;
    padding: 38px;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 30px 85px rgba(0, 0, 0, .35);
}

.case-modal-close {
    position: absolute;
    top: 16px;
    right: 18px;
    width: 38px;
    height: 38px;
    border: 0;
    background: transparent;
    color: #27313d;
    font-size: 32px;
    cursor: pointer;
}

.case-modal-heading {
    margin-bottom: 28px;
}

.case-modal-heading .section-line {
    margin-bottom: 16px;
}

.case-modal-heading h2 {
    margin: 0 0 8px;
    color: #10233a;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 32px;
}

.case-modal-heading p {
    margin: 0;
    color: #6b7480;
}

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

.case-field {
    margin-bottom: 18px;
}

.case-field label {
    display: block;
    margin-bottom: 7px;
    color: #243244;
    font-weight: 700;
    font-size: 14px;
}

.case-field label span {
    color: #7d8791;
    font-weight: 400;
}

.case-field input,
.case-field textarea {
    width: 100%;
    padding: 12px 13px;
    border: 1px solid #cfd6dd;
    border-radius: 5px;
    background: #fff;
    font: inherit;
}

.case-field textarea {
    resize: vertical;
}

.case-file-box {
    padding: 18px !important;
    border: 1px dashed #b7c0c8;
    border-radius: 7px;
    background: #f7f8fa;
    cursor: pointer;
}

.case-file-box strong,
.case-file-box span {
    display: block;
}

.case-file-box strong {
    margin-bottom: 4px;
    color: #0d2139;
}

.case-file-box span {
    color: #747e88;
    font-size: 12px;
}

.case-form-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-top: 8px;
    padding-top: 20px;
    border-top: 1px solid #e3e7eb;
}

.case-form-footer > span {
    color: #6d7680;
    font-size: 12px;
}

.case-form-footer strong {
    color: #233348;
}

.case-honeypot {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(1px, 1px, 1px, 1px) !important;
}

@media (max-width: 720px) {
    .case-form-grid {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .case-modal-card {
        padding: 30px 20px;
    }

    .case-form-footer {
        align-items: stretch;
        flex-direction: column;
    }

    .case-form-footer button {
        width: 100%;
    }

    .legal-brand-lockup {
        transform: scale(.84);
    }
}


/* =========================================================
   PARALLAX DE FONDOS
   ========================================================= */
.parallax-section {
    --parallax-y: 0px;
    background-position:
        center calc(50% + var(--parallax-y)) !important;
    background-repeat: no-repeat !important;
    will-change: background-position;
}

/* Hero: un poco de zoom para que el movimiento no muestre bordes */
.hero.parallax-section,
.hero-section.parallax-section {
    background-size: cover !important;
}

/* Sección "Le ayudamos..." */
.legal-help-cta.parallax-section {
    background-position:
        center calc(45% + var(--parallax-y)) !important;
    background-size: 108% auto !important;
    min-height: 440px;
}

/* Si alguna sección práctica usa imagen de fondo */
.practice-section.parallax-section {
    background-size: cover !important;
}

@media (max-width: 900px) {
    .legal-help-cta.parallax-section {
        background-size: cover !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .parallax-section {
        background-position: center center !important;
        will-change: auto;
    }
}


/* Logo configurable desde Desarrollador */
.site-custom-logo {
    display: block;
    width: auto;
    height: calc(66px * var(--logo-desktop-scale, 1));
    max-width: calc(270px * var(--logo-desktop-scale, 1));
    object-fit: contain;
}

.legal-brand-custom-logo {
    display: block;
    width: auto;
    max-width: min(calc(520px * var(--logo-desktop-scale, 1)), 90vw);
    max-height: calc(145px * var(--logo-desktop-scale, 1));
    object-fit: contain;
}

@media (max-width: 760px) {
    .site-custom-logo {
        height: calc(50px * var(--logo-mobile-scale, 1));
        max-width: calc(210px * var(--logo-mobile-scale, 1));
    }

    .legal-brand-custom-logo {
        max-height: calc(110px * var(--logo-mobile-scale, 1));
    }
}


/* Contraste adicional del logo sobre fondos fotográficos */
.site-header:not(.public-page-header) .site-custom-logo {
    filter:
        drop-shadow(0 1px 1px rgba(255,255,255,.28))
        drop-shadow(0 2px 4px rgba(0,0,0,.25));
}

/* =========================================================
   AJUSTE VISUAL PARA IGUALAR EL SITIO DE REFERENCIA
   ========================================================= */
:root{
    --container:1000px;
}
html,body{margin:0;padding:0}
body{overflow-x:hidden}
main{margin:0;padding:0}

.site-header{
    position:absolute;
    top:0;
    left:0;
    right:0;
    z-index:30;
    padding-top:18px;
    background:transparent;
}
.header-inner{
    min-height:68px;
    display:flex;
    align-items:center;
}
.brand{
    flex:0 0 auto;
    margin-right:auto;
}
.site-custom-logo{
    width:calc(205px * var(--logo-desktop-scale,1)) !important;
    height:calc(58px * var(--logo-desktop-scale,1)) !important;
    max-width:none !important;
    object-fit:cover;
    object-position:center top;
    filter:none !important;
}
.main-nav{
    margin-left:28px;
    gap:30px;
}
.main-nav a{
    padding:0;
    font-size:13px;
    line-height:1;
    font-weight:500;
    color:#fff;
}
.main-nav a:first-child{color:var(--gold)}
.header-actions{
    margin-left:31px;
    gap:0;
}
.btn-login{
    min-width:145px;
    min-height:34px;
    padding:0 20px;
    font-size:11px;
    font-weight:700;
}
.header-social{
    display:flex;
    align-items:center;
    gap:12px;
    margin-left:19px;
}
.header-social a{
    width:16px;
    height:18px;
    display:grid;
    place-items:center;
    color:#05080c;
    font-size:15px;
    font-weight:800;
    line-height:1;
}

.hero{
    min-height:432px !important;
    height:432px;
    display:block;
    position:relative;
    background-image:
        linear-gradient(90deg,rgba(39,50,63,.20),rgba(39,50,63,.10)),
        var(--home-hero-image,url("../img/hero.jpg")) !important;
    background-position:center calc(50% + var(--parallax-y,0px)) !important;
    background-size:cover !important;
    background-repeat:no-repeat !important;
}
.hero-content{
    padding-top:154px !important;
}
.eyebrow{
    margin:0 0 22px;
    font-size:13px;
    line-height:1.2;
}
.hero h1{
    max-width:560px;
    margin:0 0 27px;
    color:#fff;
    font-size:43px;
    line-height:1.18;
    letter-spacing:-.2px;
}
.hero h1 span{display:block}
.hero .btn-primary{
    min-height:33px;
    padding:0 18px;
    font-size:10px;
}

.about-section{
    background:#fff;
}
.about-grid{
    grid-template-columns:minmax(0,1.62fr) minmax(260px,.70fr);
    gap:0;
    min-height:650px;
}
.about-copy{
    padding:258px 72px 70px 0;
    align-self:start;
}
.about-copy .section-line{
    width:60px;
    height:4px;
    margin-bottom:28px;
}
.about-copy h2{
    margin:0 0 13px;
    font-size:31px;
}
.about-copy h3{
    margin:0 0 22px;
    font-size:15px;
}
.about-copy>p{
    max-width:600px;
    margin-bottom:55px;
    font-size:14px;
    line-height:1.55;
}
.about-photo-wrap{
    height:520px;
    min-height:0;
    margin-top:76px;
    transform:none !important;
}
.about-photo{
    width:calc(100% - 31px);
    height:100%;
    object-fit:cover;
    object-position:center center;
}
.about-photo-wrap .gold-strip{
    top:-20px;
    width:32px;
    height:100%;
}

@media(max-width:1050px){
    :root{--container:calc(100% - 42px)}
    .main-nav{gap:20px;margin-left:18px}
    .header-actions{margin-left:20px}
    .header-social{display:none}
}
@media(max-width:820px){
    :root{--container:calc(100% - 28px)}
    .site-header{padding-top:12px}
    .site-custom-logo{
        width:calc(172px * var(--logo-mobile-scale,1)) !important;
        height:calc(46px * var(--logo-mobile-scale,1)) !important;
        max-width:none !important;
    }
    .hero{height:auto;min-height:540px !important}
    .hero-content{padding-top:145px !important}
    .hero h1{font-size:39px;max-width:520px}
    .about-grid{grid-template-columns:1fr;min-height:0}
    .about-copy{padding:80px 0 55px}
    .about-photo-wrap{height:520px;margin:0 0 70px}
}


/* Redes sociales configurables */
.header-social a {
    text-decoration: none;
}

.header-social a[data-social="whatsapp"],
.header-social a[data-social="linkedin"] {
    width: auto;
    min-width: 19px;
    padding: 0 1px;
    font-size: 10px;
    letter-spacing: -.2px;
}

.header-social a[data-social="youtube"] {
    font-size: 13px;
}

.header-social a[data-social="tiktok"] {
    font-size: 15px;
}


/* =========================================================
   VISIBILIDAD / NITIDEZ DE CABECERA Y PORTADA
   ========================================================= */
/* Inicio: eliminar cualquier franja/linea detras del logo y menu. */
.site-header,
.site-header .header-inner{
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
}
.site-header::before,
.site-header::after,
.site-header .header-inner::before,
.site-header .header-inner::after{
    content:none !important;
    display:none !important;
}

/* Mantener el logo nítido, proporcionado y sin recortes. */
.site-custom-logo{
    width:auto !important;
    height:calc(62px * var(--logo-desktop-scale,1)) !important;
    max-width:calc(230px * var(--logo-desktop-scale,1)) !important;
    max-height:none !important;
    object-fit:contain !important;
    object-position:center !important;
    image-rendering:auto;
    filter:
        drop-shadow(0 0 1px rgba(255,255,255,.90))
        drop-shadow(0 3px 6px rgba(0,0,0,.48)) !important;
}

/* Menu y redes legibles sobre cualquier fotografia. */
.site-header .main-nav a{
    color:#fff !important;
    font-weight:700 !important;
    text-shadow:
        0 1px 2px rgba(0,0,0,.95),
        0 0 5px rgba(0,0,0,.62);
}
.site-header .main-nav a:hover{
    color:var(--gold) !important;
}
.site-header .header-social a{
    color:#fff !important;
    text-shadow:0 1px 3px rgba(0,0,0,.95);
    filter:drop-shadow(0 1px 2px rgba(0,0,0,.72));
}

/* La imagen y los degradados de la portada se aplican directamente
   desde index.php para garantizar que las imágenes cargadas desde
   Desarrollador siempre se muestren. */
.hero{
    background-size:cover !important;
    background-repeat:no-repeat !important;
}
.hero h1,
.hero .eyebrow{
    text-shadow:0 2px 7px rgba(0,0,0,.62);
}

@media(max-width:820px){
    .site-custom-logo{
        height:calc(50px * var(--logo-mobile-scale,1)) !important;
        max-width:calc(190px * var(--logo-mobile-scale,1)) !important;
    }
}


/* =========================================================
   SECCIONES SIN SUPERPOSICIONES
   ========================================================= */
/*
 * Cada bloque conserva su propio espacio vertical.
 * Esto evita que una imagen cargada desde Desarrollador invada
 * el título o contenido de la sección siguiente.
 */
.about-section,
.stats-section,
.practice-section,
.process-section,
.locations-section {
    position: relative;
    box-sizing: border-box;
}

.practice-section {
    padding-top: 115px !important;
    padding-bottom: 95px !important;
    overflow: hidden;
    z-index: 1;
}

.practice-grid {
    align-items: start !important;
}

.practice-visual,
.practice-list {
    position: relative;
    min-width: 0;
    z-index: 1;
}

/*
 * Quitar min-height:100% del contenedor de imagen.
 * Esa regla podía hacer que el alto de la fotografía creciera
 * con la fila completa del grid y saliera de la sección.
 */
.practice-photo-wrap {
    position: relative !important;
    width: 100%;
    height: 370px !important;
    min-height: 0 !important;
    max-height: 370px !important;
    overflow: hidden;
}

.practice-photo {
    display: block;
    width: calc(100% - 30px) !important;
    height: 100% !important;
    max-height: 370px !important;
    object-fit: cover !important;
    object-position: center !important;
    position: relative;
    z-index: 2;
}

.practice-photo-wrap .gold-strip {
    top: 0 !important;
    right: 0;
    height: 100% !important;
    max-height: 370px;
    z-index: 1;
}

/* La sección Como funciona siempre inicia después de Áreas de práctica. */
.process-section {
    clear: both;
    padding-top: 95px !important;
    padding-bottom: 108px !important;
    background: #fff;
    z-index: 2;
}

.process-section .section-heading {
    position: relative;
    z-index: 3;
    margin: 0;
}

.process-section .steps-grid,
.process-section .process-cta {
    position: relative;
    z-index: 3;
}

/* Evitar que textos extensos desborden sus columnas. */
.practice-item,
.about-copy,
.practice-list,
.section-heading,
.step-card {
    min-width: 0;
}

.practice-item h3,
.practice-item p,
.about-copy h2,
.about-copy h3,
.about-copy p,
.section-heading h2,
.step-card h3 {
    overflow-wrap: break-word;
    word-break: normal;
}

/* La imagen de Sobre nosotros permanece dentro de su columna. */
.about-photo-wrap {
    overflow: hidden;
}

.about-photo {
    display: block;
    max-width: 100%;
    object-fit: cover;
}

/* Tablet */
@media (max-width: 1050px) {
    .practice-section {
        padding-top: 80px !important;
        padding-bottom: 75px !important;
    }

    .practice-photo-wrap {
        height: 340px !important;
        max-height: 340px !important;
    }

    .practice-photo {
        max-height: 340px !important;
    }

    .practice-photo-wrap .gold-strip {
        max-height: 340px;
    }

    .process-section {
        padding-top: 80px !important;
    }
}

/* Móvil: imagen y textos se apilan sin cruzarse. */
@media (max-width: 760px) {
    .practice-section {
        padding-top: 65px !important;
        padding-bottom: 65px !important;
        overflow: hidden;
    }

    .practice-grid {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 48px !important;
    }

    .practice-photo-wrap {
        height: 300px !important;
        max-height: 300px !important;
    }

    .practice-photo {
        width: calc(100% - 22px) !important;
        max-height: 300px !important;
    }

    .practice-photo-wrap .gold-strip {
        width: 24px;
        max-height: 300px;
    }

    .practice-list {
        padding-top: 0 !important;
        grid-template-columns: 1fr !important;
        gap: 28px !important;
    }

    .process-section {
        padding-top: 70px !important;
    }
}


/* =========================================================
   PARALLAX VISIBLE EN "LE AYUDAMOS..."
   ========================================================= */
.legal-help-cta.parallax-section {
    background-position:
        center calc(45% + var(--parallax-y, 0px)) !important;
    background-size: 115% auto !important;
    background-repeat: no-repeat !important;
    will-change: background-position;
}

/* Suaviza el resultado visual durante el scroll. */
.legal-help-cta {
    overflow: hidden;
}

@media (max-width: 1100px) {
    .legal-help-cta.parallax-section {
        background-size: cover !important;
        background-position:
            center calc(50% + var(--parallax-y, 0px)) !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .legal-help-cta.parallax-section {
        background-position: center center !important;
        will-change: auto;
    }
}


/* =========================================================
   INICIO: CABECERA LIMPIA COMO SERVICIOS / NOSOTROS / CONTACTO
   ========================================================= */
.home-page-header,
.home-page-header .header-inner {
    position: absolute;
    background: transparent !important;
    background-image: none !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

.home-page-header {
    top: 0;
    left: 0;
    right: 0;
    z-index: 60;
    padding-top: 18px !important;
}

.home-page-header::before,
.home-page-header::after,
.home-page-header .header-inner::before,
.home-page-header .header-inner::after {
    content: none !important;
    display: none !important;
    background: transparent !important;
}

.home-page-header .header-inner {
    min-height: 68px;
}

.home-page-header .site-custom-logo {
    width: auto !important;
    height: calc(62px * var(--logo-desktop-scale, 1)) !important;
    max-width: calc(230px * var(--logo-desktop-scale, 1)) !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: center !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    filter:
        drop-shadow(0 0 1px rgba(255,255,255,.75))
        drop-shadow(0 3px 6px rgba(0,0,0,.52)) !important;
}

.home-page-header .main-nav a {
    color: #fff !important;
    font-weight: 700 !important;
    text-shadow:
        0 1px 2px rgba(0,0,0,.95),
        0 0 5px rgba(0,0,0,.58);
}

.home-page-header .main-nav a:hover,
.home-page-header .main-nav a.active,
.home-page-header .main-nav a[aria-current="page"] {
    color: var(--gold) !important;
}

/*
 * La fotografía de Inicio se mueve, pero se mantiene ampliada ligeramente
 * para que nunca aparezcan bordes al desplazarla.
 */
.hero.parallax-section {
    background-position:
        center calc(52% + var(--parallax-y, 0px)) !important;
    background-size: 108% auto !important;
    background-repeat: no-repeat !important;
    will-change: background-position;
}

/* Sin barra o línea visual sobre el logo. */
.hero.parallax-section::before,
.hero.parallax-section::after {
    pointer-events: none;
}

/* CTA inferior del Inicio. */
.legal-help-cta.parallax-section {
    background-position:
        center calc(45% + var(--parallax-y, 0px)) !important;
    background-size: 115% auto !important;
    background-repeat: no-repeat !important;
    will-change: background-position;
}

@media (max-width: 1050px) {
    .hero.parallax-section,
    .legal-help-cta.parallax-section {
        background-size: cover !important;
    }
}

@media (max-width: 760px) {
    .home-page-header .site-custom-logo {
        height: calc(48px * var(--logo-mobile-scale, 1)) !important;
        max-width: calc(185px * var(--logo-mobile-scale, 1)) !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .hero.parallax-section,
    .legal-help-cta.parallax-section {
        background-position: center center !important;
        will-change: auto;
    }
}


/* =========================================================
   INICIO CON LA MISMA ESTRUCTURA VISUAL DE SERVICIOS
   ========================================================= */

/*
 * Error anterior:
 * .home-page-header .header-inner también quedaba position:absolute.
 * Eso sacaba el contenedor del flujo y desplazaba el logo hacia el borde.
 */
.home-page-header {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 60 !important;
    padding-top: 18px !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

.home-page-header .header-inner {
    position: relative !important;
    inset: auto !important;
    width: min(var(--container), calc(100% - 40px)) !important;
    margin-inline: auto !important;
    min-height: 68px !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

/* Logo, menú, botón y redes quedan en la misma línea que Servicios. */
.home-page-header .brand {
    margin-right: auto !important;
}

.home-page-header .main-nav {
    margin-left: 55px !important;
}

.home-page-header .header-actions {
    margin-left: 35px !important;
}

.home-page-header .site-custom-logo {
    width: auto !important;
    height: calc(62px * var(--logo-desktop-scale, 1)) !important;
    max-width: calc(230px * var(--logo-desktop-scale, 1)) !important;
    object-fit: contain !important;
    object-position: center !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

/* Hero de Inicio = estructura del hero de Servicios. */
.home-public-hero {
    --parallax-y: 0px;
    position: relative !important;
    min-height: 500px !important;
    display: flex !important;
    align-items: center !important;
    overflow: hidden !important;
    padding-top: 78px !important;
    background-color: #172434;
    background-size: 110% auto !important;
    background-repeat: no-repeat !important;
    background-position:
        center calc(50% + var(--parallax-y, 0px)) !important;
    will-change: background-position;
}

/* La capa oscura es la misma que utilizan las páginas internas. */
.home-public-hero .public-hero-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(
            180deg,
            rgba(10,24,38,.35) 0%,
            rgba(10,24,38,.18) 24%,
            rgba(10,24,38,.09) 100%
        ),
        linear-gradient(
            90deg,
            rgba(10,27,44,.78) 0%,
            rgba(10,27,44,.53) 47%,
            rgba(10,27,44,.28) 100%
        ) !important;
}

/* Mismo ancho, alineación y escala tipográfica que Servicios. */
.home-public-hero .public-hero-content {
    position: relative !important;
    z-index: 2 !important;
    max-width: 860px !important;
    padding-top: 0 !important;
    color: #fff !important;
}

.home-public-hero .eyebrow {
    display: inline-block !important;
    margin: 0 0 16px !important;
    color: #d5ab4d !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 16px !important;
    font-weight: 700 !important;
}

.home-public-hero h1 {
    max-width: 780px !important;
    margin: 0 0 28px !important;
    color: #fff !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: clamp(38px, 5vw, 64px) !important;
    line-height: 1.06 !important;
    text-shadow: 0 2px 8px rgba(0,0,0,.65);
}

/*
 * En Inicio hay dos campos para el título. Se mantienen,
 * pero visualmente funcionan como un único título igual a Servicios.
 */
.home-public-hero h1 span {
    display: block !important;
}

.home-public-hero .btn-primary {
    position: relative;
    z-index: 3;
}

/* Evita cualquier línea/franja que atraviese el logo. */
.home-page-header::before,
.home-page-header::after,
.home-page-header .header-inner::before,
.home-page-header .header-inner::after {
    content: none !important;
    display: none !important;
}

@media (max-width: 1100px) {
    .home-public-hero {
        background-size: cover !important;
    }
}

@media (max-width: 760px) {
    .home-page-header .main-nav {
        margin-left: 0 !important;
    }

    .home-public-hero {
        min-height: 520px !important;
        padding-top: 92px !important;
    }

    .home-page-header .site-custom-logo {
        height: calc(48px * var(--logo-mobile-scale, 1)) !important;
        max-width: calc(185px * var(--logo-mobile-scale, 1)) !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .home-public-hero {
        background-position: center center !important;
        will-change: auto;
    }
}


/* =========================================================
   PÁGINA ACTIVA EN EL MENÚ PRINCIPAL
   ========================================================= */
.main-nav a {
    transition: color .18s ease, opacity .18s ease;
}

.main-nav a.active,
.main-nav a[aria-current="page"] {
    color: var(--gold) !important;
}

.main-nav a:not(.active):not([aria-current="page"]):hover {
    color: #f0c968 !important;
}


/* =========================================================
   SECCIONES DE CONVERSIÓN: POR QUÉ ELEGIRNOS / EQUIPO / FAQ
   ========================================================= */
.why-choose-section,
.team-public-section,
.faq-public-section {
    padding: 95px 0;
    background: #fff;
}

.why-choose-section {
    background: #f6f7f8;
}

.why-heading,
.team-heading {
    max-width: 760px;
    margin: 0 auto 42px;
}

.why-heading p,
.team-heading p {
    margin: 10px auto 0;
    color: #5e6974;
    line-height: 1.7;
}

.why-choose-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 22px;
}

.why-card {
    min-height: 245px;
    padding: 30px 24px;
    border: 1px solid #e1e5e9;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 12px 30px rgba(16, 33, 49, .06);
    transition: transform .2s ease, box-shadow .2s ease;
}

.why-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 18px 38px rgba(16, 33, 49, .12);
}

.why-icon {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    margin-bottom: 22px;
    border-radius: 50%;
    background: #d8ae4e;
    color: #14263b;
    font-size: 21px;
    font-weight: 800;
}

.why-card h3 {
    margin: 0 0 12px;
    color: #10243b;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 21px;
}

.why-card p {
    margin: 0;
    color: #5d6874;
    line-height: 1.65;
}

.team-public-section {
    background: #fff;
}

.team-public-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 26px;
}

.team-public-card {
    overflow: hidden;
    border: 1px solid #e0e4e8;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(15, 31, 47, .08);
}

.team-public-photo {
    height: 315px;
    overflow: hidden;
    background: #e9edf1;
}

.team-public-photo img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center top;
}

.team-public-initials {
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
    background: linear-gradient(145deg, #17283b, #33485d);
    color: #d8ae4e;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 70px;
    font-weight: 700;
}

.team-public-body {
    padding: 24px;
}

.team-public-body h3 {
    margin: 0;
    color: #10243b;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 23px;
}

.team-specialty {
    margin: 7px 0 14px;
    color: #aa7d24;
    font-weight: 700;
}

.team-public-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-bottom: 14px;
}

.team-public-meta span {
    padding: 5px 9px;
    border-radius: 999px;
    background: #f2f3f5;
    color: #596572;
    font-size: 11px;
}

.team-bio {
    margin: 0 0 18px;
    color: #606b76;
    line-height: 1.6;
}

.team-public-contact {
    display: flex;
    gap: 9px;
    flex-wrap: wrap;
}

.team-public-contact a {
    padding: 8px 11px;
    border: 1px solid #d8ae4e;
    border-radius: 4px;
    color: #8b641c;
    text-decoration: none;
    font-size: 12px;
    font-weight: 700;
}

.team-empty-public {
    padding: 28px;
    border: 1px dashed #cfd6dd;
    border-radius: 8px;
    color: #68737e;
    text-align: center;
    background: #fafbfc;
}

.faq-public-section {
    background: #f6f7f8;
}

.faq-public-grid {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: 70px;
    align-items: start;
}

.faq-public-copy h2 {
    margin: 12px 0 15px;
    color: #10243b;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(32px, 4vw, 46px);
}

.faq-public-copy p {
    margin: 0 0 24px;
    color: #606b76;
    line-height: 1.7;
}

.faq-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.faq-item {
    border: 1px solid #dce1e6;
    border-radius: 7px;
    background: #fff;
    overflow: hidden;
}

.faq-item summary {
    position: relative;
    padding: 18px 52px 18px 20px;
    color: #10243b;
    font-weight: 700;
    cursor: pointer;
    list-style: none;
}

.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
    content: "+";
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    color: #b98b31;
    font-size: 24px;
}
.faq-item[open] summary::after { content: "−"; }

.faq-answer {
    padding: 0 20px 20px;
    color: #5f6b77;
    line-height: 1.65;
}

/* Formulario de asesoría mejorado */
.case-field select,
.public-appointment-form select {
    width: 100%;
    min-height: 44px;
    padding: 0 12px;
    border: 1px solid #cfd6de;
    border-radius: 4px;
    background: #fff;
    color: #26384b;
    font: inherit;
}

/* WhatsApp flotante: se muestra solo cuando WhatsApp está habilitado en Desarrollador. */
.whatsapp-floating {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 200;
    min-height: 52px;
    padding: 7px 16px 7px 8px;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    border-radius: 999px;
    background: #20a85a;
    color: #fff;
    text-decoration: none;
    box-shadow: 0 10px 26px rgba(0,0,0,.22);
    font-weight: 700;
    transition: transform .18s ease, box-shadow .18s ease;
}

.whatsapp-floating:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 32px rgba(0,0,0,.28);
}

.whatsapp-floating-icon {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #fff;
    color: #168a48;
    font-size: 11px;
    font-weight: 900;
}

.whatsapp-floating-label { white-space: nowrap; }

@media (max-width: 1050px) {
    .why-choose-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .team-public-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
    .why-choose-section,
    .team-public-section,
    .faq-public-section { padding: 65px 0; }
    .why-choose-grid,
    .team-public-grid,
    .faq-public-grid { grid-template-columns: 1fr; }
    .faq-public-grid { gap: 35px; }
    .team-public-photo { height: 290px; }
    .whatsapp-floating { right: 14px; bottom: 14px; padding-right: 10px; }
    .whatsapp-floating-label { display: none; }
}


/* =========================================================
   LANGUAGE SWITCH
   ========================================================= */
.language-switch{
    height:34px;
    min-width:58px;
    padding:0 10px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    border:1px solid rgba(255,255,255,.48);
    border-radius:999px;
    color:#fff;
    background:rgba(12,28,44,.22);
    text-decoration:none;
    font-size:11px;
    font-weight:800;
    letter-spacing:.4px;
    text-shadow:0 1px 2px rgba(0,0,0,.72);
    transition:background .18s ease,border-color .18s ease,transform .18s ease;
}
.language-switch:hover{
    color:#fff;
    background:rgba(212,170,78,.92);
    border-color:#d4aa4e;
    transform:translateY(-1px);
}
.language-switch-icon{font-size:15px;line-height:1}
.language-switch-code{line-height:1}
@media(max-width:820px){
    .language-switch{min-width:50px;padding:0 8px}
}
\n\n/* =========================================================\n   REDES SOCIALES: VISIBILIDAD Y SVG\n   ========================================================= */\n.header-social {\n    display:flex !important;\n    align-items:center;\n    gap:10px;\n    margin-left:16px;\n    flex:0 0 auto;\n}\n\n.header-social a,\n.header-social .social-icon-disabled {\n    width:28px !important;\n    height:28px !important;\n    min-width:28px !important;\n    display:grid !important;\n    place-items:center;\n    border-radius:50%;\n    color:#fff !important;\n    background:rgba(10,20,32,.34);\n    border:1px solid rgba(255,255,255,.20);\n    text-decoration:none;\n    transition:transform .16s ease, background .16s ease, color .16s ease;\n}\n\n.header-social a:hover {\n    transform:translateY(-1px);\n    background:var(--gold);\n    color:#102033 !important;\n}\n\n.header-social .social-icon-disabled {\n    opacity:.62;\n    cursor:default;\n}\n\n.header-social svg {\n    width:15px;\n    height:15px;\n    display:block;\n}\n\n/* Sobrescribe la regla antigua que ocultaba las redes en <=1050 px. */\n@media (max-width:1050px) and (min-width:821px) {\n    .header-social { display:flex !important; }\n}\n\n@media (max-width:820px) {\n    .header-social { display:none !important; }\n}\n

/* =========================================================
   RESPONSIVE FINAL - PAGINA PUBLICA
   PC / TABLET / MOVIL
   ========================================================= */
html,
body {
    max-width: 100%;
    overflow-x: hidden;
}

img,
svg,
video,
iframe {
    max-width: 100%;
}

button,
a,
input,
select,
textarea {
    -webkit-tap-highlight-color: transparent;
}

/* Evita desbordes de palabras, correos o enlaces largos. */
.public-hero-content,
.about-copy,
.practice-list,
.location-card,
.contact-office-card,
.comment-form,
.comments-feed,
.team-public-body,
.faq-answer,
.footer-description {
    min-width: 0;
    overflow-wrap: anywhere;
}

/* Objetivos táctiles mínimos. */
.btn,
.main-nav a,
.language-switch,
.header-social a,
.menu-toggle,
.footer-menu a,
.back-to-top {
    min-height: 44px;
}

/* ---------- TABLET / CABECERA COMPACTA ---------- */
@media (max-width: 960px) {
    .site-header,
    .public-page-header,
    .home-page-header {
        padding: 12px 0 0 !important;
    }

    .site-header .header-inner,
    .public-page-header .header-inner,
    .home-page-header .header-inner {
        width: min(100% - 32px, var(--container)) !important;
        min-height: 66px !important;
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        align-items: center !important;
        gap: 10px 14px !important;
        margin-inline: auto !important;
        padding: 7px 10px !important;
        border-radius: 12px;
        transition: background .18s ease, box-shadow .18s ease;
    }

    .site-header.menu-open .header-inner,
    .public-page-header.menu-open .header-inner,
    .home-page-header.menu-open .header-inner {
        background: rgba(15, 29, 44, .98) !important;
        box-shadow: 0 14px 34px rgba(0, 0, 0, .28) !important;
    }

    .site-header .brand,
    .public-page-header .brand,
    .home-page-header .brand {
        grid-column: 1;
        grid-row: 1;
        min-width: 0 !important;
        margin: 0 !important;
        justify-self: start;
    }

    .site-header .site-custom-logo,
    .public-page-header .site-custom-logo,
    .home-page-header .site-custom-logo {
        width: auto !important;
        height: calc(52px * var(--logo-mobile-scale, 1)) !important;
        max-width: min(calc(205px * var(--logo-mobile-scale, 1)), 58vw) !important;
        object-fit: contain !important;
        padding: 0 !important;
        background: transparent !important;
        border: 0 !important;
        box-shadow: none !important;
    }

    .menu-toggle {
        grid-column: 2;
        grid-row: 1;
        display: inline-grid !important;
        place-items: center;
        width: 46px;
        height: 46px;
        padding: 0;
        margin: 0 !important;
        border: 1px solid rgba(255, 255, 255, .28);
        border-radius: 10px;
        background: rgba(15, 29, 44, .54);
        color: #fff;
        font-size: 25px;
        line-height: 1;
        cursor: pointer;
        justify-self: end;
    }

    .menu-toggle span {
        width: 22px;
        height: 2px;
        display: block;
        margin: 2.5px 0;
        border-radius: 2px;
        background: currentColor;
    }

    .main-nav {
        position: static !important;
        grid-column: 1 / -1;
        grid-row: 2;
        width: 100%;
        display: none !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 4px !important;
        margin: 0 !important;
        padding: 8px 0 4px !important;
        border: 0 !important;
        border-top: 1px solid rgba(255, 255, 255, .14) !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    .main-nav.open {
        display: flex !important;
    }

    .main-nav a {
        width: 100%;
        min-height: 46px;
        display: flex !important;
        align-items: center;
        padding: 10px 12px !important;
        border-radius: 8px;
        color: #fff !important;
        font-size: 14px !important;
        text-align: left;
    }

    .main-nav a.active,
    .main-nav a[aria-current="page"] {
        color: var(--gold) !important;
        background: rgba(255, 255, 255, .06);
    }

    /* Se ocultan hasta abrir el menú; aparecen debajo de la navegación. */
    .site-header .header-actions,
    .site-header .language-switch,
    .site-header .header-social,
    .public-page-header .header-actions,
    .public-page-header .language-switch,
    .public-page-header .header-social,
    .home-page-header .header-actions,
    .home-page-header .language-switch,
    .home-page-header .header-social {
        display: none !important;
    }

    .site-header.menu-open .header-actions,
    .public-page-header.menu-open .header-actions,
    .home-page-header.menu-open .header-actions {
        grid-column: 1;
        grid-row: 3;
        display: flex !important;
        margin: 0 !important;
    }

    .site-header.menu-open .language-switch,
    .public-page-header.menu-open .language-switch,
    .home-page-header.menu-open .language-switch {
        grid-column: 2;
        grid-row: 3;
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        min-width: 72px;
        margin: 0 !important;
        justify-self: end;
    }

    .site-header.menu-open .header-social,
    .public-page-header.menu-open .header-social,
    .home-page-header.menu-open .header-social {
        grid-column: 1 / -1;
        grid-row: 4;
        display: flex !important;
        flex-wrap: wrap;
        gap: 9px;
        margin: 2px 0 6px !important;
    }

    .header-actions .btn-login {
        min-width: 150px;
        min-height: 44px;
    }

    /* Hero: más espacio para cabecera y mejor lectura. */
    .hero,
    .home-public-hero,
    .public-hero {
        min-height: 560px !important;
        padding-top: 105px !important;
        background-size: cover !important;
    }

    .hero-content,
    .home-public-hero .public-hero-content,
    .public-hero-content {
        width: min(100% - 44px, var(--container)) !important;
        max-width: none !important;
        margin-inline: auto !important;
        padding-top: 40px !important;
    }

    .hero h1,
    .home-public-hero h1,
    .public-hero-content h1 {
        max-width: 760px !important;
        font-size: clamp(40px, 6.3vw, 58px) !important;
        line-height: 1.06 !important;
    }

    .public-hero-content p,
    .hero-content > p {
        max-width: 690px;
    }

    /* Secciones de Inicio. */
    .about-grid,
    .practice-grid,
    .comments-layout,
    .faq-public-grid {
        grid-template-columns: 1fr !important;
    }

    .about-grid {
        min-height: auto !important;
    }

    .about-copy {
        padding: 85px 0 55px !important;
    }

    .about-copy > p {
        max-width: 100% !important;
        margin-bottom: 45px !important;
    }

    .about-photo-wrap {
        height: 500px !important;
        min-height: 0 !important;
        transform: none !important;
        margin-bottom: 75px;
        overflow: hidden;
    }

    .about-photo {
        height: 100% !important;
        object-fit: cover !important;
    }

    .practice-section {
        padding-top: 80px !important;
        padding-bottom: 70px !important;
    }

    .practice-grid {
        gap: 52px !important;
    }

    .practice-photo-wrap {
        height: 420px !important;
        max-height: 420px !important;
    }

    .practice-photo,
    .practice-photo-wrap .gold-strip {
        max-height: 420px !important;
    }

    .practice-list {
        padding: 0 !important;
    }

    .stats-grid,
    .why-choose-grid,
    .team-public-grid,
    .steps-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .process-section {
        padding: 80px 0 !important;
    }

    .locations-section {
        padding-bottom: 75px !important;
    }

    .office-map {
        height: 330px;
    }

    .comments-layout {
        gap: 28px !important;
    }

    /* Páginas internas. */
    .two-column-intro,
    .about-public-grid,
    .appointment-public-grid,
    .faq-layout {
        grid-template-columns: 1fr !important;
        gap: 40px !important;
    }

    .service-cards-grid,
    .values-grid,
    .public-steps,
    .contact-info-grid,
    .public-offices-grid,
    .mission-vision-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .public-section {
        padding: 78px 0 !important;
    }

    .public-cta-band {
        min-height: 360px;
    }

    .footer-top {
        min-height: 330px !important;
        padding: 60px 0;
    }
}

/* ---------- MOVIL ---------- */
@media (max-width: 600px) {
    :root {
        --mobile-gutter: 18px;
    }

    .container,
    .site-header .header-inner,
    .public-page-header .header-inner,
    .home-page-header .header-inner {
        width: calc(100% - (var(--mobile-gutter) * 2)) !important;
    }

    .site-header .header-inner,
    .public-page-header .header-inner,
    .home-page-header .header-inner {
        padding: 6px 8px !important;
        border-radius: 10px;
    }

    .site-header .site-custom-logo,
    .public-page-header .site-custom-logo,
    .home-page-header .site-custom-logo {
        height: calc(44px * var(--logo-mobile-scale, 1)) !important;
        max-width: min(calc(175px * var(--logo-mobile-scale, 1)), 62vw) !important;
    }

    .menu-toggle {
        width: 44px;
        height: 44px;
    }

    .site-header.menu-open .header-actions,
    .public-page-header.menu-open .header-actions,
    .home-page-header.menu-open .header-actions,
    .site-header.menu-open .language-switch,
    .public-page-header.menu-open .language-switch,
    .home-page-header.menu-open .language-switch,
    .site-header.menu-open .header-social,
    .public-page-header.menu-open .header-social,
    .home-page-header.menu-open .header-social {
        grid-column: 1 / -1;
        justify-self: stretch;
    }

    .site-header.menu-open .language-switch,
    .public-page-header.menu-open .language-switch,
    .home-page-header.menu-open .language-switch {
        grid-row: 4;
        width: 100%;
    }

    .site-header.menu-open .header-social,
    .public-page-header.menu-open .header-social,
    .home-page-header.menu-open .header-social {
        grid-row: 5;
        justify-content: center;
    }

    .header-actions .btn-login {
        width: 100%;
        min-width: 0;
    }

    .hero,
    .home-public-hero,
    .public-hero {
        min-height: 620px !important;
        padding-top: 112px !important;
        background-size: cover !important;
    }

    .hero-content,
    .home-public-hero .public-hero-content,
    .public-hero-content {
        width: calc(100% - 36px) !important;
        padding-top: 55px !important;
    }

    .hero .eyebrow,
    .home-public-hero .eyebrow,
    .public-hero-content > span {
        font-size: 14px !important;
    }

    .hero h1,
    .home-public-hero h1,
    .public-hero-content h1 {
        margin-bottom: 22px !important;
        font-size: clamp(34px, 10vw, 44px) !important;
        line-height: 1.08 !important;
    }

    .public-hero-content p,
    .hero-content > p {
        font-size: 15px !important;
        line-height: 1.55 !important;
    }

    .btn-primary,
    .btn-login {
        min-height: 46px;
        padding-left: 18px !important;
        padding-right: 18px !important;
    }

    .about-copy {
        padding: 65px 0 40px !important;
    }

    .about-copy h2,
    .practice-visual h2,
    .section-heading h2,
    .locations-title,
    .why-heading h2,
    .team-heading h2,
    .faq-public-copy h2,
    .public-section h2 {
        font-size: clamp(28px, 8vw, 34px) !important;
        line-height: 1.12 !important;
    }

    .about-features,
    .practice-list,
    .stats-grid,
    .why-choose-grid,
    .team-public-grid,
    .steps-grid,
    .service-cards-grid,
    .values-grid,
    .public-steps,
    .contact-info-grid,
    .public-offices-grid,
    .mission-vision-grid,
    .comment-form-grid {
        grid-template-columns: 1fr !important;
    }

    .about-features {
        gap: 30px !important;
        margin-bottom: 35px !important;
    }

    .about-photo-wrap {
        height: 380px !important;
        margin-bottom: 55px;
    }

    .gold-strip {
        width: 25px !important;
    }

    .stats-section {
        padding: 50px 0 !important;
    }

    .stats-grid {
        gap: 18px !important;
    }

    .stat-card {
        min-height: 155px;
        justify-content: center;
        padding: 18px 12px;
        border-radius: 12px;
        background: #fff;
    }

    .practice-section,
    .why-choose-section,
    .team-public-section,
    .faq-public-section,
    .public-section {
        padding: 60px 0 !important;
    }

    .practice-photo-wrap {
        height: 285px !important;
        max-height: 285px !important;
    }

    .practice-photo,
    .practice-photo-wrap .gold-strip {
        max-height: 285px !important;
    }

    .practice-list {
        gap: 26px !important;
    }

    .process-section {
        padding: 60px 0 !important;
    }

    .steps-grid {
        margin-top: 42px !important;
        gap: 16px !important;
    }

    .step-card {
        min-height: 138px !important;
    }

    .team-public-photo {
        height: 330px !important;
    }

    .why-card,
    .team-public-card,
    .service-card,
    .value-card,
    .location-card,
    .contact-office-card,
    .comment-form,
    .comments-feed {
        border-radius: 10px;
    }

    .faq-public-grid,
    .comments-layout {
        gap: 28px !important;
    }

    .comments-blog {
        margin-top: 50px !important;
        padding-top: 45px !important;
    }

    .comment-form,
    .comments-feed {
        padding: 20px !important;
    }

    .office-map {
        height: 285px !important;
    }

    .regional-office-map {
        height: 230px !important;
    }

    .public-appointment-form,
    .case-form-card {
        padding: 22px 16px !important;
    }

    .public-cta-band,
    .legal-help-cta {
        min-height: 360px !important;
        padding: 55px 0 !important;
        background-size: cover !important;
    }

    .public-cta-content h2,
    .legal-help-content h2 {
        font-size: clamp(30px, 8vw, 38px) !important;
    }

    .footer-top {
        min-height: 0 !important;
        padding: 58px 0 45px !important;
    }

    .footer-description {
        margin-bottom: 35px !important;
        padding: 0 !important;
        font-size: 14px !important;
    }

    .footer-menu {
        display: grid !important;
        grid-template-columns: 1fr 1fr;
        gap: 10px 18px !important;
        width: 100%;
    }

    .footer-menu a {
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 10px;
    }

    .footer-bottom-content {
        min-height: 92px !important;
        padding-right: 48px;
        text-align: left;
    }

    .footer-bottom p {
        font-size: 11px;
        line-height: 1.4;
    }

    .back-to-top {
        right: 0 !important;
        width: 42px !important;
        height: 42px !important;
    }

    .whatsapp-floating {
        right: 12px !important;
        bottom: calc(12px + env(safe-area-inset-bottom)) !important;
        width: 52px;
        height: 52px;
        min-width: 52px;
        padding: 0 !important;
        border-radius: 50% !important;
        justify-content: center;
    }

    .whatsapp-floating-icon {
        width: 30px !important;
        height: 30px !important;
    }

    .whatsapp-floating-label {
        display: none !important;
    }

    .login-box {
        width: calc(100% - 24px) !important;
        max-height: calc(100vh - 24px);
        overflow-y: auto;
        padding: 30px 18px !important;
    }
}

/* Teléfonos muy angostos. */
@media (max-width: 380px) {
    .site-header .site-custom-logo,
    .public-page-header .site-custom-logo,
    .home-page-header .site-custom-logo {
        max-width: 64vw !important;
    }

    .hero h1,
    .home-public-hero h1,
    .public-hero-content h1 {
        font-size: 32px !important;
    }

    .footer-menu {
        grid-template-columns: 1fr !important;
    }
}

/* =========================================================
   ESCALA DE ESCRITORIO - MONITORES / LAPTOPS GRANDES
   Corrige la apariencia demasiado pequena en PC sin cambiar
   tablet ni movil.
   ========================================================= */
@media (min-width: 1200px) {
    :root {
        --container: 1280px !important;
    }

    .container,
    .site-header .header-inner,
    .home-page-header .header-inner {
        width: min(var(--container), calc(100% - 72px)) !important;
    }

    .site-header,
    .home-page-header {
        padding-top: 24px !important;
    }

    .site-header .site-custom-logo,
    .home-page-header .site-custom-logo {
        height: calc(72px * var(--logo-desktop-scale, 1)) !important;
        max-width: calc(270px * var(--logo-desktop-scale, 1)) !important;
    }

    .main-nav {
        gap: 36px !important;
    }

    .main-nav a {
        font-size: 15.5px !important;
    }

    .btn-login {
        min-width: 158px !important;
        min-height: 40px !important;
        font-size: 12px !important;
    }

    .home-public-hero,
    .hero {
        min-height: 590px !important;
    }

    .home-public-hero {
        padding-top: 92px !important;
    }

    .home-public-hero .public-hero-content,
    .hero-content {
        max-width: 980px !important;
    }

    .home-public-hero .eyebrow,
    .eyebrow {
        font-size: 17px !important;
        margin-bottom: 20px !important;
    }

    .home-public-hero h1,
    .hero h1 {
        max-width: 860px !important;
        font-size: clamp(54px, 4.2vw, 72px) !important;
        line-height: 1.06 !important;
        margin-bottom: 34px !important;
    }

    .home-public-hero .btn-primary,
    .hero .btn-primary {
        min-height: 42px !important;
        padding-inline: 24px !important;
        font-size: 11.5px !important;
    }

    .about-grid {
        grid-template-columns: minmax(0, 1.38fr) minmax(390px, .68fr) !important;
        min-height: 730px !important;
        gap: 52px !important;
    }

    .about-copy {
        padding: 150px 30px 95px 0 !important;
    }

    .about-copy .section-line {
        width: 72px !important;
        margin-bottom: 30px !important;
    }

    .about-copy h2 {
        font-size: 42px !important;
        margin-bottom: 15px !important;
    }

    .about-copy h3 {
        font-size: 18px !important;
        margin-bottom: 24px !important;
    }

    .about-copy > p {
        max-width: 720px !important;
        font-size: 17px !important;
        line-height: 1.65 !important;
        margin-bottom: 50px !important;
    }

    .about-features {
        gap: 62px !important;
    }

    .about-features h4 {
        font-size: 23px !important;
    }

    .about-features p {
        font-size: 16px !important;
        line-height: 1.7 !important;
    }

    .about-photo-wrap {
        height: 575px !important;
        margin-top: 78px !important;
    }

    .stats-section {
        padding: 70px 0 86px !important;
    }

    .stat-icon {
        font-size: 37px !important;
    }

    .stat-card strong {
        font-size: 34px !important;
    }

    .stat-card span {
        font-size: 17px !important;
    }

    .practice-section {
        padding-top: 125px !important;
    }

    .practice-grid {
        gap: 105px !important;
    }

    .practice-visual h2,
    .section-heading h2 {
        font-size: 43px !important;
    }

    .practice-item h3 {
        font-size: 23px !important;
    }

    .practice-item p {
        font-size: 16px !important;
    }

    .process-section {
        padding: 120px 0 125px !important;
    }

    .step-card {
        min-height: 190px !important;
        padding: 30px !important;
    }

    .step-number {
        font-size: 62px !important;
    }

    .step-card h3 {
        font-size: 24px !important;
    }

    .why-choose-section,
    .team-public-section,
    .faq-public-section {
        padding: 110px 0 !important;
    }

    .why-heading,
    .team-heading {
        max-width: 900px !important;
        margin-bottom: 50px !important;
    }

    .why-heading h2,
    .team-heading h2 {
        font-size: 44px !important;
    }

    .why-heading p,
    .team-heading p {
        font-size: 17px !important;
    }

    .why-card {
        min-height: 270px !important;
        padding: 34px 28px !important;
    }

    .why-card h3 {
        font-size: 23px !important;
    }

    .why-card p {
        font-size: 16px !important;
    }

    .team-public-photo {
        height: 355px !important;
    }

    .team-public-body {
        padding: 28px !important;
    }

    .team-public-body h3 {
        font-size: 25px !important;
    }

    .faq-public-grid {
        gap: 90px !important;
    }

    .faq-public-copy h2 {
        font-size: 48px !important;
    }

    .faq-public-copy p,
    .faq-answer,
    .faq-item summary {
        font-size: 16px !important;
    }
}

@media (min-width: 1600px) {
    :root {
        --container: 1360px !important;
    }

    .home-public-hero,
    .hero {
        min-height: 620px !important;
    }

    .home-public-hero h1,
    .hero h1 {
        font-size: 72px !important;
    }
}

/* =========================================================
   DESKTOP GRANDE V2 - MONITORES FULL HD / QHD
   No afecta tablet ni movil.
   ========================================================= */
@media (min-width: 1400px) {
    :root {
        --container: 1440px !important;
    }

    .container,
    .header-inner,
    .home-page-header .header-inner,
    .public-page-header .header-inner {
        width: min(1440px, calc(100% - 96px)) !important;
        max-width: none !important;
    }

    .site-custom-logo,
    .home-page-header .site-custom-logo,
    .public-page-header .site-custom-logo {
        height: 74px !important;
        max-width: 285px !important;
    }

    .main-nav {
        gap: 34px !important;
    }

    .main-nav a {
        font-size: 15px !important;
    }

    .btn-login,
    .header-actions .btn-login {
        min-width: 150px !important;
        min-height: 46px !important;
        padding-inline: 24px !important;
        font-size: 12px !important;
    }

    .language-switch,
    .language-toggle {
        min-height: 44px !important;
        font-size: 12px !important;
    }

    .home-public-hero,
    .hero,
    .public-hero {
        min-height: 650px !important;
    }

    .home-public-hero .public-hero-content,
    .hero-content,
    .public-hero-content {
        max-width: 1040px !important;
    }

    .home-public-hero .eyebrow,
    .hero .eyebrow,
    .public-hero-content > span {
        font-size: 20px !important;
    }

    .home-public-hero h1,
    .hero h1,
    .public-hero-content h1 {
        max-width: 940px !important;
        font-size: clamp(64px, 4.6vw, 82px) !important;
        line-height: 1.03 !important;
    }

    .home-public-hero .btn-primary,
    .hero .btn-primary,
    .public-hero .btn-primary {
        min-height: 48px !important;
        padding-inline: 30px !important;
        font-size: 13px !important;
    }

    .about-section {
        padding-block: 40px 80px !important;
    }

    .about-grid {
        grid-template-columns: minmax(0, 1.45fr) minmax(460px, .75fr) !important;
        gap: 78px !important;
        min-height: 820px !important;
    }

    .about-copy {
        padding: 165px 25px 110px 0 !important;
    }

    .about-copy h2 {
        font-size: 50px !important;
        margin-bottom: 18px !important;
    }

    .about-copy h3 {
        font-size: 23px !important;
        margin-bottom: 28px !important;
    }

    .about-copy > p {
        max-width: 820px !important;
        font-size: 19px !important;
        line-height: 1.7 !important;
    }

    .about-features {
        gap: 80px !important;
    }

    .about-features h4 {
        font-size: 28px !important;
        line-height: 1.15 !important;
    }

    .about-features p {
        font-size: 18px !important;
        line-height: 1.7 !important;
    }

    .about-photo-wrap {
        height: 640px !important;
        margin-top: 90px !important;
    }

    .stats-section {
        padding: 82px 0 96px !important;
    }

    .stat-card strong {
        font-size: 40px !important;
    }

    .stat-card span {
        font-size: 19px !important;
    }

    .practice-section,
    .why-choose-section,
    .team-public-section,
    .faq-public-section,
    .process-section,
    .locations-section,
    .testimonials-section {
        padding-top: 125px !important;
        padding-bottom: 125px !important;
    }

    .section-heading h2,
    .practice-visual h2,
    .why-heading h2,
    .team-heading h2,
    .faq-public-copy h2 {
        font-size: 50px !important;
    }

    .section-heading p,
    .why-heading p,
    .team-heading p,
    .practice-item p,
    .why-card p,
    .faq-public-copy p,
    .faq-answer,
    .faq-item summary {
        font-size: 18px !important;
        line-height: 1.7 !important;
    }

    .practice-item h3,
    .why-card h3,
    .step-card h3 {
        font-size: 27px !important;
    }

    .why-card {
        min-height: 300px !important;
        padding: 42px 34px !important;
    }

    .team-public-photo {
        height: 410px !important;
    }

    .team-public-body h3 {
        font-size: 28px !important;
    }

    .team-public-body,
    .step-card {
        padding: 34px !important;
    }

    .step-number {
        font-size: 70px !important;
    }
}

@media (min-width: 1800px) {
    :root {
        --container: 1520px !important;
    }

    .container,
    .header-inner,
    .home-page-header .header-inner,
    .public-page-header .header-inner {
        width: min(1520px, calc(100% - 120px)) !important;
    }
}

/* =========================================================
   LOGO MAS GRANDE EN ESCRITORIO
   Mantiene tablet y movil sin cambios.
   ========================================================= */
@media (min-width: 1200px) {
    .site-header .header-inner,
    .home-page-header .header-inner,
    .public-page-header .header-inner {
        min-height: 104px !important;
        align-items: center !important;
    }

    .site-header .site-custom-logo,
    .home-page-header .site-custom-logo,
    .public-page-header .site-custom-logo {
        width: auto !important;
        height: 94px !important;
        max-width: 360px !important;
        max-height: 94px !important;
        object-fit: contain !important;
        object-position: left center !important;
    }

    .site-header .brand,
    .home-page-header .brand,
    .public-page-header .brand {
        min-width: 280px !important;
        display: flex !important;
        align-items: center !important;
    }
}

@media (min-width: 1600px) {
    .site-header .header-inner,
    .home-page-header .header-inner,
    .public-page-header .header-inner {
        min-height: 114px !important;
    }

    .site-header .site-custom-logo,
    .home-page-header .site-custom-logo,
    .public-page-header .site-custom-logo {
        height: 104px !important;
        max-width: 400px !important;
        max-height: 104px !important;
    }

    .site-header .brand,
    .home-page-header .brand,
    .public-page-header .brand {
        min-width: 315px !important;
    }
}

/* =========================================================
   MENU DE ESCRITORIO MAS GRANDE Y DISTRIBUIDO HACIA LA IZQUIERDA
   Solo afecta PC; tablet y movil conservan su menu responsive.
   ========================================================= */
@media (min-width: 1200px) {
    .site-header .brand,
    .home-page-header .brand,
    .public-page-header .brand {
        margin-right: 78px !important;
        flex: 0 0 auto !important;
    }

    .site-header .main-nav,
    .home-page-header .main-nav,
    .public-page-header .main-nav {
        margin-left: 0 !important;
        margin-right: auto !important;
        gap: 42px !important;
        justify-content: flex-start !important;
        flex: 0 0 auto !important;
    }

    .site-header .main-nav a,
    .home-page-header .main-nav a,
    .public-page-header .main-nav a {
        font-size: 17px !important;
        line-height: 1.2 !important;
        font-weight: 700 !important;
        white-space: nowrap !important;
    }

    .site-header .header-actions,
    .home-page-header .header-actions,
    .public-page-header .header-actions {
        margin-left: auto !important;
    }
}

@media (min-width: 1600px) {
    .site-header .brand,
    .home-page-header .brand,
    .public-page-header .brand {
        margin-right: 96px !important;
    }

    .site-header .main-nav,
    .home-page-header .main-nav,
    .public-page-header .main-nav {
        gap: 50px !important;
    }

    .site-header .main-nav a,
    .home-page-header .main-nav a,
    .public-page-header .main-nav a {
        font-size: 18px !important;
    }
}
