:root {
      --navy:#07183D;
      --navy-2:#061C43;
      --gold:#C59B54;
      --pearl:#F5F4F1;
      --mist:#E9E7E2;
      --ink:#25282D;
      --muted:#666B73;
      --white:#FFFFFF;
      --radius:18px;
      --container:1180px;
    }
    *{box-sizing:border-box}
    html{
      scroll-behavior:smooth;
      -webkit-text-size-adjust:100%;
      text-size-adjust:100%;
    }
    body{margin:0;font-family:'Montserrat',sans-serif;color:var(--ink);background:#fff}
    a{color:inherit;text-decoration:none}
    .container{width:min(var(--container),calc(100% - 56px));margin:auto}
    .eyebrow{font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--gold)}
    h1,h2,h3{font-family:'Cormorant Garamond',serif;color:var(--navy);margin:0}
    h2{font-size:clamp(38px,4vw,58px);line-height:.98;font-weight:600}
    p{line-height:1.72}

    /* HERO — opción B: copy lateral integrado sobre fotografía */
    .hero{
      position:relative;
      min-height:clamp(720px,100svh,920px);
      overflow:hidden;
      background:#fff;
      isolation:isolate;
    }
    .hero-photo{
      position:absolute;
      inset:0;
      z-index:-2;
      background-image:url("../images/imagen_portada_3.png");
      background-size:cover;
      background-position:center center;
      background-repeat:no-repeat;
    }
    .hero-photo:before{
      content:'';
      position:absolute;
      inset:0;
      background:
        linear-gradient(to bottom,
          rgba(255,255,255,.98) 0%,
          rgba(255,255,255,.96) 18%,
          rgba(255,255,255,.76) 30%,
          rgba(255,255,255,.24) 43%,
          rgba(255,255,255,0) 55%),
        linear-gradient(to right,
          rgba(255,255,255,.99) 0%,
          rgba(255,255,255,.96) 14%,
          rgba(255,255,255,.86) 27%,
          rgba(255,255,255,.58) 40%,
          rgba(255,255,255,.20) 52%,
          rgba(255,255,255,0) 66%);
      pointer-events:none;
    }
    .hero-inner{
      min-height:clamp(720px,100svh,920px);
      display:flex;
      flex-direction:column;
      align-items:center;
      padding:58px 0 0;
    }
    .brand-full{
      width:clamp(285px,27vw,405px);
      height:188px;
      display:flex;
      align-items:center;
      justify-content:center;
      margin:0 auto;
      position:relative;
      z-index:4;
    }
    .brand-full img{width:100%;height:100%;object-fit:contain;display:block}
    .nav{
      display:flex;
      align-items:center;
      justify-content:center;
      gap:clamp(28px,3.25vw,54px);
      flex-wrap:wrap;
      margin-top:38px;
      padding:0 18px;
      font-size:13px;
      font-weight:600;
      letter-spacing:.012em;
      color:rgba(7,24,61,.66);
      position:relative;
      z-index:5;
    }
    .nav a{padding:6px 2px;border-bottom:2px solid transparent;transition:color .2s ease,opacity .2s ease,border-color .2s ease}
    .nav a:hover,.nav a:focus-visible{color:var(--navy);border-bottom:2px solid var(--gold)}

    .hero-copy{
      align-self:flex-start;
      width:min(540px,47vw);
      margin-top:auto;
      margin-bottom:clamp(72px,9vh,110px);
      position:relative;
      z-index:4;
      text-align:left;
    }
    .hero-kicker{
      font-size:11px;
      line-height:1.4;
      letter-spacing:.14em;
      text-transform:uppercase;
      font-weight:500;
      color:rgba(7,24,61,.62);
      margin-bottom:14px;
    }
    .hero h1{
      font-family:'Cormorant Garamond',serif;
      font-size:clamp(46px,4.2vw,68px);
      line-height:.96;
      font-weight:600;
      letter-spacing:-.025em;
      color:var(--navy);
      max-width:530px;
      margin:0 0 18px;
    }
    .hero-description{
      font-size:14px;
      line-height:1.65;
      color:rgba(37,40,45,.72);
      max-width:470px;
      margin:0 0 18px;
    }
    .practice-line{
      display:flex;
      align-items:center;
      flex-wrap:wrap;
      gap:9px;
      margin:0 0 24px;
      color:rgba(7,24,61,.74);
      font-size:11px;
      font-weight:500;
      letter-spacing:.075em;
      text-transform:uppercase;
    }
    .practice-line .dot{
      width:3px;
      height:3px;
      border-radius:50%;
      background:var(--gold);
      flex:0 0 auto;
    }
    .hero-actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
    .hero-primary{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-height:46px;
      padding:0 21px;
      border-radius:999px;
      background:var(--navy);
      color:#fff;
      font-size:12px;
      font-weight:600;
      letter-spacing:.01em;
      box-shadow:0 8px 24px rgba(7,24,61,.12);
      transition:transform .2s ease,background .2s ease;
    }
    .hero-primary:hover{transform:translateY(-1px);background:var(--navy-2)}
    .hero-secondary{
      display:inline-flex;
      align-items:center;
      gap:8px;
      color:rgba(7,24,61,.72);
      font-size:12px;
      font-weight:500;
    }
    .hero-secondary span{color:var(--gold);font-size:15px;transition:transform .2s ease}
    .hero-secondary:hover span{transform:translateX(3px)}

    @media (max-width:760px){
      .hero{min-height:820px}
      .hero-photo{background-position:65% center}
      .hero-photo:before{
        background:
          linear-gradient(to bottom,#fff 0%,rgba(255,255,255,.98) 24%,rgba(255,255,255,.72) 37%,rgba(255,255,255,.10) 52%,rgba(255,255,255,.22) 68%,rgba(255,255,255,.92) 92%,#fff 100%),
          linear-gradient(to right,rgba(255,255,255,.96) 0%,rgba(255,255,255,.76) 44%,rgba(255,255,255,.12) 76%);
      }
      .hero-inner{min-height:820px;padding-top:30px}
      .brand-full{width:min(315px,82vw);height:154px}
      .nav{margin-top:26px;gap:16px 22px;font-size:10.5px;max-width:580px}
      .hero-copy{width:min(100%,520px);margin-bottom:42px}
      .hero h1{font-size:44px;max-width:420px}
      .hero-description{font-size:12px;max-width:390px}
      .practice-line{font-size:10px;gap:7px}
    }

    /* SERVICES */
    .services{padding:105px 0 110px;background:#fff}
    .section-head{display:grid;grid-template-columns:.75fr 1.25fr;gap:70px;align-items:end;margin-bottom:48px}
    .section-head p{margin:0;color:var(--muted);font-size:14px;max-width:650px}
    .service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
    .service-card{min-height:292px;padding:26px 24px;border:1px solid var(--mist);border-radius:var(--radius);background:#fff;display:flex;flex-direction:column;transition:.25s}
    .service-card:hover{transform:translateY(-4px);border-color:rgba(197,155,84,.58);box-shadow:0 15px 35px rgba(7,24,61,.06)}
    .service-num{font-family:'Cormorant Garamond',serif;font-size:28px;color:var(--gold);margin-bottom:auto}
    .service-card h3{font-size:28px;font-weight:600;line-height:1;margin-bottom:11px}
    .service-card p{font-size:12px;color:var(--muted);margin:0}
    .service-link{margin-top:18px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--navy)}
    .service-link span{color:var(--gold);margin-left:5px}

    /* VALUES */
    .values{padding:105px 0;background:var(--pearl)}
    .values-wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:76px;align-items:center}
    .values-copy p{color:var(--muted);font-size:14px;max-width:500px;margin:20px 0 0}
    .value-list{display:grid;gap:12px}
    .value-row{display:grid;grid-template-columns:54px 1fr;gap:18px;padding:19px 21px;background:#fff;border:1px solid var(--mist);border-radius:14px}
    .value-number{font-family:'Cormorant Garamond',serif;font-size:31px;color:var(--gold);line-height:1}
    .value-row h3{font-size:25px;font-weight:600;margin-bottom:4px}
    .value-row p{font-size:12px;color:var(--muted);margin:0}

    /* PROCESS */
    .process{padding:108px 0;background:#fff}
    .center-head{text-align:center;max-width:720px;margin:0 auto 48px}
    .center-head .eyebrow{margin-bottom:10px}
    .center-head p{font-size:13px;color:var(--muted);margin:17px auto 0;max-width:610px}
    .steps{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--mist);border-bottom:1px solid var(--mist)}
    .step{padding:31px 27px 34px;border-right:1px solid var(--mist)}
    .step:last-child{border-right:0}
    .step-no{font-family:'Cormorant Garamond',serif;color:var(--gold);font-size:30px}
    .step h3{font-size:24px;margin:16px 0 8px}
    .step p{font-size:12px;color:var(--muted);margin:0}

    /* TEAM */
    .team{padding:105px 0;background:var(--navy);color:#fff}
    .team .eyebrow{color:#d4b47f}
    .team h2,.team h3{color:#fff}
    .team-head{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:42px}
    .team-head p{max-width:520px;color:rgba(255,255,255,.68);font-size:13px;margin:0}
    .team-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
    .lawyer-card{display:grid;grid-template-columns:180px 1fr;min-height:250px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.13);border-radius:18px;overflow:hidden}
    .lawyer-card-fabian{grid-template-columns:165.33px 1fr}
    .lawyer-card-jose{grid-template-columns:165.33px 1fr}
    .portrait{position:relative;height:248px;background:transparent;overflow:hidden}
    .portrait:before{content:'';position:absolute;width:76px;height:76px;border-radius:50%;background:#b9a28e;left:52px;top:36px}
    .portrait:after{content:'';position:absolute;width:128px;height:145px;border-radius:70px 70px 0 0;background:#152342;left:26px;top:104px}
    .bio{padding:28px 26px}
    .bio h3{font-size:28px;font-weight:600}
    .bio .role{color:#d4b47f;font-size:11px;text-transform:uppercase;letter-spacing:.12em;margin:5px 0 17px}
    .bio p{font-size:12px;line-height:1.65;color:rgba(255,255,255,.68);margin:0}

    /* TESTIMONIALS */
    .testimonials{padding:95px 0;background:#fff}
    .testimonial-shell{border:1px solid rgba(7,24,61,.12);border-radius:20px;padding:42px;text-align:center;background:#fbfbfa}
    .testimonial-inner > .eyebrow{margin:0 0 8px!important}
    .testimonial-inner > h3{font-size:31px;margin:0 0 7px!important}
    .testimonial-inner > p{font-size:12px;color:var(--muted);max-width:620px;margin:0 auto!important}
    @media(min-width:761px){
      .testimonial-shell:has(.eyf-testimonials-carousel){width:calc(100% - 56px);max-width:none}
    }

    /* FAQ */
    .faq-section{padding:105px 0;background:var(--pearl)}
    .faq-layout{display:grid;grid-template-columns:.75fr 1.25fr;gap:70px}
    .faq-intro p{font-size:13px;color:var(--muted);max-width:420px}
    details{background:#fff;border:1px solid var(--mist);border-radius:13px;margin-bottom:9px;padding:0 18px}
    summary{cursor:pointer;list-style:none;padding:18px 4px;font-size:13px;font-weight:600;color:var(--navy);display:flex;justify-content:space-between;gap:20px}
    summary::-webkit-details-marker{display:none}
    summary:after{content:'+';font-family:'Cormorant Garamond',serif;font-size:24px;color:var(--gold);line-height:.7}
    details[open] summary:after{content:'–'}
    details p{padding:0 4px 18px;margin:0;font-size:12px;color:var(--muted)}

    /* CTA */
    .final-cta{padding:88px 0;background:#fff}
    .cta-box{padding:52px;border-radius:24px;background:var(--navy);text-align:center;position:relative;overflow:hidden}
    .cta-box:before{content:'';position:absolute;width:260px;height:260px;border:1px solid rgba(197,155,84,.22);border-radius:50%;left:-100px;top:-130px}
    .cta-box:after{content:'';position:absolute;width:210px;height:210px;border:1px solid rgba(197,155,84,.18);border-radius:50%;right:-75px;bottom:-120px}
    .cta-box .eyebrow{color:#d4b47f}
    .cta-box h2{color:#fff;max-width:700px;margin:8px auto 12px}
    .cta-box p{color:rgba(255,255,255,.67);font-size:13px;max-width:610px;margin:0 auto 22px}
    .cta-box .btn{position:relative;z-index:2;background:#fff;color:var(--navy);border-color:#fff}

    footer{border-top:1px solid var(--mist);padding:32px 0 38px;background:#fff}
    .footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;font-size:11px;color:var(--muted)}
    .footer-grid strong{display:block;color:var(--navy);font-size:12px;margin-bottom:8px}
    .footer-brand{font-family:'Cormorant Garamond',serif;font-size:25px!important;font-weight:600}
    .floating-wa{position:fixed;right:24px;bottom:24px;z-index:20;background:var(--navy);color:#fff;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:700;box-shadow:0 10px 30px rgba(7,24,61,.22);border:2px solid #fff}

    @media(max-width:900px){
      .hero{min-height:760px} .hero-inner{min-height:760px}
      .section-head,.values-wrap,.faq-layout{grid-template-columns:1fr;gap:28px}
      .service-grid,.steps{grid-template-columns:1fr 1fr}
      .step:nth-child(2){border-right:0} .step{border-bottom:1px solid var(--mist)}
      .team-grid{grid-template-columns:1fr}
      .team-head{display:block} .team-head p{margin-top:15px}
    }
    @media(max-width:620px){
      .container{width:min(100% - 30px,var(--container))}
      .service-grid,.steps{grid-template-columns:1fr} .step{border-right:0}
      .services,.values,.process,.team,.faq-section{padding:74px 0}
      .lawyer-card{grid-template-columns:120px 1fr} .portrait:before{left:30px} .portrait:after{left:7px}
      .cta-box{padding:42px 20px} .footer-grid{grid-template-columns:1fr}
    }
  
    @media(max-width:700px){
      .hero{min-height:820px}
      .hero-inner{min-height:820px;padding-top:14px}
      .brand-full{width:286px;height:142px;margin-bottom:-5px}
      .nav{gap:13px 19px;padding:0 4px 9px;font-size:10px}
      .hero-photo{background-position:center 45%}
      .hero-photo:before{background:linear-gradient(to bottom,#fff 0%,#fff 22%,rgba(255,255,255,.97) 29%,rgba(255,255,255,.72) 38%,rgba(255,255,255,.22) 49%,rgba(255,255,255,.04) 66%,rgba(255,255,255,.72) 88%,#fff 100%)}
      .hero-spacer{min-height:240px}
      .hero-copy{padding:0 6px 4px}
      .hero h1{font-size:41px}
      .location{font-size:12px}
      .hero-description{font-size:11px;max-width:520px}
      .photo-note{display:none}
    }

    /* Tablet hero. */
    @media(max-width:900px){
      .hero{min-height:820px}
      .hero-inner{min-height:820px}
    }
    @media(max-width:700px){
      .hero{min-height:820px}
      .hero-inner{min-height:820px;padding-top:26px}
      .brand-full{width:min(300px,82vw);height:148px;margin:0 auto}
      .nav{margin-top:22px;gap:14px 19px;font-size:10px;padding:0 4px}
      .hero-photo{background-position:65% center}
      .hero-copy{padding:0;margin-top:auto;margin-bottom:38px;width:100%;max-width:500px}
      .hero h1{font-size:42px}
      .hero-description{font-size:11px;max-width:360px}
    }

  

    /* =========================================================
       REFINAMIENTO V5 — ALINEACIÓN, MOTION, CTA, FOOTER, RESPONSIVE
       ========================================================= */

    /* Ritmo editorial */
    .eyebrow{margin-bottom:16px}

    .section-head{
      grid-template-columns:minmax(0,1fr) minmax(360px,.9fr);
      gap:clamp(48px,7vw,110px);
      align-items:start;
      margin-bottom:54px;
    }
    .section-head > div{max-width:560px}
    .section-head > p{
      max-width:590px;
      margin:44px 0 0;
      line-height:1.8;
    }

    .values-wrap{
      grid-template-columns:minmax(0,.92fr) minmax(420px,1.08fr);
      gap:clamp(60px,8vw,112px);
      align-items:center;
    }
    .values-copy .eyebrow{margin-bottom:19px}
    .values-copy h2{max-width:520px}
    .values-copy p{margin-top:26px;max-width:520px}

    .team-head{
      display:grid;
      grid-template-columns:minmax(0,1fr) minmax(360px,.8fr);
      gap:clamp(46px,7vw,96px);
      align-items:start;
      margin-bottom:48px;
    }
    .team-head > div{max-width:650px}
    .team-head > p{
      max-width:500px;
      margin:43px 0 0;
      line-height:1.75;
    }

    /* WhatsApp en CTAs: el verde se integra con menor opacidad */
    .wa-icon{
      width:18px;
      height:18px;
      object-fit:contain;
      flex:0 0 auto;
      opacity:.76;
      filter:saturate(.82);
    }
    .hero-primary{
      gap:9px;
      background:rgba(7,24,61,.93);
      border:1px solid rgba(7,24,61,.08);
    }
    .hero-primary:hover{background:var(--navy)}
    .cta-box .btn{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:9px;
      min-height:47px;
      padding:0 20px;
      border-radius:999px;
      font-size:12px;
      font-weight:600;
    }
    .cta-box .wa-icon{opacity:.82}

    /* Animación suave por grupos; cada grupo entra en un solo viewport */
    .reveal-card{
      opacity:0;
      transform:translateY(26px);
      transition:
        opacity .72s cubic-bezier(.2,.75,.25,1),
        transform .72s cubic-bezier(.2,.75,.25,1),
        border-color .25s ease,
        box-shadow .25s ease;
      transition-delay:var(--reveal-delay,0ms);
      will-change:opacity,transform;
    }
    .reveal-group.is-visible .reveal-card{
      opacity:1;
      transform:translateY(0);
    }
    .reveal-group .reveal-card:nth-child(1){--reveal-delay:0ms}
    .reveal-group .reveal-card:nth-child(2){--reveal-delay:90ms}
    .reveal-group .reveal-card:nth-child(3){--reveal-delay:180ms}
    .reveal-group .reveal-card:nth-child(4){--reveal-delay:270ms}

    @media (prefers-reduced-motion:reduce){
      .reveal-card{opacity:1!important;transform:none!important;transition:none!important}
      html{scroll-behavior:auto}
    }

    /* Footer definitivo */
    .site-footer{
      position:relative;
      padding:0;
      border-top:0;
      background:linear-gradient(180deg,#fff 0%,#fbfaf8 100%);
    }
    .site-footer:before{
      content:'';
      display:block;
      width:min(var(--container),calc(100% - 56px));
      height:1px;
      margin:0 auto;
      background:linear-gradient(90deg,transparent,rgba(197,155,84,.52),transparent);
    }
    .footer-main{
      display:grid;
      grid-template-columns:1.45fr .8fr .95fr .95fr;
      gap:clamp(28px,4.5vw,66px);
      padding:46px 0 34px;
      align-items:start;
    }
    .footer-identity{max-width:350px}
    .footer-identity .footer-brand{
      font-family:'Cormorant Garamond',serif;
      color:var(--navy);
      font-size:30px!important;
      line-height:1;
      font-weight:600;
      margin-bottom:9px;
    }
    .footer-identity p{
      margin:0;
      color:var(--muted);
      font-size:11px;
      line-height:1.75;
    }
    .footer-values{
      display:flex;
      flex-wrap:wrap;
      gap:7px 12px;
      margin-top:16px;
      color:var(--gold);
      font-family:'Cormorant Garamond',serif;
      font-size:15px;
      letter-spacing:.02em;
    }
    .footer-col strong{
      display:block;
      color:var(--navy);
      margin-bottom:13px;
      font-size:10px;
      letter-spacing:.13em;
      text-transform:uppercase;
      font-weight:600;
    }
    .footer-col a,.footer-col span{
      display:block;
      margin:0 0 9px;
      color:rgba(37,40,45,.67);
      font-size:11px;
      line-height:1.5;
      transition:color .2s ease;
    }
    .footer-col a:hover{color:var(--navy)}
    .footer-bottom{
      display:flex;
      justify-content:space-between;
      gap:24px;
      align-items:center;
      padding:17px 0 22px;
      border-top:1px solid var(--mist);
      color:rgba(37,40,45,.5);
      font-size:9.5px;
      letter-spacing:.025em;
    }

    .floating-wa{
      background:rgba(7,24,61,.90);
      transition:transform .2s ease,background .2s ease;
    }
    .floating-wa:hover{transform:translateY(-2px);background:var(--navy)}
    .floating-wa .wa-icon{width:25px;height:25px;opacity:.84}

    /* Responsive definitivo */
    @media(max-width:1020px){
      .section-head,.values-wrap,.faq-layout,.team-head{
        grid-template-columns:1fr;
        gap:25px;
      }
      .section-head > div,.section-head > p,.values-copy h2,.values-copy p,.team-head > div,.team-head > p{max-width:720px}
      .section-head > p,.team-head > p{margin-top:0}
      .service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
      .values-wrap{align-items:start}
      .team-grid{grid-template-columns:1fr}
      .footer-main{grid-template-columns:1.25fr 1fr 1fr;}
      .footer-identity{grid-column:1/-1;max-width:520px}
    }

    @media(max-width:760px){
      .container{width:min(var(--container),calc(100% - 34px))}
      .hero{min-height:780px}
      .hero-inner{min-height:780px;padding-top:20px}
      .brand-full{width:min(292px,78vw);height:145px}
      .nav{margin-top:20px;gap:10px 18px;font-size:10px;line-height:1.3}
      .hero-copy{width:min(100%,480px);margin:0 0 32px;align-self:flex-start}
      .hero h1{font-size:clamp(39px,11vw,48px);max-width:410px}
      .hero-kicker{font-size:8.5px;letter-spacing:.11em}
      .hero-description{font-size:11px;max-width:370px;line-height:1.58}
      .practice-line{font-size:9px;gap:6px 8px;letter-spacing:.055em;margin-bottom:18px}
      .hero-actions{gap:14px}
      .hero-primary{min-height:43px;padding:0 17px;font-size:11px}
      .hero-secondary{font-size:11px}

      .services,.values,.process,.team,.faq-section{padding:76px 0}
      .section-head{margin-bottom:34px}
      .section-head > p{font-size:12px;line-height:1.7}
      h2{font-size:clamp(38px,11vw,50px)}
      .service-grid{grid-template-columns:1fr}
      .service-card{min-height:245px}
      .value-list{gap:10px}
      .value-row{grid-template-columns:42px 1fr;padding:17px}
      .steps{grid-template-columns:1fr}
      .step{border-right:0;border-bottom:1px solid var(--mist);padding:25px 20px}
      .step:last-child{border-bottom:0}
       .team-grid{grid-template-columns:1fr}
       .lawyer-card{grid-template-columns:110px minmax(0,1fr);min-height:0}
       .lawyer-card-fabian,.lawyer-card-jose{grid-template-columns:110px minmax(0,1fr)}
       .portrait{height:auto;aspect-ratio:auto}
       .portrait img{position:static;width:100%;height:auto;object-fit:initial}
      .bio{padding:23px 20px}
      .bio h3{font-size:24px}
      .testimonial-shell{padding:30px 22px}
      .testimonial-shell:has(.eyf-testimonials-carousel){width:calc(100% - 34px)}
      .faq-layout{gap:28px}
      .cta-box{padding:42px 22px;border-radius:20px}
      .final-cta{padding:68px 0}

      .footer-main{grid-template-columns:1fr 1fr;gap:28px 22px;padding:36px 0 28px}
      .footer-identity{grid-column:1/-1}
      .footer-bottom{align-items:flex-start;flex-direction:column;gap:5px}
      .floating-wa{right:16px;bottom:16px;width:48px;height:48px}
    }

    @media(max-width:500px){
      .service-card{padding:23px 20px}
      .lawyer-card{grid-template-columns:1fr}
      .portrait{height:auto;aspect-ratio:auto}
      .portrait-fabian{aspect-ratio:2/3}
      .portrait-jose{aspect-ratio:2/3}
      .lawyer-card .portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
      .lawyer-card .portrait img{object-position:center top}
      .portrait-jose img{transform:scale(1.05);transform-origin:center top}
      .portrait:before{left:calc(50% - 38px)}
      .portrait:after{left:calc(50% - 64px)}
      .footer-main{grid-template-columns:1fr}
      .footer-identity{grid-column:auto}
    }

  
    .mobile-menu-toggle{
      display:none;
      align-items:center;
      gap:8px;
      border:0;
      background:transparent;
      color:rgba(7,24,61,.72);
      font-family:'Montserrat',sans-serif;
      font-size:10px;
      font-weight:500;
      letter-spacing:.08em;
      text-transform:uppercase;
      padding:7px 9px;
      cursor:pointer;
      position:relative;
      z-index:6;
    }
    .mobile-menu-toggle .menu-lines,
    .mobile-menu-toggle .menu-lines:before,
    .mobile-menu-toggle .menu-lines:after{
      width:17px;height:1px;background:currentColor;display:block;content:'';transition:.2s ease;
    }
    .mobile-menu-toggle .menu-lines{position:relative}
    .mobile-menu-toggle .menu-lines:before{position:absolute;top:-5px;left:0}
    .mobile-menu-toggle .menu-lines:after{position:absolute;top:5px;left:0}

    /* =========================================================
       HERO — FULL VIEWPORT DESKTOP
       ========================================================= */

    /* Desktop: the hero always fills the whole visible screen. */
    .hero{
      min-height:100svh;
      height:auto;
    }
    .hero-inner{
      min-height:100svh;
      padding-top:30px;
    }
    .hero-photo{
      position:absolute;
      inset:0;
      width:100%;
      height:100%;
      min-height:100%;
      background-size:cover;
      background-position:center center;
    }
    .brand-full{
      width:clamp(360px,32vw,500px);
      height:235px;
      flex:0 0 auto;
    }
    .nav{
      margin-top:52px;
      gap:clamp(34px,3.6vw,62px);
    }
    .hero-copy{
      margin-bottom:clamp(68px,8vh,105px);
    }
    .floating-wa{display:none!important}

    /* Desktop: larger logo with more breathing room before navigation. */
    @media(min-width:621px){
      .brand-full{
        width:clamp(430px,36vw,590px);
        height:275px;
      }
      .nav{
        margin-top:0;
        margin-bottom:clamp(24px,3vh,40px);
      }
    }

    /* Mobile hero: full-bleed image with editorial overlay. */
    @media(max-width:620px){
      .hero{
        min-height:100svh;
        height:auto;
        max-height:none;
        overflow:hidden;
      }
      .hero-inner{
        --mobile-brand-height:210px;
        --mobile-menu-width-offset:32px;
        position:relative;
        min-height:100svh;
        height:auto;
        max-height:none;
        padding:2px 16px 22px;
        display:flex;
        flex-direction:column;
        align-items:center;
        overflow:visible;
      }
      .brand-full{
        width:100%;
        max-width:390px;
        height:var(--mobile-brand-height);
        flex:0 0 auto;
        margin:0 auto;
        align-self:center;
        z-index:4;
      }
      .brand-full img{transform:scale(1.12);object-position:center center}
      .mobile-menu-toggle{
        display:flex!important;
        position:relative;
        z-index:7;
        align-items:stretch;
        gap:0;
        height:42px;
        margin:2px auto 0;
        padding:0;
        width:100%;
        max-width:350px;
        border:0;
        border-radius:8px;
        background:rgba(255,255,255,.78);
        color:var(--navy);
        box-shadow:0 8px 22px rgba(7,24,61,.08);
        backdrop-filter:blur(8px);
        -webkit-backdrop-filter:blur(8px);
        overflow:hidden;
      }
      .mobile-menu-toggle .menu-icon{
        display:grid;
        position:relative;
        z-index:2;
        width:42px;
        place-items:center;
        background:transparent;
        color:var(--gold);
      }
      .mobile-menu-toggle .menu-icon:after{
        content:'';
        position:absolute;
        top:9px;
        right:0;
        width:1px;
        height:24px;
        background:rgba(197,155,84,.35);
      }
      .mobile-menu-toggle .menu-label{
        position:absolute;
        inset:0;
        display:flex;
        align-items:center;
        justify-content:center;
        transform:translateX(10px);
        padding:0 17px;
        font-size:10px;
        font-weight:600;
        letter-spacing:.1em;
        text-transform:uppercase;
      }
      .nav,
      .nav.is-open{
        display:flex!important;
        position:absolute;
        top:calc(var(--mobile-brand-height) + 46px);
        left:50%;
        z-index:6;
        flex-direction:column;
        width:calc(100% - var(--mobile-menu-width-offset));
        max-width:350px;
        height:auto;
        max-height:0;
        margin:0 auto!important;
        padding:0 14px;
        grid-template-columns:1fr;
        grid-template-rows:none;
        gap:0;
        border:0;
        border-radius:0 0 8px 8px;
        background:rgba(255,255,255,.78);
        box-shadow:0 14px 30px rgba(7,24,61,.10);
        backdrop-filter:blur(12px);
        -webkit-backdrop-filter:blur(12px);
        opacity:0;
        overflow:hidden;
        pointer-events:none;
        transform:translate(-50%,-8px);
        transition:max-height .3s ease,padding .3s ease,opacity .22s ease,transform .3s ease;
      }
      .nav.is-open{
        max-height:260px;
        padding:10px 14px;
        opacity:1;
        pointer-events:auto;
        transform:translate(-50%,0);
      }
      .mobile-menu-toggle.is-open,
      .nav.is-open{
        background:rgba(255,255,255,.94);
        box-shadow:none;
        backdrop-filter:none;
        -webkit-backdrop-filter:none;
      }
      .mobile-menu-toggle.is-open{border-radius:8px 8px 0 0}
      .nav a,
      .nav a:nth-child(n){
        width:100%;
        padding:9px 4px;
        line-height:1.1;
        text-align:center;
        white-space:normal;
      }
      .hero-photo{
        position:absolute;
        top:0;
        bottom:0;
        left:50%;
        right:auto;
        z-index:0;
        width:100vw;
        height:auto;
        min-height:0;
        margin:0;
        transform:translateX(-50%);
        overflow:hidden;
        background-size:cover;
        background-position:68% center;
      }
      .hero-photo:before{
        display:block;
        inset:0;
        background:
          linear-gradient(to bottom,
            rgba(255,255,255,.99) 0%,
            rgba(255,255,255,.99) 18%,
            rgba(255,255,255,.92) 28%,
            rgba(255,255,255,.62) 39%,
            rgba(255,255,255,.12) 52%,
            rgba(255,255,255,0) 64%,
            rgba(255,255,255,.22) 76%,
            rgba(255,255,255,.58) 86%,
            rgba(255,255,255,.90) 94%,
            #fff 100%),
          linear-gradient(to right,
            rgba(255,255,255,.96) 0%,
            rgba(255,255,255,.76) 44%,
            rgba(255,255,255,.12) 76%);
      }
      .hero-copy{
        order:initial;
        align-self:stretch;
        width:calc(100% + 32px);
        max-width:none;
        flex:0 0 auto;
        min-height:0;
        margin:auto -16px 0;
        padding:clamp(34px,7vh,58px) 16px 4px;
        text-align:left;
        background:transparent;
        backdrop-filter:none;
        -webkit-backdrop-filter:none;
        z-index:4;
        overflow:visible;
      }
      .hero-kicker{
        font-size:9px;
        line-height:1.3;
        letter-spacing:.105em;
        margin:0 0 10px;
      }
      .hero h1{
        font-size:clamp(37px,10.5vw,46px);
        line-height:.98;
        max-width:410px;
        margin:0 0 12px;
      }
      .hero-description{
        font-size:12px;
        line-height:1.52;
        max-width:400px;
        margin:0 0 13px;
      }
      .practice-line{
        font-size:9.5px;
        line-height:1.3;
        gap:4px 8px;
        letter-spacing:.045em;
        margin:0 0 17px;
        max-width:390px;
      }
      .hero-actions{
        display:flex!important;
        flex-direction:row;
        align-items:center;
        gap:10px;
        flex-wrap:nowrap;
      }
      .hero-actions .wp-block-button{flex:0 1 auto}
      .hero-primary,
      .hero-secondary{
        min-height:44px;
        padding:0 16px;
        font-size:10.5px;
        white-space:nowrap;
      }
      .hero-secondary{
        display:inline-flex!important;
        border:0;
        background:transparent;
        color:rgba(7,24,61,.78);
      }
    }

    @media(max-width:390px){
      .hero-inner{
        --mobile-brand-height:200px;
        --mobile-menu-width-offset:26px;
        padding-inline:13px;
      }
      .brand-full{width:100%;max-width:380px}
      .hero-copy{width:calc(100% + 26px);margin-left:-13px;margin-right:-13px;padding-inline:13px}
      .hero h1{font-size:clamp(35px,10.8vw,41px)}
      .hero-description{font-size:11.5px}
      .hero-actions{gap:8px}
    }

    /* WordPress block-theme compatibility. */
    .wp-site-blocks{
      padding:0;
    }
    .wp-site-blocks > *{
      margin-block-start:0;
      margin-block-end:0;
    }
    .eyebrow{
      margin-top:0;
      font-family:'Montserrat',sans-serif;
      line-height:normal;
    }

    figure.brand-full{margin-inline:auto}
    .brand-full > a{
      display:flex;
      align-items:center;
      justify-content:center;
      width:100%;
      height:100%;
    }

    .nav > p{display:contents}

    @media(min-width:621px){
      .nav a{line-height:normal}
      .hero-inner > .hero-copy{
        margin-top:auto;
        margin-bottom:clamp(68px,8vh,105px)!important;
      }
      .hero-copy > .practice-line{line-height:normal}
    }

    figure.hero-photo{
      margin:0;
      background-image:none;
    }
    .hero-photo img{
      position:absolute;
      inset:0;
      z-index:0;
      display:block;
      width:100%;
      height:100%;
      object-fit:cover;
      object-position:center center;
    }
    .hero-photo:before{z-index:1}

    .hero-actions .wp-block-button,
    .cta-actions .wp-block-button{
      min-height:0;
      margin:0;
      padding:0;
      border:0;
      background:transparent;
      box-shadow:none;
    }
    .hero-actions .wp-block-button:hover,
    .cta-actions .wp-block-button:hover{
      background:transparent;
      transform:none;
    }
    .hero-actions .wp-block-button__link,
    .cta-actions .wp-block-button__link{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      border:0;
      border-radius:999px;
      background:transparent;
      color:inherit;
      font-family:'Montserrat',sans-serif;
      font-size:inherit;
      font-weight:inherit;
      line-height:1;
      text-decoration:none;
    }
    .hero-actions .hero-primary .wp-block-button__link{
      min-height:46px;
      padding:0 21px;
      gap:9px;
      background:rgba(7,24,61,.93);
      color:#fff;
      font-size:12px;
      font-weight:600;
      box-shadow:0 8px 24px rgba(7,24,61,.12);
      transition:transform .2s ease,background .2s ease;
    }
    .hero-actions .hero-primary .wp-block-button__link:hover{
      transform:translateY(-1px);
      background:var(--navy);
    }
    .hero-actions .hero-primary .wp-block-button__link:before,
    .cta-actions .btn .wp-block-button__link:before{
      content:'';
      width:18px;
      height:18px;
      flex:0 0 auto;
      background:url('../images/whatsapp.png') center/contain no-repeat;
      opacity:.76;
      filter:saturate(.82);
    }
    .hero-actions .hero-secondary .wp-block-button__link{
      min-height:46px;
      padding:0;
      gap:8px;
      color:rgba(7,24,61,.72);
      font-size:12px;
      font-weight:500;
    }
    .hero-actions .hero-secondary .wp-block-button__link span{
      color:var(--gold);
      font-size:15px;
      transition:transform .2s ease;
    }
    .hero-actions .hero-secondary .wp-block-button__link:hover span{
      transform:translateX(3px);
    }

    .service-link a{display:inline-flex;align-items:center}
    .service-card p.service-num{
      margin:0 0 auto;
      color:var(--gold);
      font-family:'Cormorant Garamond',serif;
      font-size:28px;
      line-height:normal;
    }
    .service-card p.service-link{
      margin:18px 0 0;
      color:var(--navy);
      font-size:11px;
      font-weight:600;
      letter-spacing:.08em;
      line-height:normal;
      text-transform:uppercase;
    }
    .value-row p.value-number{
      margin:0;
      color:var(--gold);
      font-family:'Cormorant Garamond',serif;
      font-size:31px;
      line-height:1;
    }
    .step p.step-no{
      margin:0;
      color:var(--gold);
      font-family:'Cormorant Garamond',serif;
      font-size:30px;
      line-height:normal;
    }

    figure.portrait{
      margin:0;
    }
    figure.portrait:before,
    figure.portrait:after{
      display:none;
    }
    .portrait img{
      position:absolute;
      inset:0;
      display:block;
      width:100%;
      height:100%;
      object-fit:cover;
      object-position:center top;
    }
    .portrait-fabian img{object-position:center top}
    .portrait:has(img[src$="portrait-placeholder.svg"]) img{opacity:0}
    .portrait:has(img[src$="portrait-placeholder.svg"]):before,
    .portrait:has(img[src$="portrait-placeholder.svg"]):after{display:block}

    .cta-actions{
      position:relative;
      z-index:2;
      display:flex;
      align-items:center;
      justify-content:center;
      gap:22px;
    }
    .cta-actions .btn .wp-block-button__link{
      min-height:47px;
      padding:0 20px;
      gap:9px;
      background:#fff;
      color:var(--navy);
      font-size:12px;
      font-weight:600;
    }
    .cta-actions .btn .wp-block-button__link:before{opacity:.82}
    .cta-actions .hero-secondary .wp-block-button__link{
      min-height:47px;
      padding:0 19px;
      gap:8px;
      border:1px solid rgba(197,155,84,.72);
      background:rgba(255,255,255,.04);
      color:#fff;
      font-size:12px;
      font-weight:600;
      transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease;
    }
    .cta-actions .hero-secondary .wp-block-button__link:hover{
      border-color:var(--gold);
      background:var(--gold);
      color:var(--navy);
      transform:translateY(-1px);
    }
    .cta-actions .hero-secondary span{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      width:16px;
      height:16px;
      color:#d9b36f;
      font-size:15px;
      line-height:1;
      transform:translateY(-1px);
      transition:color .2s ease,transform .2s ease;
    }
    .cta-actions .hero-secondary .wp-block-button__link:hover span{
      color:var(--navy);
      transform:translate(3px,-1px);
    }

    .footer-col p,
    .footer-bottom p{margin:0}
    details.wp-block-details{margin:0 0 9px}
    .faq-layout > .reveal-group{padding-bottom:9px}
    .footer-identity .footer-brand{display:inline}
    .footer-col strong{line-height:normal}
    .footer-bottom p{line-height:normal}
    .footer-values{
      margin:16px 0 0;
      font-weight:400;
    }

    @media(max-width:620px){
      .hero-photo img{object-position:68% center}
      .hero-actions .hero-primary .wp-block-button__link,
      .hero-actions .hero-secondary .wp-block-button__link{
        min-height:44px;
        padding:0 16px;
        font-size:10.5px;
        white-space:nowrap;
      }
      .hero-actions .hero-secondary .wp-block-button__link{
        color:rgba(7,24,61,.78);
      }
    }

    @media(max-width:390px){
      .hero-actions .hero-primary .wp-block-button__link,
      .hero-actions .hero-secondary .wp-block-button__link{
        padding-inline:10px;
        font-size:9.2px;
      }
    }

    @media(max-width:340px){
      .hero-actions{
        gap:6px;
      }
      .hero-actions .hero-primary .wp-block-button__link{
        min-height:42px;
        padding-inline:8px;
        gap:6px;
        font-size:8.5px;
      }
      .hero-actions .hero-primary .wp-block-button__link:before{
        width:15px;
        height:15px;
      }
      .hero-actions .hero-secondary .wp-block-button__link{
        min-height:42px;
        padding-inline:3px;
        gap:4px;
        font-size:8.5px;
      }
    }

    @media(min-width:761px){
      .portrait-jose img{transform:scale(1.05);transform-origin:center top}
    }

    /* Contact form */
    .contact-form-toggle{cursor:pointer;font:inherit}
    .contact-form-panel{
      position:relative;
      z-index:2;
      display:grid;
      grid-template-rows:0fr;
      margin-top:0;
      opacity:0;
      visibility:hidden;
      transition:grid-template-rows .42s ease,margin-top .42s ease,opacity .3s ease,visibility 0s linear .42s;
    }
    .contact-form-panel.is-open{
      grid-template-rows:1fr;
      margin-top:34px;
      opacity:1;
      visibility:visible;
      transition:grid-template-rows .42s ease,margin-top .42s ease,opacity .3s ease;
    }
    .contact-form-panel-inner{overflow:hidden}
    .contact-form{
      width:min(100%,780px);
      margin:0 auto;
      padding:28px;
      border:1px solid rgba(255,255,255,.16);
      border-radius:18px;
      background:rgba(255,255,255,.07);
      text-align:left;
      backdrop-filter:blur(8px);
      -webkit-backdrop-filter:blur(8px);
    }
    .contact-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
    .contact-field{display:flex;flex-direction:column;gap:7px;color:#fff;font-size:11px;font-weight:600;letter-spacing:.02em}
    .contact-field-wide{grid-column:1/-1}
    .contact-field input,
    .contact-field select,
    .contact-field textarea{
      width:100%;
      border:1px solid rgba(255,255,255,.22);
      border-radius:10px;
      outline:0;
      background:rgba(255,255,255,.96);
      color:var(--navy);
      font:500 13px/1.45 'Montserrat',sans-serif;
      transition:border-color .2s ease,box-shadow .2s ease;
    }
    .contact-field input,
    .contact-field select{min-height:46px;padding:0 13px}
    .contact-field textarea{min-height:112px;padding:12px 13px;resize:vertical}
    .contact-field input:focus,
    .contact-field select:focus,
    .contact-field textarea:focus{border-color:#d4b47f;box-shadow:0 0 0 3px rgba(197,155,84,.2)}
    .contact-field small{color:rgba(255,255,255,.58);font-size:9px;font-weight:400}
    .contact-honeypot{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}
    .cta-box .contact-form p.contact-privacy{
      max-width:none;
      margin:15px 0 0;
      color:rgba(255,255,255,.58);
      font-size:10px;
      line-height:1.55;
      text-align:left;
    }
    .contact-form-actions{display:flex;justify-content:center;gap:12px;margin-top:22px}
    .contact-submit{
      min-height:46px;
      padding:0 19px;
      border:1px solid transparent;
      border-radius:999px;
      cursor:pointer;
      font:600 11px/1 'Montserrat',sans-serif;
      transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease,opacity .2s ease;
    }
    .contact-submit:hover{transform:translateY(-1px)}
    .contact-submit-whatsapp{border-color:#fff;background:#fff;color:var(--navy)}
    .contact-submit-email{border-color:var(--gold);background:var(--gold);color:var(--navy)}
    .contact-submit:disabled{cursor:wait;opacity:.58;transform:none}
    .cta-box .contact-form p.contact-form-status{
      min-height:19px;
      max-width:none;
      margin:14px 0 0;
      color:rgba(255,255,255,.76);
      font-size:11px;
      line-height:1.55;
      text-align:center;
    }
    .cta-box .contact-form p.contact-form-status.is-success{color:#d8edda}
    .cta-box .contact-form p.contact-form-status.is-error{color:#ffd0cc}

    @media(max-width:620px){
      .cta-actions{flex-direction:column;gap:10px}
      .cta-actions .wp-block-button{width:100%}
      .cta-actions .wp-block-button__link{width:100%;justify-content:center}
      .contact-form-panel.is-open{margin-top:26px}
      .contact-form{padding:22px 16px}
      .contact-form-grid{grid-template-columns:1fr;gap:15px}
      .contact-field-wide{grid-column:auto}
      .contact-form-actions{flex-direction:column}
      .contact-submit{width:100%}
    }

    @media(prefers-reduced-motion:reduce){
      .contact-form-panel,
      .contact-form-panel.is-open{transition:none}
    }
